Инструментарий для микроконтроллеров STM32 с ядром Cortex-M3
Компания STMicroelectronics в 2007 году выпустила семейство 32-разрядных микроконтроллеров STM32. Процессорное ядро Cortex-M3 этого семейства разработано совместно компаниями STMicroelectronics и ARM. Ядро Cortex-M3 использует новый набор команд Thumb-2, усовершенствованный вариант набора Thumb, обеспечивающий большую эффективность кода.
В настоящее время производятся две линейки микроконтроллеров семейства STM32 с ядром Cortex-M3. Микроконтроллеры серии Performance STM32F103xx имеют тактовую частоту до 72 МГц, статическое ОЗУ до 64 кбайт, расширенный набор периферийных блоков. Микроконтроллеры серии Access STM32F101xx с тактовой частотой до 36 МГц могут иметь ОЗУ до 48 кбайт, набор периферийных блоков меньше, чем в старшей линейке. Объем флэш-памяти программ у микроконтроллеров обеих линеек может составлять 16...512 кБ, а напряжение питания 2...3,6 В. Имеется четыре режима работы с малым энергопотреблением.
Общий для обеих линеек набор периферийных блоков включает: пять интерфейсов USART, три интерфейса SPI, два интерфейса I2C, четыре 16-разрядных таймера, тактовый генератор 4...16 МГц, встроенный RC-генератор с частотами 8 МГц и 32 кГц, 12-канальный DMA, два таймера WDT, часы реального времени.
Микроконтроллеры STM32F103xx, кроме того, включают три 12-разрядных АЦП, интерфейсы USB и CAN, два таймера PWM с тактовой частотой 72 МГц. Микроконтроллеры STM32F101Access кроме общего набора периферии включают один 12-разрядный АЦП.
Микроконтроллеры STM32F103xx при тактовой частоте 72 МГц обеспечивают один из лучших показателей производительности в классе 32-разрядных микроконтроллеров. При выборке команд из внутренней памяти энергопотребление на этой частоте не превышает 130 мВт. В целом, семейство STM32 с ядром Cortex-M3 устанавливает новый стандарт качества среди высокопроизводительных микроконтроллеров, а невысокая цена позволяет рекомендовать это семейство разработчикам для перехода с 8- и 16-разрядных архитектур на 32-разрядные.
В процессе отладки инженеру-разработчику предоставляется выбор между применением инструментальных средств, которые поставляет компания STMicroelectronics (STM3210B-EVAL, STM3210B-SK/IAR, STM3210B-SK/KEIL), и несколькими вариантами бюджетного инструментария известного производителя средств отладки - компании OLIMEX, о которых далее и пойдет речь.
STM32-H103 - мини-модуль на базе микроконтроллера STM32F103RBT6 (рис. 1). Позволяет ознакомиться с возможностями этого высокопроизводительного 32-разрядного микроконтроллера, программировать его Flash-память и отлаживать программный код с помощью JTAG-эмулятора.
Рис. 1. Мини-модуль STM32-H103
Плата мини-модуля имеет размеры 61х34 мм. На ней установлены:
- Микроконтроллер STM32F103RBT6 Cortex-M3 с флэш-памятью программ 128 кбайт, ОЗУ 20 кбайт, интерфейсом USB, интерфейсом CAN, двумя интерфейсами I2C, двумя 12-разрядными 16-канальными АЦП, интерфейсом UART, двумя интерфейсами SPI, тремя 16-разрядными таймерами; рабочая частота ядра составляет до 72 МГц;
- Разъем ARM-JTAG 2х10 выводов для программирования и отладки;
- Разъем USB;
- Кварцевый резонатор
32768 Гц и держатель батареи питания часов реального времени; - Стабилизатор напряжения 3,3 В (ток до 800 мА);
- Кварцевый резонатор 8 МГц;
- Светодиоды питания и состояния;
- Кнопка RESET и кнопка пользователя.
Мини-модуль может служить ядром развитой микроконтроллерной системы. При использовании его в качестве мезонина на материнской плате должны быть установлены два разъема типа PBD-26.
STM32-P103 - лабораторная отладочная плата на базе микроконтроллера STM32F103RBT6 с ядром Cortex-M3 (рис. 2). Это изделие является хорошей стартовой платформой для изучения возможностей нового семейства микроконтроллеров.
Рис. 2. Отладочная плата STM32-P103
На плате установлен микроконтроллер STM32F103RBT6 старшей модели семейства с наиболее полным набором интерфейсных блоков. Установленный на плате кварц обеспечивает высокопроизводительную работу микроконтроллера. Плата дает разработчику возможность ознакомиться со всеми возможностями микроконтроллеров семейства STM32.
Кроме типовой конфигурации контроллера с разъемами интерфейсов RS232, USB и CAN, плата также включает макетное поле, вдоль которого помещен штыревой разъем с сигналами портов микроконтроллера. Это позволяет разработчику быстро добавить к типовой конфигурации контроллера свой схемный фрагмент и произвести комплексную отладку в реальном масштабе времени.
На плате установлены:
- Микроконтроллер STM32F103RBT6 Cortex-M3 с флэш-памятью программ 128 кбайт, ОЗУ 20 кбайт, интерфейсом USB, интерфейсом CAN, двумя интерфейсами I2C, двумя 12-разрядными 16-канальными АЦП, интерфейсом UART, двумя интерфейсами SPI, тремя 16-разрядными таймерами, рабочая частота до 72 МГц;
- Разъем ARM-JTAG 2х10 выводов для программирования и отладки;
- Разъем USB;
- Микросхема драйвера и разъем CAN;
- Микросхема драйвера и разъем RS232;
- Разъем UEXT для подключения дополнительных модулей компании OLIMEX, например MOD-MP3, MOD-NRF24LR и т.п.;
- Разъем для карт SD-MMC;
- Кварцевый резонатор 32768 Гц и разъем батареи питания часов реального времени;
- Стабилизатор напряжения 3,3 В (ток до 800 мА);
- Кварцевый резонатор 8 МГц.
Плата имеет размеры 100х90 мм. Принципиальная схема платы доступна на сайте производителя. Там же находится простой пример программы мигающего светодиода для пакета программ GCC + Eclipse + OpenOCD.
STM32-103STK - многофункциональный отладочный модуль на базе микроконтроллера STM32F103RBT6, включающий расширенный набор периферийных устройств вне микроконтроллера (рис. 3).
Рис. 3. Отладочный модуль STM32-103STK
Кроме микроконтроллера старшей модели семейства с максимальным набором интерфейсных блоков, на плате установлен ЖКИ-дисплей NOKIA 3310 BW формата 84x48 пикселей, радио-интерфейс на базе трансивера Nordic nRF24L01, трехосевой акселерометр LIS3LV02DLLGA16, разъем для карт SD-MMC. Имеется также разъем мини-USB, разъемы аудиовхода и выхода. Через фирменный разъем UEXT можно подключать дополнительные периферийные устройства компании OLIMEX.
Кварцевый резонатор 32768 Гц и держатель батареи питания обеспечивают работу часов реального времени. В распоряжении пользователя находятся джойстик и две кнопки управления, состояние модуля отображается на светодиодах. Выводы портов микроконтроллера доступны через два штыревых разъема.
Модуль может питаться (через встроенный преобразователь) от одной батареи типа АА (1,5 В), держатель которой установлен на его плате. Размер платы модуля составляет 90х65 мм.
Загрузка программы и отладка ведется через стандартный разъем JTAG 2х10 выводов.
Модуль может использоваться как учебное средство, поскольку имеет большой набор периферии, а на сайте компании OLIMEX доступны схема, описание платы и разнообразные демонстрационные программы:
- мигающий светодиод - проект для пакета программ GCC + Eclipse + OpenOCD, а также исходный Си-текст и проект для системы программирования EW-ARM 5.11 компании IAR;
- двунаправленный радиоканал между двумя модулями STM32-103STK, драйвер мыши на основе акселерометра, USB-аудиоустройство, драйвер считывателя SD-карт, USB-RS232 виртуальный COM-порт, игра Maze с акселерометром и дисплеем - исходный Си-текст и проект для системы программирования EW-ARM 5.11 компании IAR;
- тестирующая программа STM32-103STK - код системы программирования EW-ARM 5.11 компании IAR.
STM32-103STK может использоваться и как готовый модуль целевого устройства. Например, на основе таких модулей можно быстро создать макет измерительной системы, которая способна автономно собирать данные о внешних воздействиях в разных частях объекта, передавать данные по радиоканалу и отображать нужную информацию на локальных дисплеях, сохранять массив данных в автономном накопителе-регистраторе типа SD-карты. Важным преимуществом такой системы является отсутствие кабельной сети между частями системы, а также батарейное питание всей системы или ее части. Известно, что батарейное питание значительно улучшает качество измерений и повышает устойчивость к наводкам от мощных электроприводов.
В целом, приобретение бюджетных инструментальных средств компании OLIMEX для высокопроизводительных 32-разрядных микроконтроллеров можно рекомендовать в настоящее время как начинающим, так и опытным разработчикам. Это связано со следующими причинами:
- использование многовыводных корпусов с малым шагом выводов (например, 0,5 мм для корпуса типа LQFP64 микроконтроллера STM32F103RBT6) и микроминиатюризация электронной аппаратуры усложняют монтаж компонентов на плату, требуют специального оборудования, квалифицированных специалистов и тестирования после монтажа;
- разнообразная периферия 32-разрядных микроконтроллеров, многочисленные режимы работы требуют времени на освоение. Отлаженные фирменные платы позволяют сразу перейти к этому процессу, не сомневаясь в случае непонятных ситуаций в работоспособности аппаратуры;
- переход с 8-разрядных микроконтроллеров на 32-разрядные часто связан со сменой задач и переходом с ассемблера на язык высокого уровня, а иногда и на использование ОС реального времени. Этот процесс также желательно проводить с использованием отладочной платы со стандартной конфигурацией аппаратуры.
На сайте компании OLIMEX http://www.olimex.com/dev доступны схемы и описание фирменных плат, разнообразные демонстрационные программы.
На сайте компании STMicroelectronics по адресу
http://www.st.com/mcu/familiesdocs-110.html находятся документы типа Application Note для микроконтроллеров STM32. В них можно найти рекомендации по применению, калибровке отдельных механизмов (например, часов реального времени), программированию и отладке.
Ваш комментарий к статье | ||||