32-разрядные микроконтроллеры с ядром Cortex
В последние годы 32-битные микроконтроллеры набирают все большую популярность. Ведущие производители электронных компонентов постоянно расширяют номенклатуру выпускаемых микроконтроллеров ARM. Например, такие фирмы как TI, NXP ,Atmel, STMicroelectronics, NXP и многие другие производят довольно широкие линейки микроконтроллеров с ядром Cortex и каталог данной продукции постоянно растет. Даже производители микросхем программируемой логики (Altera, Xilinx и т.д.) начали встраивать в свои кристаллы ядро Cortex. Рост популярности обусловлен рядом причин, приведу здесь некоторые из них.
Если сравнивать с 8-разрядными микроконтроллерами, то преимущество современных 32-битных микроконтроллеров с ядром Cortex обусловлено несколькими факторами. Более высокая разрядность данных и регистров дает большие возможности для математической обработки этих данных, во многих случаях это приводит к увеличению скорости выполнения операций. Внутренние тактовые частоты ядра, шин и периферии стали значительно выше, соответственно выросла и производительность. В сумме еще с некоторыми возможностями архитектуры ARM это дает разработчику больше возможностей для выполнения задач в «реальном времени». Размеры памяти программ и памяти данных тоже существенно выросли. А набор встроенной периферии микроконтроллеров ARM, даже у самых дешевых представителей этого семейства, далеко не бедный. К тому же, встроенный контроллер DMA (контроллер прямого доступа к памяти) позволяет настроить аппаратную работу многих периферийных модулей, при этом освобождая ядро микроконтроллера для выполнения других операций. Вот, к примеру, структурная схема популярного семейства STM32F100:
Кроме вышеназванных причин существенную роль при выборе микроконтроллера для какого-либо проекта играют такие факторы как среда разработки, средства отладки, доступность и стоимость, библиотеки и документация. На примере микроконтроллеров STM32, производимых фирмой STMicroelectronics, будет рассмотрена номенклатура микроконтроллеров с ядром Cortex, а также существующие IDE для создания проектов и отладки, выпускаемые отладочные платы, вспомогательное программное обеспечение и библиотеки производителя.
Фирма STMicroelectronics выпускает отладочные платы, с помощью которых можно начать программировать микроконтроллеры STM32. Эти платы очень дешевые, имеют встроенный программатор-отладчик ST-LINK, а также какой-то набор внешних периферийных устройств. К примеру, на фото одна из самых дешевых плат STM32VL-DISCOVERY:
Данная плата кроме программируемого микроконтроллера имеет встроенный программатор ST-LINK, с помощью которого можно также производить отладку непостредственно в «железе». Этот программатор-отладчик можно использовать и для внешних микроконтроллеров, как это сделать можно прочитать в статье, ссылка на которую приведена в примечаниях (ссылка 1).
Из средств разработки можно выделить IAR и Keil, эти IDE самые серьезные и мощные. Но обе платные и дорогие, однако имеют и бесплатные версии с ограничениями либо по размеру выходного файла прошивки (32КБ), либо полнофункциональные, но с ограничением по времени использования (до 30 дней). Кроме того есть и другие, платные и бесплатные, но с меньшими возможностями. Из бесплатных чаще всего упоминается CoIDE, созданная на основе Eclipse. На том же Eclipse можно сделать самостоятельную сборку среды разработки. Для "быстрого старта" вполне достаточно ознакомительных бесплатных версий IAR или Keil с ограничением по размеру в 32КБ. Пример создания проекта в IAR приведен в статье, ссылка на которую приведена в примечаниях (ссылка 2).
Для разработки проектов фирма STMicroelectronics предоставляет собственные библиотеки Standard Peripheral Library, позволяющие настраивать все периферийные модули микроконтроллера. Кроме того у нее есть несколько вспомогательных программ для работы с данными микроконтроллерами. Например, ST-link Utility для программирования через программатор ST-link, или Flash Loader Demonstartor для программирования микроконтроллерова через интерфейс UART. А также замечательная программа MicroXplorer для конфигурации выводов микроконтроллера и внутренних периферийных устройств. С описанием данной программы можно познакомиться в статье "STM32-MicroXplorer" (ссылка 3 в примечаниях).
И немаловажным фактором в пользу выбора микроконтроллеров STM32 для изучения и применения в будущих проектах является их доступность и дешевизна. В последнее время появились чипы стоимостью менее 10 центов, что сравнимо, например, с популярной серией Tiny микроконтроллеров AVR.
STM32-DISCOVERY. Встроенный ST-LINK + STM32F103 + Keil STM32. Создание проекта в IAR EWARM. Работа с портами ввода/вывода. Часть 1 STM32. MicroXplorer