Фильтр по тематике

Быстрое освоение микроконтроллеров STM32

Приведено описание архитектуры и функциональных блоков недорогого 32-разрядного ARM-микроконтроллера, а также методика его быстрого освоения на основе практических примеров.

15.05.2013 146 0
Быстрое освоение микроконтроллеров STM32

В последние годы 32-разрядные микроконтроллеры (МК) на основе процессоров ARM стремительно завоёвывают мир электроники. Этот прорыв обусловлен их высокой производительностью, совершенной архитектурой, малым потреблением энергии, низкой стоимостью и развитыми средствами программирования.

Краткая история

Название ARM является аббревиатурой Advanced RISC Machines, где RISC (Reduced Instruction Set Computer) обозначает архитектуру процессоров с сокращённым набором команд. Подавляющее число популярных МК, например семейства PIC и AVR, также имеют архитектуру RISC, которая позволила увеличить быстродействие за счёт упрощения декодирования инструкций и ускорения их выполнения.

Появление совершенных и производительных 32-разрядных ARM-микроконтроллеров позволяет перейти к решению более сложных задач, с которыми уже не справляются 8- и 16-разрядные МК.

Микропроцессорная архитектура ARM с 32-разрядным ядром и набором команд RISC была разработана британской компанией ARM Ltd, которая занимается исключительно разработкой ядер, компиляторов и средств отладки. Компания не производит МК, а продаёт лицензии на их производство.

МК ARM – один из быстро развивающихся сегментов рынка МК. Эти приборы используют технологии энергосбережения, поэтому находят широкое применение во встраиваемых системах и доминируют на рынке мобильных устройств, для которых важно низкое энергопотребление. Кроме того, ARM-микроконтроллеры активно применяются в средствах связи, портативных и встраиваемых устройствах, где требуется высокая производительность.

Особенностью архитектуры ARM является вычислительное ядро процессора, не оснащённое какими-либо дополнительными элементами. Каждый разработчик процессоров должен самостоятельно дооснастить это ядро необходимыми блоками под свои конкретные задачи. Такой подход хорошо себя зарекомендовал для крупных производителей микросхем, хотя изначально был ориентирован на классические процессорные решения.

Процессоры ARM уже прошли несколько этапов развития и хорошо известны семействами ARM7, ARM9, ARM11 и Cortex. Последнее делится на подсемейства классических процессоров Cortex-A, процессоров для систем реального времени Cortex-R и микропроцессорные ядра Cortex-M.

Именно ядра Cortex-M стали основой для разработки большого класса 32-разрядных МК. От других вариантов архитектуры Cortex они отличаются, прежде всего, использованием 16-разрядного набора инструкций Thumb-2. Этот набор совмещал в себе производительность и компактность «классических» инструкций ARM и Thumb и разрабатывался специально для работы с языками С и С++, что существенно повышает качество кода.

Большим достоинством МК, построенных на ядре Cortex-M, является их программная совместимость, что теоретически позволяет использовать программный код на языке высокого уровня в моделях разных производителей.

Кроме обозначения области применения ядра, разработчики МК указывают производительность ядра Cortex-M по десятибалльной шкале. На сегодняшний день самыми популярными вариантами являются Cortex-M3 и Cortex-M4.

МК с архитектурой ARM производят такие компании, как Analog Devices, Atmel, Xilinx, Altera, Cirrus Logic, Intel, Marvell, NXP, STMicroelectronics, Samsung, LG, MediaTek, MStar, Qualcomm, Sony Ericsson, Texas Instruments, nVidia, Freescale, Миландр, HiSilicon и другие.

Благодаря оптимизированной архитектуре стоимость МК на основе ядра Cortex-M в некоторых случаях даже ниже, чем у многих 8-разрядных приборов. «Младшие» модели в настоящее время можно приобрести по 30 руб. за корпус, что создаёт конкуренцию предыдущим поколениям МК.

Микроконтроллеры STM32

Рассмотрим наиболее доступный и широко распространённый МК семейства STM32F100 от компании STMicroelectronics [1], которая является одним из ведущих мировых производителей МК. Недавно компания объявила о начале производства 32-битного МК, использующего преимущества индустриального ядра STM32 в недорогих приложениях. МК семейства STM32F100 Value line предназначены для устройств, где не хватает производительности 16-разрядных МК, а богатый функционал «обычных» 32-разрядных приборов является избыточным. Линейка МК STM32F100 базируется на современном ядре ARM Cortex-M3 с периферией, оптимизированной для применения в типичных приложениях, где использовались 16-разрядные МК.

Производительность МК STM32F100 на тактовой частоте 24 МГц превосходит большинство 16-разрядных МК. Данная линейка включает приборы с различными параметрами:

  • от 16 до 128 кбайт флэш-памяти программ;
  • от 4 до 8 кбайт оперативной памяти;
  • до 80 портов ввода-вывода GPIO;
  • до девяти 16-разрядных таймеров с расширенными функциями;
  • два сторожевых таймера;
  • 16-канальный высокоскоростной 12-разрядный АЦП;
  • два 12-разрядных ЦАП со встроенными генераторами сигналов;
  • до трёх интерфейсов UART с поддержкой режимов IrDA, LIN и ISO7816;
  • до двух интерфейсов SPI;
  • до двух интерфейсов I2С с поддержкой режимов SMBus и PMBus;
  • 7-канальный блок прямого доступа к памяти (DMA);
  • интерфейс CEC (Consumer Electronics Control), включённый в стандарт HDMI;
  • часы реального времени (RTC);
  • контроллер вложенных прерываний NVIC.

Функциональная схема STM32F100 представлена на рисунке 1. 


Дополнительным удобством является совместимость приборов по выводам, что позволяет, при необходимости, использовать любой МК семейства с большей функциональностью и памятью без переработки печатной платы.

Линейка контроллеров STM32F100 производится в трёх типах корпусов LQFP48, LQFP64 и LQFP100, имеющих, соответственно, 48, 64 и 100 выводов. Назначение выводов представлено на рисунках 2, 3 и 4. 




Такие корпуса можно устанавливать на печатные платы без применения специального оборудования, что является весомым фактором при мелкосерийном производстве.

STM32F100 – доступный и оптимизированный прибор, базирующийся на ядре Cortex-M3, поддерживается развитой средой разработки МК семейства STM32, которая содержит бесплатные библиотеки для всей периферии, включая управление двигателями и сенсорными клавиатурами.

Схема включения STM32F100C4

Рассмотрим практическое использование МК на примере самого простого прибора STM32F100C4, который, тем не менее, содержит все основные блоки линейки STM32F100. Принципиальная электрическая схема включения STM32F100C4 представлена на рисунке 5.


Конденсатор С1 обеспечивает сброс МК при включении питания, а конденсаторы С2-С6 фильтруют напряжение питания. Резисторы R1 и R2 ограничивают сигнальный ток выводов МК. В качестве источника тактовой частоты используется внутренний генератор, поэтому нет необходимости применять внешний кварцевый резонатор.

Входы BOOT0 и BOOT1 позволяют выбрать способ загрузки МК при включении питания в соответствии с таблицей. 


Вход BOOT0 подключён к шине нулевого потенциала через резистор R2, который предохраняет вывод BOOT0 от короткого замыкания при его использовании в качестве выходного порта PB2. С помощью соединителя J1 и одной перемычки можно изменять потенциал на входе BOOT0, определяя тем самым способ загрузки МК – из флэш-памяти или от встроенного загрузчика. При необходимости загрузки МК из оперативной памяти аналогичный соединитель с перемычкой можно подключить и к входу BOOT1.

Программирование МК осуществляется через последовательный порт UART1 или через специальные программаторы – отладчики JTAG или ST-Link. Последний входит в состав популярного отладочного устройства STM32VLDISCOVERY [2], изображённого на рисунке 6. 


На плате STM32VLDISCOVERY 4-контактный разъём программатора – отладчика ST-Link – имеет обозначение SWD. Автор статьи предлагает программировать МК через последовательный порт UART1, поскольку это значительно проще, не требует специального оборудования и не уступает в скорости JTAG или ST-Link.

В качестве управляющего устройства, способного формировать команды и отображать результаты работы программы МК, а также в качестве программатора можно использовать любой персональный компьютер (ПК), имеющий последовательный COM-порт или порт USB с преобразователем USB-RS232.

Для сопряжения COM-порта ПК с МК подойдет любой преобразователь сигналов RS-232 в уровни логических сигналов от 0 до 3,3 В, например, микросхема ADM3232. Линия передачи TXD последовательного порта компьютера, после преобразователя уровней, должна подключаться к входу PA10 микроконтроллера, а линия приёмника RXD, через аналогичный преобразователь, – к выходу PA9.

При необходимости использования энергонезависимых часов МК, к нему следует подключить элемент питания типа CR2032 с напряжением 3 В и кварцевый резонатор на частоту 32768 Гц. Для этого МК оснащён выводами Vbat/GND и OSC32_IN/OSC32_OUT. Предварительно вывод Vbat необходимо отключить от шины питания 3,3 В.

Оставшиеся свободными выводы МК можно использовать по необходимости. Для этого их следует подключить к разъёмам, которые расположены по периметру печатной платы для МК, по аналогии с популярными устройствами Arduino и отладочной платой STM32VLDISCOVERY [2].

Таким образом, в зависимости от назначения и способа применения МК, к нему можно подключать необходимые элементы, чтобы задействовать другие функциональные блоки и порты, например, ADC, DAC, SPI, I2C и т.п. В дальнейшем эти устройства будут рассмотрены подробнее.

Программирование

Сегодня многие компании предлагают средства для создания и отладки программ микроконтроллеров STM32. К их числу относятся Keil от ARM Ltd, IAR Embedded Workbench for ARM, Atollic TrueStudio, CooCox IDE, GCC и Eclipse IDE. Разработчик может выбрать программные средства по своему предпочтению. Ниже будет описан инструментарий Keil uVision 4 от компании Keil [3], который поддерживает огромное число типов МК, имеет развитую систему отладочных средств и может быть использован бесплатно с ограничениями размера генерируемого кода 32 кбайт (что, фактически, максимально для рассматриваемых МК).

Среда программирования Keil uVision 4 позволяет скомпилировать хорошо оптимизированный и компактный код программы. Кроме того, компания Keil может предоставить операционные системы реального времени, библиотеки программ, стеки USB, стеки TCP/IP и т.п. Комплект поставки среды разработки Keil содержит большое количество примеров программ, которые можно использовать в качестве учебного материала.

Для установки среды Keil uVision 4 необходимо предварительно зарегистрироваться на Интернет-странице [4] компании, заполнив в форме анкеты (см. рис. 7) соответствующие поля для типа МК, а также поля, выделенные жирным шрифтом. 


После успешной регистрации в окне проводника появится ссылка на архивный файл инсталляции MDK470.EXE версии 4.70 или более поздней. Требуется скачать данный файл на ПК. Процесс установки программы с настройками по умолчанию не вызывает затруднений.

После установки и запуска Keil uVision 4 появится основное окно программы (см. рис. 8), которое уже содержит пример готового проекта. Закроем этот проект с помощью элементов управления главного меню Project®Close Project и откроем более простой проект. 


Для этого воспользуемся командами Project®Open Project и выберем в каталоге Examples/Blinky файл Blinky.uvproj. Данный проект является самым простым и удобным для начального этапа освоения программирования МК.

Назначение программы этого проекта заключается в регулярном изменении состояния выходов портов PB8-PB15. Подключив к этим выводам светодиоды с последовательно включёными резисторами 1 кОм для ограничения тока, можно наблюдать поочерёное зажигание светодиодов.

В листинге 1 представлен проект написанной на языке С программы Blinky.c, которая реализует функцию задержки, а в листинге 2 головной модуль программы проекта main.



Данный проект настроен под STM32F103RB, который отличается от рассматриваемого прибора STM32F100C4 большей функциональностью. Это позволит использовать все средства симуляции и виртуальные приборы среды разработки, поскольку при настройке проекта на использование МК STM32F100C4 некоторые элементы и функции симулятора будут недоступны.

Процедуру перенастройки проекта на МК STM32F100C4 лучше осуществлять после отладки программы, непосредственно перед созданием прошивки. Поэтому можно смело скомпилировать проект, нажав F7, и запустить симулятор среды с помощью Ctrl+F5. При этом откроется окно симулятора среды разработки (см. рис. 9) и появится возможность пошагового выполнения программы и просмотра содержимого любых функциональных блоков МК.


Теперь можно открыть окна для просмотра состояния регистров порта PB, используя команды Peripherals®General Purpose I/O-GPIOB, и наблюдать за их изменением в процессе пошагового выполнения программы с помощью клавиш F11 и F10 или с помощью команд меню Debug.

После того как вы убедитесь в нормальной работе программы в симуляторе, следует откорректировать настройку проекта и перекомпилировать проект для нашего типа МК. Для этого нажимаем комбинацию Ctrl+F5, которая открывает окно настройки проекта, показанное на рисунке 10. 



В закладке Device необходимо выбрать тип МК STM32F100C4, а в окне с закладкой Output – отметить строку «Create HEX File» для создания файла прошивки. После чего следует закрыть окно настроек и перекомпилировать проект, нажав клавишу F7.

Теперь остаётся прошить полученный код программы в МК и насладиться результатами своего труда. Для этого необходимо скачать и установить на компьютер бесплатную программу программатора с Интернет-страницы STMicroelectronics [5] и выполнить следующие действия:

  • подключить COM-порт компьютера через преобразователь уровней 0–3,3 В к соответствующим выводам UART1 МК;
  • установить перемычку способа загрузки J1 в положение встроенного загрузчика;
  • произвести сброс МК путём отключения и последующего включения питания или кратковременным замыканием конденсатора C1, подключённого к входу сброса МК;
  • запустить установленную программу программатора, показанную на рисунке 11;
  • выбрать в программе номер последовательного порта и последовательно выполнить процедуру программирования МК, указав в качестве прошивки созданный ранее файл с расширением HEX.

В следующих статьях будут представлены функциональные блоки МК с примерами их использования и программирования.

Литература

  1. https://www.st.com.
  2. http://www.st.com/stm32-discovery.
  3. http://www.keil.com.
  4. https://www.keil.com/demo/eval/arm.htm.
  5. http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/SW_DEMO/ stm32-stm8_flash_loader_demo.zip.
© СТА-ПРРЕСС

Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

15.05.2013 146 0
Комментарии
Рекомендуем
К 130-летию со дня рождения великого советского физика Игоря Евгеньевича Тамма. Часть 4. История возникновения  концепции поляритонов

К 130-летию со дня рождения великого советского физика Игоря Евгеньевича Тамма. Часть 4. История возникновения концепции поляритонов

В прошлом году в журнале «Современная электроника» были опубликованы три статьи, посвящённые юбилею выдающегося российского физика-теоретика Игоря Евгеньевича Тамма (СОЭЛ № 7–9, 2025). В частности, были описаны современные быстродействующие электрооптические модуляторы, поверхностные состояния Тамма, запрещённые фотонные зоны и фотонные кристаллы. В этих статьях умышленно не затрагивались темы поляритонов, оптических состояний Тамма (ОСТ) и плазмон-поляритонов Тамма (ППТ). Поскольку ключевой вклад в раннюю разработку этих явлений в основном принадлежит российским учёным, целесообразно посвятить их открытию более подробные отдельные статьи. Ниже рассмотрены два основных типа гибридных фотонных частиц: экситон-поляритоны и фонон-поляритоны.  
24.04.2026 СЭ №4/2026 95 0
Телевизор с электронно-лучевой трубкой: разработки С.И. Катаева и их значение

Телевизор с электронно-лучевой трубкой: разработки С.И. Катаева и их значение

«…Наступит время… когда миллионы таких приборов, таких "электрических глаз" будут всесторонне обслуживать общественную и частную жизнь, науку, технику и промышленность…» Б. Розинг Семён Исидорович Катаев (1904–1991 гг.), советский учёный и изобретатель в области телевидения, доктор технических наук, профессор, заслуженный деятель науки и техники – незаслуженно обделён вниманием популяризаторами истории электроники и телевидения в нашей стране. Тем не менее И.С. Катаев внёс значительный вклад в развитие инженерной мысли в СССР при разработке и усовершенствовании электронно-лучевых трубок (ЭЛТ), ставших на многие годы ключевой технологией, лежащей в основе экранов телевизоров и оборудования различного назначения. Катаев дополнил изобретение Зворыкина и по праву может считаться ещё одним «отцом» отечественного телевидения. В найденных документах роль Катаева прослеживается чётко, и в статье мы хотим это показать.
23.04.2026 СЭ №4/2026 107 0
Электронные системы диагностики, стимуляции и воздействия на человека на примере BAMH и управления –  на примере AE-Skin

Электронные системы диагностики, стимуляции и воздействия на человека на примере BAMH и управления – на примере AE-Skin

Путь будущих разработок в области современной электроники пролегает от визуального отображения окружающего пространства до тактильного. В этой связи представляют интерес система Bioinspired Adaptable Multiplanar mechano-vibrotactile Haptic (BAMH) – пневматически активируемый роботизированный электронный комплекс с интерфейсом из мягкого материала и система AE-Skin, обеспечивающая интерфейс между кожей человека и физическими поверхностями. Принцип её действия достаточно известен и заложен в управлении интерактивными экранами. В первой части статьи рассматриваются особенности новых разработок в области медицинской электроники и перспективы тактильного воздействия на кожу человека для лечения и изменения настроения. Во второй части представлен подробный разбор AE-Skin и примеры её совершенствования во всех сферах жизни человека: от управления посредством электронных тактильных датчиков миниатюрной формы до устройств на основе новых технологий, воспринимающих движения руками без прикосновения и без применения пироэлектрических детекторов, как управляющие сигналы для РЭА.
17.04.2026 СЭ №4/2026 151 0

ООО «ИнСАТ»  ИНН 7734682230  erid = 2SDnjeHksEz
ООО «ИнСАТ»  ИНН 7734682230  erid = 2SDnjddDXPx
  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться