Обзор микроконтроллеров семейства STM32F4

Сравнительный обзор семейства микроконтроллеров STM32F4

1.1 Базовые характеристики серии STM32F4

Основанные на ARM Cortex-M4 микроконтроллеры серии STM32 F4 являются продолжением ведущей линейки STM32, обладая еще более высокой производительностью. Так же, как серия STM32 F2, эти микроконтроллеры изготавливаются по 90нм-технологии и используют запатентованный ST Microelectronics’ом ART Accelerator для достижения наилучших результатов тестов среди основанных на ядре Cortex-M микроконтроллеров, достигая показателей в 225 DMIPS/606 CoreMark и работая с флеш-памятью на частоте 180 МГц. Инструкции DSP и модуль операций с плавающей точкой дают возможность применять данные контроллеры в широком спектре проектов. Динамическое потребление питания позволяет снизить потребление тока при выполнении кода из флеш-памяти до 140 мкА/МГц для STM32F401 (максимальная частота до 84 МГц) и до 238 мкА/МГц для STM32F42x/43x, работающих на частоте до 180 МГц. Микроконтроллеры серии STM32 F4 являются результатом идеального симбиоза возможности управления МК в реальном времени и производительностью обработки сигналов, свойственной сигнальным процессорам, дополняя таким образом линейку контроллеров STM32 новым классом устройств, сигнальными микроконтроллерами (англ. digital signal controller, DSC).     Серия состоит из пяти классов продуктов, которые полностью совместимы по выводам, периферии и програмному коду.

Характеристики серии:

  • STM32F401– 84 MHz CPU/105 DMIPS. Является экскурсом в серию STM32 F4, предлагая низкое потребление питания и корпуса малых размеров, в отличии от остальных классов серии STM32 F4.
  • STM32F405/415 – 168 MHz CPU/210 DMIPS, до 1 МБайт флеш памяти с расширенными возможностями сопряжения и шифрования.
  • STM32F407/417 – 168 MHz CPU/210 DMIPS до 1 МБайт флеш памяти с наличием Ethernet MAC и интерфейсом камеры для STM32F405/415.
  • STM32F427/437 – 168 MHz CPU/210 DMIPS, до 2 МБайт флеш, дополняя STM32F407/F417 расширенными возможностями сопряжения и шифрования.
  • STM32F429/439 – 180 MHz CPU/225 DMIPS, до 2 МБайт двухбанковой флеш-памяти с интерфейсом SDRAM, контроллером TFT LCD, технологией акселлерации Chrom-ART, последовательным аудиоинтерфейсом, предлагая большую производительность и меньшее энергопотребление по сравнению с STM32F4x7/F4x5.

1.2. Общие характеристики семейства

    Общие характеристики МК семейства:

  • ARM 32-bit Cortex-M4 CPU;
  • Частота тактирования 168МГц, 210 DMIPS/1.25 DMIPS/МГц (Dhrystone 2.1);
  • Поддержка DSP-инструкций;
  • Новая высокопроизводительная AHB-матрица шин;
  • До 1 Mбайта Flash-памяти;
  • До 192 + 4 кбайт SRAM-памяти;
  • Напряжение питания 1,8…3,6В (POR, PDR, PVD и BOR);
  • Внутренние RC-генераторы на 16МГц и 32кГц (для RTC);
  • Внешний источник тактирования 4…26МГц и для RTC – 32,768кГц;
  • Модули отладки SWD/JTAG, модуль ETM;
  • Три 12-бит АЦП на 24 входных канала (скорость до 7,2 мегасемплов, температурный датчик);
  • Два 12-битных ЦАП;
  • DMA-контроллер на 16 потоков с поддержкой пакетной передачи;
  • 17 таймеров (16 и 32 разряда);
  • Два сторожевых таймера (WDG и IWDG);
  • Коммуникационные интерфейсы: I2C, USART (ISO 7816, LIN, IrDA), SPI, I2S;
  • CAN (2,0 B Active);
  • USB 2.0 FS/HS OTG;
  • 10/100 Ethernet MAC (IEEE 1588v2, MII/RMII);
  • Контроллер SDIO (карты SD, SDIO, MMC, CE-ATA);
  • Интерфейс цифровой камеры (8/10/12/14-битные режимы);
  • FSMC-контроллер (Compact Flash, SRAM, PSRAM, NOR, NAND и LCD 8080/6800);
  • Аппаратный генератор случайных чисел;
  • Аппаратное вычисление CRC, 96-битный уникальный ID;
  • Модуль шифрования AES 128, 192, 256, Triple DES, HASH (MD5, SHA-1), HMAC;
  • Расширенный температурный диапазон -40…105°C.

 

Рис. 2. Структура микроконтроллеров STM32F4xx

1.3. Встроенные интерфейсы коммуникации

Ethernet. Данный блок присутствует не во всех продуктах семейства, а лишь в контроллерах STM32F407 / STM32F417. Блок выполнен в строго по стандарту IEEE802.3. Возможна передача данных со скоростью 10/100 Мбит/с. Доступна синхронизация часов для чего протокол IEEE1588 v2 реализован аппаратно. Для оптоволоконной либо медной линии требуется применение стороннего приемопередатчика. PHY-трансивер соединяется напрямую с портом MII или RMII.

 

USB (Universal Serial Bus). На борту присутствует два раздельных блока USB. Первый – USB OTG full-speed, является полностью аппаратной реализацией и совместим со стандартами USB 2.0, а также OTG 1.0. Работает на скорости до 12 Mбит/с. Поддерживается работа в режиме Host/Device/OTG. Присутствует SRP (Session request protocol) и HNP (Host negotiation protocol).

Второй – USB OTG high-speed работает в режиме Host/Device/OTG с высокой скоростью 480 Мбит/с, для чего необходим блок приемопередатчика, работающего на высокой скорости через специальный ULPI-интерфейс.

 

SDIO (Secure Digital Input/Output). Интерфейс позволяет работать с картами SD/SDIO/MMC-картами памяти и дисковыми контроллерами CE-ATA. В восьмибитном режиме несущая частота обмена данными составляет 48 MHz. Контроллер соответствует таким стандартам: SD Memory Card 2.0, MultiMediaCard System 4.2 (работа в режимах 1/4/8 бит), SD I/O Card 2.0 (режимы 1го и 4х бит), CE-ATA 1.1.

 

SPI (Serial Peripheral Interface). Устройство оснащено тремя блоками SPI, каждый из которых работает в режиме Мaster (Мultimaster) либо в режиме Slave, передавая данные полудуплексно, полнодуплексно либо симплексно. Поддерживается аппаратный расчет контрольных сумм CRC для повышения помехоустойчивости канала связи: так CRC может быть передан последним байтом слова в режиме Tx, присутствует автопроверка правильности CRC последнего пришедшего байта. Блок устройства SPI1 работает на скоростях вплоть до 37,5 Mбит/с. Другие ограничены максимальной скоростью в 21 Мбит/с.

Передача данных идет в виде 8- или 16-битных блоков, вперед младшим либо старшим битом. При чем допускается программная замена фазы и полярности сигнала тактирования.

 

USART (Universal Synchronous Asynchronous Receiver Transmitter). В микроконтроллер встроено четыре блока USART и два UART (Universal Asynchronous Receiver Transmitter). Блоки USART1 и USART6 допускают высокоскоростной обмен данными на скорости до 10,5 Mбит/с. Другие же поддерживают скорость не более 5,25 Mбит/с. На нативном уровне присутствует поддержка передачи данных согласно стандарта NRZ (Non Return to Zero).

Обмен данными осуществляется с использованием 8- либо 9-битных блоков, один или два бита которых выделены как стоп-биты и биты проверки четности. USART можно сконфигурировать на режим SPI, блок USART при этом выступает в роли ведущего устройства SPI. Используя блок USART можно организовать подключение к интерфейсу LIN, нашедшему применение в автомобильной промышленности, либо настроить на энкодинг/декодинг ИК-сигнала IrDA. Возможна работа с модемами по линиям управления RTS и СTS. Поддерживается работа со смарт-карточками.

 

I2C (Inter-Integrated Circuit). На борту МК содержится три блока I2C, поддерживающих работу в режиме Master/Slave (ведущий или ведомый), а также в режиме Мultimaster (режим в котором на шине присутствуют несколько Master-устройств, разделяющих общие ресурсы Slave, либо поочередно изменяющих свое состояние с Master на Slave и обратно). В составе устройства имеется модуль диагностики и исправления пакетных ошибок PEC. Используется 7-битный и 10-битный режим адресации. Поддерживаются общепринятые для протокола скорости обмена данными до 100 kHz в простом режиме и 400 kHz в режиме сверхбыстрого обмена данными. Модули могут быть сконфигурированны на расширенные протоколы SMBus 2.0 и PMBus.

 

I2S (Inter-Integrated Sound). В микроконтроллере присутствуют два мультиплексированных блока I2S со встроенным SPI. Оба модуля могут быть сконфигурированны на работу в режиме Мaster либо Slave. Данные передаются по 16, 24 или 32 бита полнодуплексно или симплексно.

Среди поддерживаемых протоколов такие: Phillips I2S, PCM, MSB и LSB с выравниванием данных. Интерфейс I2S был разработан для обмена звуковыми данными в цифровом формате. Отныне для тактирования присутствует отдельный PLL, делающий возможным генерацию частот сэмплов аудио от 8 до 192 kHz с погрешностью не более 0,01%.

 

CAN (Controller Area Network). На борту находится два CAN-модуля, работающих по стандартам 2.0А и 2.0В, скорость работы при этом достигает 1 Мбит/с. Модули могут работать со стандартными, а также с расширенными кадрами. Модуль CAN содержит три буфера передачи, трехкаскадный FIFO-стек и 28 банков фильтров (распределены и масштабируемы).

 

DCMI (Digital Camera Interface). Присутствует в контроллерах STM32F407 и STM32F417. При помощи данного интерфейса можно организовать прямое подключение к камере или CMOS-матрице. Возможна внутренняя и внешняя синхронизация покадрово или построчно, работа в непрерывном режиме, автообрезка лишних частей изображения. Среди поддерживаемых форматов 8/10/12/14-битное прогрессивное видео, YCbCr 4:2:2 и RGB 565, JPEG.

 

FSMC (Flexible Static Memory Controller). Блок используется для подключения жидкокристаллических дисплеев либо внешней памяти напрямую. Блок содержится лишь в 100-, 144- или 176-пиновых корпусах.

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

Таким образом каждое внешнее устройство имеет собственный адрес из пула, собственные сигналы для управления. Подав необходимый сигнал выбора микросхемы можно получить доступ к тому или иному внешнему устройству (одновременное использование не допустимо). Возможно подключение таких типов памяти как NAND Flash, Compact Flash, NOR Flash, SRAM и PSRAM. Интерфейс сконфигурирован для работы с LCD-контроллерами Motorola 6800 и Intel 8080, однако может быть легко использован для сопряжения с контроллерами других производителей.

1.4. Блок-схема переферии

На рис. 3 изображена переферия МК STM32F407VGT6, использующегося в рекомендованой производителем отладочной плате для быстрого старта STMF4-DISCOVERY

 

Рис. 3. Переферия STM32F405xx, STM32F407xx

1.5. Карта памяти

На рис. 4 изображена карта памяти STM32F407VGT6, использующегося в рекомендованой производителем отладочной плате для быстрого старта STMF4-DISCOVERY. Важно отметить, что при использовании STM32 разработчику довольно редко приходится иметь дело с архитектурой МК, поскольку зачастую все процедуры выполняются с использованием хорошо документированной высокоуровневой C- или C++ API от ST Microelectronics.

Рис. 4. Карта памяти семейств STM32F405xx, STM32F407xx

1.6. Работа с аналоговыми сигналами

На борту содержится три АЦП и два одноканальных ЦАП.

АЦП имеет хорошую разрешающую способность 12 бит и очень высокую скорость преобразования, составляющую 2,4 МСемпла в одиночном режиме и 7,2 МСемпла – в тройном режиме. Максимально доступное число аналоговых каналов – 24. Как и в большинстве современных МК, присутствует генератор опорного напряжения. Гибкая система настроек встроенного аналогового мультиплексора позволяет задавать любые последовательности преобразования аналоговых каналов (за исключением одновременного преобразования одного канала на нескольких АЦП). Настройки АЦП позволяют производить однократные и циклические измерения. Для проведения преобразования на максимальных скоростях необходимо соблюдать диапазон напряжения питания 2,4…3,6 В. При снижении напряжения до 1,8 (1,7) В скорость преобразования снижается до 1,2 мегасемплов. Для контроля внутренней температуры микроконтроллера встроен температурный датчик. На его выходе формируется напряжение в зависимости от окружающей температуры. Выход датчика через мультиплексор подключается к АЦП. Используя температурный датчик, можно измерять температуру от -40 до 125°C с точностью ±1,5°C.

ЦАП обладает разрешающей способностью 12 бит, преобразование возможно в 8/12-битовом формате с выравниванием этого результата по левому или правому краям. Так как ЦАП содержит два канала, то есть возможность формирования стереосигнала. Доступна функция автоматической генерации шумового сигнала с меняющейся амплитудой или треугольного сигнала.

1.7. Быстрый старт и отладка

Для подключения микроконтроллера к отладочным средствам используется четырехпроходный JTAG-интерфейс или двухпроводный SWD (Serial Wire Debug). Выходы SWD-интерфейса мультиплексированы с выходами JTAG. Разработчику дается возможность в выборе интерфейса отладки/программирования. Интегрированная макроячейка трассировки (Embedded Trace Macrocell) значительно расширяет функции отладки, позволяя наблюдать за потоком инструкций и данных внутри ядра CPU в реальном времени. Данные выводятся через небольшое количество ETM-ножек на внешний TDA-анализатор. Существует также специальный пакет в Matlab для генерирования и создания кода алгоритмов цифровой обработки сигналов для ядра Cortex-M4. Это заметно облегчяет применение ЦОС в микроконтроллерах на ядре Cortex-M4.

ST Microelectronics предлагает разработчикам начать знакомство с микроконтроллерами STM32F4 с приобретения недорогой отладочной платы STM32F4-DISCOVERY (рис. 5, 6) из серии плат Discovery, хорошо известных разработчикам на рынке. За невысокую цену(заявленная производителем стоимость составляет 14.25 у.е.), разработчик получает полноценную отладочную плату с программатором-отладчиком ST-Link и может начинать осваивать STM32 без дополнительных затрат. На этот раз в плате помимо встроенного программатора-отладчика присутствуют такие опции как МЭМС-датчики (акселерометр и микрофон), USB и аудиокодек с разъемом для подключения наушников или колонок. Новые компоненты на отладочной плате вкупе с ядром Cortex-M4 и периферией STM32F4x позволяют быстро освоить микроконтроллеры данного семейства.

Рис. 5. Отладочная плата STM32F4-DISCOVERY. Вид сверху

Рис. 6. Отладочная плата STM32F4-DISCOVERY. Вид снизу

2. Выводы

На сегодняшний день так долго бывшие лидерами рынка в области встраиваемых решений 8-ми и 16-тибитные микроконтроллеры были практически вытеснены полноценными 32-битными гигантами, вроде ядра Cortex-M. Это позволило разработчикам не вникать во внутреннее строение, думая на уровне архитектуры, а сосредоточиться на более высоком – программном уровне. Таким образом грань между персональными компьютерами и микроконтроллерами значительно размылась. Проблемами, которые отталкивала разработчиков от 32-битных контроллеров семь лет назад были высокая стоимость кристалла, сложность его сопряжения с внешним миром, высокое энергопотребление.

Когда производители уменьшили энергопотребление кристаллов за счет создания множества механизмов отключения отдельных модулей в ненужные моменты времени и внедрили в свои устройства высококачественные модули шифрования, множественные АЦП и ЦАП, модули связи – началась эпоха цифровых сигнальных процессоров. Однако очевидно, что удовлетворяющий большинство современных прикладных задач кристалл будет требовать охлаждения, равносильного охлаждению ядерного реактора, поэтому в определенный момент гонка за максимальной частотой тактирования закончилась. Началась эпоха параллельных вычеслений. Можно утверждать, что МК серии STM32F4 находятся посредине – на этом переходном этапе, определенно занимая свою нишу.

Однако поскольку будущее за параллельными вычислениями, стоит обратить особое внимание на устройства FPGA, ASIC, CPLD и прочие, поскольку именно эти устройства будут являться прародителями новых технологий в недалеком будущем. 

3. Список использованной литературы:

  1. STM32 F4 series of high-performance [Электронный ресурс].
  2. Trevor Martin : The Insider’s Guide To The STM32 ARM Based Microcontroller; Published – Coventry, UK: Hitex (UK) Ltd., 2009. – 103 p., ISBN: 0-9549988 8.
  3. Сообщество EasyElectronics [Электронный ресурс].

Автор: Ходнев Т.A. ДК-21. КЭВА, ФЕЛ, НТУУ «КПИ».