STM32F0 – новый стандарт для недорогих решений
Весной 2012 года компания STMicroelectronics расширила свое портфолио микроконтроллеров семейства Cortex-M. К уже существующим микроконтроллерам на ядрах Cortex-M3 (STM32F1/F2/L) и Cortex-M4F (STM32F4) добавилась линейка STM32F0 на ядре Cortex-M0.
Ядро Cortex-M0 является на сегодняшний день самым «маленьким» из всего многообразия ядер ARM. Ядро характеризуется исключительно малой площадью на кристалле, низким потреблением и очень высокой плотностью кода, что позволяет достигать 32-битной производительности при стоимости 8/16-битных решений. Компания ARM возлагает на ядро Cortex-M0 задачу завоевания рынка недорогих решений, где стандартом де-факто стали 8/16-бит микроконтроллеры.
Преимущество 32-битных решений
Сегодня встраиваемые микропроцессорные системы призваны обеспечить большое количество возможностей. Все новые устройства должны иметь возможность подключения к другим внешним устройствам, системы постоянно требуют повышения точности работы, необходим графический интерфейс с возможностью сенсорного управления, использование сложной обработки сигнала и поддержка воспроизведения мультимедиа.
В недалеком прошлом разработчики, ограниченные значительной стоимостью высокопроизводительных контроллеров, вынуждены были строить свои проекты на низко производительных 8 и 16-битных микроконтроллерах. Теперь, с появлением новых поколений 32-битных микроконтроллеров, таких как STM32F0 на основе ядра Cortex M0, сопоставимых по цене с 8-битными решениями, разработчики могут строить недорогие производительные многофункциональные системы. Кроме того, стремительное развитие инструментов разработки, таких как Keil MDK-ARM и IAR Embedded Workbench, позволяет программистам быстро освоить и использовать в полном объеме возможности продвинутой архитектуры STM32F0. Также затронем тот факт, что весь инструментарий, которые разработчики использовали для более ранних ядер ARM, будет доступен и для Cortex-M0, т.е. переход будет очень простым - те же среды отладки, компиляторы, программаторы-отладчики и так далее. Приплюсуем сюда еще совместимость по выводам с более ранними линейками STM32F1x - и получаем великолепные возможности проектирования и масштабирования системы при разработке!
Вопрос производительности микроконтроллера является важным для большинства разработчиков. На рисунке 1 показано сравнение производительности STM32 F0 и различных 8 и 16-битных микроконтроллеров (Competitor A, B, С и D) при проведении теста Benсhmark. Значение CoreMark отражает абсолютную производительность микроконтроллера (большие значения соответствуют более высокой производительности), а отношение CoreMark/MHz представляет собой приведенное значение Coremark к частоте микроконтроллера. Из диаграммы следует однозначный вывод, что по эффективности исполнения кода микроконтроллер STM32F0 является бесспорным лидером.
Рис. 1. Сравнение производительности STM32F0 и 8/16-битных микроконтроллеров
Есть несколько причин, по которым решения на STM32F0 имеют более низкую стоимость по сравнению с аналогичными на 8- и 16-битных контроллерах. В частности, потому что эти микроконтроллеры, как правило, основаны на устаревших архитектурах и имеют много ограничений, которые замедляют процесс разработки, заставляя разработчиков искать обходные пути. Например, чтобы выполнить умножение двух 16-разрядных чисел (16 х 16) стандартному 16-ти разрядному процессору потребуется четыре умножения и несколько операций сложения, в зависимости от реализации. В свою очередь, 8-разрядному микроконтроллеру потребуется еще больше циклов. С STM32F0 это занимает всего одну команду. В результате исполняемый код эффективнее использует ресурсы микроконтроллера, что приводит к более быстрому выполнению операций, более высокой производительности на МГц, дает большую плотность кода и большую эффективность расходования энергии. Чем меньше каждая команда требует тактов для выполнения, тем меньшего объема кода требуют приложения, и тем легче производить их отладку. А это существенно сокращает время, необходимое для проведения разработки. Вместе эти преимущества приводят к снижению стоимости конечной системы.
Микроконтроллеры STM32F0 по сути очень сильно похожи на STM32 F1 на основе ядра Cortex M3, но с усеченным набором команд. Это означает что программный код, работающий на STM32F0, будет в полном объеме работать и на контроллерах STM32F1 и более старших семействах микроконтроллеров, поскольку ядра Cortex-M3 и Cortex-М4 включают все инструкции Cortex-M0. И, в случае нехватки производительности у контроллеров STM32F0, разработчик сможет легко перейти на более производительные контроллеры.
STM32F0 содержит на борту такую же периферию, как остальные контроллеры семейства STM32, в том числе часы реального времени RTC, контроллер прямого доступа к памяти DMA, АЦП и ЦАП с высоким разрешением, таймеры управления двигателем и разнообразные интерфейсы. Эти интегрированные возможности дают большое преимущество в сравнении с не столь богатыми по периферии микроконтроллерами на 8- и 16-разрядной архитектуре. Также на рынке присутствуют 8/16-битные микроконтроллеры с большими объемами памяти и большим количеством встроенной периферии, но, в связи с упомянутой выше более старой технологией изготовления, цена на них зачастую неоправданно высока.
Например, наличие 32-битной шины дает не только увеличение скорости передачи данных и вычислительной производительности, но повышает общую надежность системы. Рассмотрим задачу чтения 12 (или 10) - битного АЦП с помощью 8-битной шины, где процессор должен прочитать значение в АЦП за два раза, чтобы захватить все значение целиком. Если происходит прерывание между этими чтениями, то данные в АЦП могут быть перезаписаны следующим преобразованием до того как прерывание будет завершено и второе чтение будет выполнено. Чтобы предотвратить такую ситуацию разработчикам придется каждый раз отключить прерывания, что значительно повышает вероятность ошибки. А если хотя бы одно чтение АЦП будет выполнено с ошибкой, то возможно произойдет сбой работы всей системы.
Использование 32-разрядного кода
Поскольку ассемблерные команды 8- и 32-разрядных микроконтроллеров имеют существенные отличия, то переход между архитектурами не является тривиальной задачей. Архитектура STM32F0 устроена так, что максимально облегчает этот переход. Встроенный язык Си значительно снижает время перехода на новую архитектуру. Во многих случаях инженеры уже знакомы с построением ARM Cortex-M контроллеров. Разработчики могут использовать привычные для них инструменты разработки, такие как IAR Embedded Workbench и Keil MDK-ARM. Заметим, что также имеются полностью бесплатные среды разработки с компиляторами, например, Eclipse/GCC, но в данном случае разработчику необходимы определенные знания по их настройке и использованию. И наконец, процесс разработки на STM32F0 упрощается использованием стандартной библиотеки ядра Cortex - CMSIS (Cortex Microcontroller Software Interface Standard). Библиотека включает в себя несколько файлов, содержащих описание ядра и описание конкретного контроллера (описание периферии и доступа к ней). Благодаря этой библиотеке довольно легко осуществлять переход между различными контроллерами на ядре Cortex.
Переход на STM32F0 должен также будет привести к существенному сокращению размера кода в связи с тем, что его плотность возрастает с использованием 32-битных инструкций на величину порядка 30%. Использование 32-битного адресного пространства STM32F0 устраняет часть ограничений, которые усложняют управление памятью в 8-битной архитектуре.
В таблице 1 показано сравнение размера кода (размер в байтах) для различных тестовых приложений БенчМарк, реализованных на разных микроконтроллерах. Код STM32F0 был создан с помощью MDK V4.23 MicroLib и оптимизаций по скорости выполнения или размеру кода.
Таблица 1. Сравнение размера кода для различных тестовых приложений БенчМарк| Приложение Benchmark | «8-bit Math» | «8-bit Matrix» | «8-bit Switch» | «16-bit Math» | «16-bit Matrix» | «16-bit Switch» | «32-bit Math» | «Float-Point Math» | «Matrix Multi-plication» | «FIR filter» | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 16-бит | dsPIC | 236 | 420 | 424 | 224 | 552 | 424 | 424 | 2020 | 464 | 2256 |
| PIC24 | 236 | 420 | 416 | 224 | 552 | 416 | 424 | 2020 | 464 | 2256 | |
| H8/300H | 344 | 412 | 444 | 352 | 482 | 478 | 574 | 1104 | 482 | 1392 | |
| MaxQ20 | 230 | 252 | 192 | 204 | 328 | 184 | 288 | 1172 | 398 | 1478 | |
| HCS12 | 83 | 188 | 162 | 76 | 262 | 174 | 323 | 2082 | 219 | 1917 | |
| ATxmega 64A1 | 118 | 398 | 338 | 174 | 490 | 350 | 300 | 1080 | 584 | 1362 | |
| ARM7TDMI | 636 | 392 | 452 | 636 | 396 | 452 | 620 | 1832 | 428 | 1528 | |
| 8-бит | 8051 | 233 | 398 | 305 | 452 | 504 | 493 | 909 | 2190 | 536 | 2056 |
| PIC18F242 | 170 | 324 | 208 | 286 | 692 | 282 | 542 | 1400 | 676 | 2006 | |
| ATmega8 | 134 | 354 | 350 | 198 | 434 | 382 | 342 | 1088 | 490 | 1358 | |
| STM32 F0 Оптимизация | Скор./ Разм. | Скор./ Разм. | Скор./ Разм. | Скор./ Разм. | Скор./ Разм. | Скор./ Разм. | Скор./ Разм. | Скор./ Разм. | Скор./ Разм. | Скор./ Разм. | |
| Размер кода | 110/94 | 68/52 | 98/120 | 114/106 | 68/52 | 98/120 | 112/108 | 640/636 | 268/84 | 550/550 | |
Без сомнения, лучший составитель программ - это человеческий мозг. Имея в своем распоряжении достаточно много времени, человек может создать оптимальный программный код, который не сможет превзойти ни один компилятор. Программирование на ассемблере также является более эффективным, чем написание кода на Си. Программа на ассемблере будет меньше по размерам и будет работать быстрее аналогичной программы на Си. Однако, поскольку время является одним из тех ресурсов, которого разработчикам всегда не хватает, и ассемблерный код является чрезвычайно хрупким, то большинство программистов делают выбор в пользу Си.
Но реальность на сегодняшний день такова, что современные компиляторы языка С достаточно интеллектуальны для того, чтобы создать очень хороший и качественный код, на который человек может потратить довольно много времени. Например, от того, как размещены данные, зависит производительность программы. Компилятор может принять решения по расположению на всем протяжении программы в считанные минуты. Каждый из компиляторов предлагает многочисленные параметры оптимизации, которые он может выполнять автоматически для архитектуры STM32 F0, и они существенно отличаются от используемых обычно с 8 и 16-битными микроконтроллерами. Эти параметры включают оптимизацию потока данных, такую как устранение общего подвыражения и оптимизацию циклов, объединение и распределение. Они также включают в себя такие методы, как внеочередной переход и выполнение кода вне очереди.
Таким образом, эти средства разработки для STM32F0 дают превосходные результаты. Эффективность компилятора по сравнению с человеческим кодированием была оценена в 97%. Иными словами, стоимость достижения оптимальности кода всего в 3% оборачивается несколькими неделями работы программиста. Кроме того, если требуется внести существенные изменения в проект, то компилятор может просто перекомпилировать весь проект в течение минуты, а человеку снова потребуется несколько недель.
Архитектура STM32F0 поддерживает все современные инструменты разработки, использующие последние достижения в компиляции кода и его отладке, что позволяет значительно сократить время разработки и задействованные ресурсы. Основываясь на архитектуре Cortex-M, микроконтроллеры STM32F0 опираются на большое количество инструментов разработки и готового программного обеспечения, недоступного в таких количествах для любой другой архитектуры микроконтроллеров на рынке. Кроме того, для многих приложений, где размер кода незначителен, эти средства могут быть фактически бесплатными. Например, IAR Embedded Workbench или Keil MDK-ARM являются бесплатными при написании программ размером до 32 Кб, что позволяет начать работу с низкими начальными инвестициями.
STM32 F0
После рассмотрения общих преимуществ STM32 F0 в сравнении с 8- и 16-разрядными микроконтроллерами остановимся подробнее на самом контроллере и его достоинствах. Обобщенная структура микроконтроллеров STM32F0 представлена на рисунке 2.
Рис. 2. Структура микроконтроллеров STM32F0
Основные характеристики семейства STM32F0:
- ARM 32-бит Cortex-M0 CPU;
- Максимальная частота работы- 48МГц;
- До 64кб Flash памяти, до 8кб SRAM памяти;
- DMA-контроллер на 5 каналов;
- 12-бит АЦП на 16 каналов, время конвертирования- 1мкс;
- 12-бит ЦАП;
- До одиннадцати таймеров (16 и 32 разряда);
- Коммуникационные интерфейсы: I2C, USART (ISO 7816, LIN, IrDA), SPI, I2S, HDMI;
- Контроллер сенсорных экранов;
- Аппаратное вычисление CRC, 96-битный уникальный ID;
- Часы реального времени (RTC);
- Потребление: 250мкA/МГц в активном режиме, 5мкА в режиме «STOP», 2мкА в режиме «STANDBY» с активным модулем RTC;
- Расширенный температурный диапазон: -40...105°C;
- Корпуса UFQFN32, LQFP32, LQFP48, LQFP64.
Остановимся подробнее на некоторых особенностях нового микроконтроллера и продолжим его сравнение с 8- и 16-разрядными архитектурами.
Память
Микроконтроллеры STM32 F0 имеют до 8 кбайт SRAM-памяти. Она может быть доступна как байт, полуслово (16 бит) или полное слово (32 бита) с нулевым циклом ожидания. Объем встроенной Flash-памяти достигает 64 кбайт.
Для защиты от сбоев при работе со SRAM-памятью в контроллер встроена проверка на четность. При тяжелых с точки зрения электромагнитных помех условиях работы разработчик может задействовать эту функцию. К 32 битам данных добавляются 4 бита для контроля четности (1 бит на байт). Четность рассчитывается и сохраняется при записи в SRAM. Затем она автоматически проверяется при чтении. Если обратная проверка не проходит, то генерируется ошибка.
Микроконтроллеры STM32F0 были разработаны с учетом работы с операционными системами реального времени. В целом тут больше заслуга компании ARM, которая придерживается данной концепции для всех своих ядер Cortex-M. В обычном 8 или 16-битном микроконтроллере операционная система и приложение делят стек, и сложные программные вложения могут вызвать проблемы с переполнением стека и, соответственно, крах всей системы. Во избежание таких проблем STM32F0 имеет два стека: один для приложений и один - для операционной системы. Это позволяет защитить системную часть кода от фоновых задач операционной системы и, кроме того, уменьшить расход оперативной памяти.
АЦП и ЦАП
Микроконтроллеры STM32F0 содержат аналогово-цифровой преобразователь ADC (Analog to Digital Converter) с разрешающей способностью 12 бит и скоростью преобразования 1 мкc. Если есть необходимость уменьшить время преобразования, можно уменьшить разрядность результата до 10, 8 или 6 бит. Количество входных аналоговых каналов - 16. Удобная система настроек АЦП позволяет производить однократные и циклические измерения, задавая нужные аналоговые каналы. Для контроля температуры имеется встроенный температурный датчик, подключенный к дополнительному входу АЦП.
Для преобразования цифрового сигнала в аналоговый микроконтроллер содержит цифро-аналоговый преобразователь DAC (Digital to Analog Converter) с разрешающей способностью 12 бит. Очень малая часть 8-битных микроконтроллеров может похвастаться таким набором «аналоговой» периферии с такими хорошими параметрами. Это делает STM32F0 неоспоримым лидером в системах, где требуется быстро и точно производить сбор данных с датчиков и делать их обработку.
Коммуникационные интерфейсы
Микроконтроллер STM32F0 содержит:
1. Два модуля интерфейса I2C (Inter-Integrated Circuit). Каждый модуль может работать в режиме Master (с поддержкой режима multimaster) или Slave. Интерфейс работает в режиме «Standard» на скорости до 100 кГц, режиме «Fast» на скорости до 400 кГц и «Fast Plus» на скорости до 1 МГц.
2. До двух интерфейсов USART (Universal Synchronous-Asynchronous Receiver Transmitter), работающих на скоростях до 6 Мбит/с. Также интерфейсы USART имею поддержку интерфейсов LIN, IrDA и смарт-карт.
3. Два модуля SPI интерфейса (Serial Peripheral Interface), работающих на скоростях до 18 Мбит/с в режимах Master или Slave. Поддерживается дуплексная и симплексная передача данных.
4. Один модуль I2S интерфейса (Inter-Integrated Sound). Поддерживаются режимы Master или Slave, выполнение операций с 16, 24 и 32-битным разрешением.
5. Один модуль HDMI (High - Definition Multimedia Interface) совместимый со спецификацией HDMI-CEC v1.4, работающий в режиме «STOP» для низко потребляющих приложений.
Все коммуникационные интерфейсы поддерживают работу с контроллером DMA, что позволяет STM32F0 поддерживать непрерывную передачу на шинах с максимальными скоростями без остановки или затормаживания работы ядра микроконтроллера. Такой скорости передачи данных невозможно добиться на 8- или 16-битном микроконтроллере, который не поддерживает DMA. Кроме того, отличительной особенностью STM32F0 по сравнению с 8-битными контроллерами является поддержка HDMI. Это имеет очень важное значение для устройств, нацеленных на потребительский рынок.
Питание
Для питания микроконтроллера необходим всего один источник питания с напряжением в диапазоне от 2 до 3,6 В. Питание на ядро поступает от встроенного преобразователя напряжения. Для качественной работы аналоговой периферии подача питания на нее осуществляется через отдельные ножки. Для подачи батарейного питания также выделена отдельная ножка. Специально для автономных приложений, требующих низкого потребления, контроллеры STM32F0 имеют три специализированных режима работы.
Режим SLEEP: Потребление уменьшается до нескольких мА. Ядро останавливает свою работу, а вся периферия продолжает работать и пробуждает процессор по наступлению определенного события.
Режим STOP: Потребление падает до нескольких мкА. Все тактирование в зоне питания 1,8 В (от внутреннего стабилизатора) останавливается, данные SRAM и регистров при этом сохраняются. Пробуждение происходит от прерывания модуля EXTI.
Режим STANDBY: Потребление падает до единиц мкА. Внутренний стабилизатор питания 1,8 В отключается, данные SRAM и регистров не сохраняются. Пробуждение происходит от прерывания часов реального времени, общего сброса или возрастающего фронта на ножке WKUP. Часы реального времени могут продолжать свою работу.
Таймеры и система тактирования
STM32 F0 содержит 11 разнообразных таймеров разрядностью 16 или 32 бита: таймер с расширенными функциями (управление двигателями), таймеры общего назначения, два сторожевых таймера (независимый и оконного типа) и 24-битный системный таймер.
Сам факт большей разрядности и большего количества таймеров по сравнению с 8-разрядной архитектурой говорит о существенном преимуществе STM32F0. Кроме этого STM32F0 имеет два сторожевых таймера, одним из которых является оконный сторожевой таймер. Эти два таймера могут работать в режиме пониженного энергопотребления и обеспечивают очень высокий уровень надежности работы приложений, недостижимый в большинстве 8- и 16-битных микроконтроллеров.
Для тактирования микроконтроллера и встроенных часов реального времени потребуются внешние кварцы на частоты 4...32 МГц и 32,768 кГц соответственно. При критичной конечной цене устройства можно серьезно сэкономить, используя встроенные генераторы. Стоит отметить, что внутренняя система тактирования периферии имеют очень высокую функциональность и гибкость.
Также отметим защитную систему Clock Security System (CSS), которая позволяет микроконтроллеру перейти к тактированию от внутреннего RC-генератора при отказе внешнего. Это обеспечивает работоспособность системы при неисправности кварца, отсутствии контакта при плохой пайке или же сбое внешнего источника тактового сигнала.
DMA
Контроллер прямого доступа к памяти DMA (Direct Memory Access) содержит пять каналов. Посредством использования контроллера DMA можно осуществлять автономную передачу данных из памяти в память, из периферийного устройства в память, из памяти в периферийное устройство. При передаче значительных объемов данных модуль DMA может использовать кольцевой буфер. DMA работает со всей наиболее важной периферией: SPI, I2S, I2C, USART, таймеры, АЦП и ЦАП.
Использование контроллера DMA стало неотъемлемой частью приложений, которым необходимо перемещать большие объемы данных, независимо от того, происходит ли вывод информации на внешнее устройство, или же чтение.
В подавляющем большинстве 8-разрядные микроконтроллеры не имеют в своем арсенале таких мощных инструментов, как DMA. В традиционной 8-разрядной архитектуре для перемещения каждого байта данных необходимо задействовать процессор. При перемещении нескольких байтов необходимо несколько циклов процессорного времени на каждый байт, поскольку требуются дополнительные команды для организации циклов.
При использовании DMA в STM32F0 весь блок данных может быть перемещен без привлечения ресурсов ядра микроконтроллера. После того как программа настроит работу контроллера DMA, управляющего перемещением данных, перемещение происходит в фоновом режиме. Фактически процессор переходит в низкопотребляющий режим, так как работа ядра приостанавливается. Это также дает выигрыш в потреблении энергии микроконтроллера и системы в целом.
Наличие DMA-контроллера может также значительно упростить и ускорить процесс разработки. Рассмотрим чтение данных с высокоскоростной шины передачи данных, например, SPI. При использовании 8-битных контроллеров разработчику придется использовать многочисленные прерывания либо постоянно опрашивать флаги готовности, а в промежутке между этими действиями встраивать основной код программы. В STM32F0 процессор может работать независимо от интерфейса, и это позволяет разработчикам программы использовать его для других задач, не беспокоясь о потере данных.
Поскольку архитектура STM32 использует внутреннюю матрицу шин, то контроллер DMA может быть использован в сочетании с любой внутренней памятью и периферией. Например, контроллер DMA может быть настроен на регулярное считывание и сохранение данных из АЦП в памяти. После завершения очередной операции чтения АЦП отключается до следующего чтения. На самом деле, матрица шин в сочетании с пятиканальным контроллером DMA позволяет STM32 F0 поддерживать выполнение кода из флэш-памяти параллельно с другими операциями чтения и записи данных из памяти в память, периферии в память или памяти в периферию.
Возможности компилятора также могут помочь разработчикам использовать технологии DMA наиболее эффективно. Так IAR Embedded Workbench, например, имеет функцию, которая автоматически изменяет данные программы для максимального использования DMA. Это позволяет разработчикам достичь высокой эффективности без долгой оптимизации расположения данных. Компилятор достигает хорошего результата путем анализа того, как данные используются приложением.
Рассмотрим программу, которая копирует две различные структуры данных с использованием DMA. Каждая операция копирования требует отдельной операции DMA. Тем не менее, после того, как компилятор соотносит структуры данных в памяти, они могут быть скопированы с помощью одной передачи DMA.
Заметим, что каждый процессор может использовать DMA по-своему. Например, Keil MDK-ARM, используя абстракции, такие как DMA, делает это через API, что предотвращает привязывание кода к конкретному процессору. Это позволяет разработчикам перенести код на другие устройства STM32, зная, что код, использующий DMA, по-прежнему работает оптимально.
Отладка
С каждым годом инженеру приходится разрабатывать все более сложные приложения за очень сжатые сроки. Поэтому очень важно иметь средства отладки, которые позволят отлаживать сложный код и быстро находить ошибки.
Интегрированные в STM32F0 возможности отладки обеспечивают очень широкий спектр возможностей. В микроконтроллерах STM32F0 применяют технологию отладки ARM CoreSight, воплощающую в себе последние достижения в технологиях отладки. CoreSight дает возможность получать необходимую информацию через стандартный двухпроводный интерфейс Serial Wire, не используя какого-либо дополнительного дорогостоящего оборудования. Это позволяет разработчикам анализировать, оптимизировать и проверять выполнение программы с минимальными усилиями, а также минимизировать стоимость отладочных средств. В STM32F0 CoreSight поддерживает до четырех аппаратных точек останова и две точки просмотра.
Традиционные микроконтроллеры предлагают ограниченные возможности по запуску/остановке программы. Для увеличения возможностей отладки применяется дорогостоящий (порядка $1000) внутрисхемный эмулятор с индивидуальными переходниками для каждого микроконтроллера. Вот некоторые из преимуществ CoreSight, которые не обеспечивают другие архитектуры MCU: чтение/запись на лету, возможности трассировки инструкций и данных.
Разработчики имеют большой выбор недорогих отладочных адаптеров для STM32F0. Например, STLink - внутрисхемный программатор/отладчик, связывающий контроллер STM32F0 на рабочей плате и компьютер через USB-интерфейс, стоит порядка $30. Для более продвинутой отладки IAR Systems предлагает I-Jet отладчик, а Keil предлагает разработчикам ULINK2 и ULINKpro. Эти отладчики обеспечивают мощные возможности: например, среда разработки от Keil MDK-ARM позволяет делать всесторонний анализ покрытия кода, профилировку выполнения кода и анализ производительности для обеспечения максимальной эффективности. I-Jet отладчик от IAR Systems может предложить мониторинг потребления контроллера. Такие мощные отладчики позволяют разработчикам достичь максимальной эффективности работы кода.
STMicroelectronics продолжает традицию выпуска недорогих отладочных плат (от 10 до $30) для всех своих микроконтроллеров серии «DISCOVERY». На рынок уже выпущена отладочная плата STM32F0DISCOVERY (рисунок 3), которую логически можно разделить на две части. Первая - это встроенный программатор/отладчик ST-Link, а вторая - целевая плата с микроконтроллером STM32F051R8T6. Любой разработчик может приобрести данную отладочную плату и попробовать микроконтроллер STM32F0 «в деле».
Рис. 3. Отладочная плата STM32F0DISCOVERY
Контроллер сенсорных экранов
Использование сенсорных экранов (Touch Screen) в различных устройствах позволяет сделать работу с ними простой и интуитивно понятной. Кроме этого происходит снижение цены и размеров самого устройства, поскольку нет больше необходимости использовать механические переключатели или клавиатуру. Поэтому сенсорные экраны получили широкое распространение. Их можно встретить в платежных терминалах, карманных компьютерах, мобильных телефонах, игровых консолях и операторских панелях в промышленности.
К STM32F0 разработчики могут легко подключить емкостный сенсорный экран. Для этого на борту микроконтроллера имеется встроенный контроллер сенсорных экранов, поддерживающий до 18 входных каналов и использующий хорошо зарекомендовавшую себя ранее технологию переноса заряда. Для получения минимального времени отклика возможно объединение в параллель до шести емкостных каналов. С целью облегчения труда разработчика и ускорения процесса разработки компания ST предоставляет специальную бесплатную библиотеку для контроллера сенсорных экранов.
Заключение
Микроконтроллеры STM32F0 предоставляют оптимальный баланс стоимости/производительности/набора периферии для встраиваемых приложений. Кроме этого, компания ST предлагает более 300 совместимых контроллеров семейства Cortex-M.
Используя совместимость по коду, выводам и периферии в семействе STM32 разработчики могут развивать свои устройства на основе Cortex-M0, переходя на контроллеры на ядрах Сortex-M3 и Cortex-M4. Так приложения, разработанные с использованием STM32F0, могут быть легко перенесены на STM32F2 или STM32F4. Для перехода с одной линейки микроконтроллера на другую разработчику просто необходимо изменить выбранный микроконтроллер. и компилятор сам перекомпилирует код. Это позволяет разработчикам легко перейти на микроконтроллер с более высокой производительностью, большим размером памяти и более богатым набором периферийных устройств, затрачивая минимум усилий на портирование приложения. В результате разработчики могут использовать те же приложения и набор инструментов на всей линейке микроконтроллеров.
Также возможен обратный вариант, когда разработчик может взять за основу для своей разработки микроконтроллер из старшего семейства STM32F2 или STM32F4. Это позволяет делать разработку на платформе с высокой производительностью и объемом памяти, тем самым ускоряя ее. После того как окончательный вариант будет сделан, разработчики могут оптимизировать его для более дешевого STM32F0.
Из всего вышеперечисленного следует, что STM32F0 представляется привлекательной альтернативой 8- и 16-разрядным микроконтроллерам. По той же цене разработчики получают больше производительности, больше периферийных устройств и более совершенные инструменты разработки. А это уменьшает время разработки и позволяет быстрее вывести готовый продукт на рынок.
Получение технической информации, заказ образцов, поставка - e-mail: [email protected]