Преимущества микроконтроллеров ARM

Техника не стоит на месте, микроконтроллеры эволюционируют и дешевеют, если в начале 2000-х самыми распространенными и доступными были два семейства – ARM и PIC, то в 2010-х на рынок вышел их серьезный конкурент на ядре Cortex-M – микроконтроллеры ARM.

Вернее будет сказать - архитектура ARM - это, в основном, 32-хбитные микроконтроллеры, которые стоят дешевле, а их функционал и производительность выше, чем у оппонентов, поэтому они стремительно завоевывают рынок. Почему так происходит? Давайте поговорим.

STM32 – мощные и доступные

Для примера рассмотрим недорогой микроконтроллер – STM32F100C4T6RBT, его цена в 2017 году немногим более 100 рублей. В этом ценовом сегменте ему нет равных.

STM32
STM32

Посмотрите его технические характеристики. Для наглядности его достоинств в скобках будут приведены характеристики более дорогого AVR-микроконтроллера (8 бит) ATmega48-20PU, он стоит порядка 200 рублей.

  1. Flash-память – 16 кб (4 кб у AVR).
  2. Оперативная память (RAM) – 4096 байт (512 б у AVR).
  3. Работает на частоте 24 МГц и выполняет 30 миллионов итераций в секунду (1.25 DMIPS) (AVR работает на 20 МГц).
  4. 16 каналов 12 битного АЦП и 12 битный ЦАП (у AVR – АЦП 8 каналов и 10 бит, а ЦАП – отсутствует).
  5. 5 таймеров и 7 каналов прямого доступа к памяти (3 и 0 соответственно).
  6. Поддержка всевозможных шин и интерфейсов – USART, CAN, I2C, USB, SDIO (поддержка SD-карт), SPI. Большинство из них есть либо в меньшем количестве, либо отсутствуют у AVR.
Смотрите также  Модули bluetooth HC-05 и HC-06 для Arduino

Конечно, сравнивать 32 и 8 бит не совсем корректно, так как разница в 4-хкратном размере, и, чтобы сделать операцию с 32-битным числом AVR микроконтроллеру нужно произвести более 4-х операций… Вывод простой – за меньшие деньги вы получаете большие возможности.

Программирование ARM микроконтроллера

Если вести речь о семействе STM32, то есть два варианта прошивки для начинающих – это либо USART, либо USB.

Во-первых, эти микроконтроллеры очень сложно «убить» неверной прошивкой или прерыванием её, ведь загрузчик контроллера находится в system memory, изменить которые вы просто не сможете.

Это уже весомое преимущество перед конкурентами, в которых, при любом неправильном действии, нужен специальный программатор. Он с помощью логических уровней высокого напряжения может разблокировать «мёртвый» чип.

В случае прошивки через USART нужен преобразователь USB-UART, например, на базе микросхемы FT232RL.

Обратите внимание на схему: программатор подключен к USART1 на выводе Boot0 – логическая единица, а на boot1 – ноль. Если вы используете плату STM32F103C8, перемычки должны быть выставлены как на картинке ниже.

После этого нужно произвести сброс МК нажатием на «Reset» или подключить и отключить питание.

Чтобы залить прошивку, нужно скачать программу для прошивки микроконтроллера по последовательному порту. Она носит имя «Flash Loader Demonstrator». В бесплатном доступе находится на сайте St-link.com, кстати, одноименном с названием фирмы производителя микроконтроллеров этого семейства.

Вот теперь всё готово к прошивке и дальнейшей работе.

Важно! При прошивке с помощью официального программатора – ST-link выводы и перемычки Boot0 и Boot1 трогать не нужно, они должны быть в исходном состоянии, т. е. стоять по обе стороны от USB порта!

Выше было сказано о наличии «железного» USB порта в чипе. Его присутствие здесь не просто так, благодаря тому, что в этом семействе микроконтроллеров бутлоадер является неотъемлемой частью программы и стоит в начале памяти. Если загрузить вышеописанным способом (через usb-uart) бутлоадер STM32duino – в дальнейшем вы сможете шить его напрямую, через USB порт, подобно Arduino.

Смотрите также  Программирование микроконтроллеров Atmel (Micro chip)

Кстати, Arduino выполнена на тех МК семействах AVR, в которых нет встроенного USB, и разработчикам пришлось использовать для этого дополнительные преобразователи (на тех же МК AVR с USB или на FT232RL или CH340 на младших платах Arduino). В случае с STM вы получаете полноценный аппаратно- и программно-поддерживаемый порт USB

Выводы

К сожалению, порог вхождения в работу с STM32 высокий, что не позволяет ему полностью заменить морально устаревшие микроконтроллеры. В то же время проект STM32duino позволил многим любителям-энтузиастам ускорить работу своих Arduino проектов, к тому же улучшив качество их работы.

Нельзя не упомянуть о том, что чипы STM32 взаимозаменяемы и совместимы в пределах одного корпуса. Поэтому, если вы ошиблись с микроконтроллерами, и вам не хватило его ресурсов – вы легко можете запаять более мощный, не изменяя при этом своей схемы и платы!