Stm32 что это такое

STM32 Часть 1: Основы

Нельзя доверять коду, который вы не написали полностью сами. — Кен Томпсон

Пожалуй, моя самая любимая цитата. Именно она и стала причиной по которой я решил нырнуть в самую глубь кроличьей норы. Свой путь в мир программирования я начал совсем недавно, прошло всего около месяца и я решил писать статьи для закрепления материала. Все началось с простой задачи, синхронизировать лампы в своей фото студии с помощью Ардуины. Задача была решена, но в фото студию я больше не заходил, времени нет. С того момента я решил основательно заняться программированием микроконтроллеров. Ардуина, хоть и привлекательна в своей простоте, как платформа мне не понравилась. Выбор пал на компанию ST и их популярную продукцию. В тот момент я еще не представлял в чем особо разница, но как типичный потребитель я сравнил скорость «процессора» и количество памяти, купил себе внушительную плату с дисплеем STM32F746NG — Discovery. Я пропущу моменты отчаяния и сразу перейду к делу.

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

Список всего того что понадобится:

Что нам понадобится:

Теперь разберем данный пример. Extern означает, что символ внешний, и этот символ мы объявили в файле Linker.ld, к нему мы еще вернемся чуть позже.

Тут мы используем атрибут, который скажет компилятору поместить массив в секцию isr_vector и что даже если мы не используем его в коде, то он все равно должен быть обязательно включен в программу. И первым его элементом будет тот самый указатель.

Теперь давайте разберемся, зачем этот массив и с чем его съест мк. В отличии от обычного процессора, мк на архитектуре арм начинает исполнение когда не с нулевого адреса, а с адреса на который указывает указатель в этом массиве, все сложно. Так же первый указатель в этом массиве всегда указывает на начало стэка, а вот второй уже указывает на начало нашего кода.

Приведу пример. дано что стэк начинается с 0x20010000 а код программы находиться 0x0800008. то массив можно написать как

То есть, первым делом контроллер инициализирует стэк, а потом считает адрес первой инструкции и загрузит ее в регистр программного счетчика. Теперь самое главное, в зависимости от модели эти цифры могу быть разные, но на примере stm32f7 я могу уверенно сказать что этот массив должен быть в памяти по адресу 0x08000000. Именно с этого адреса мк начнет свою работу после включения или ресета.

Теперь прервемся и обратим внимание на то как именно положить этот массив в нужную нам секцию. Этим занимается «ld» или линкер. Это программа собирает всю нашу программу воедино и для этого используется скрипт Linker.ld. Привожу пример и дальше разберем его.

Мы поместили массив куда надо теперь надо какую нибудь инструкцию нашему мк для работы. Вот дополненный init.c:

Как я уже упомянул ранее, вторым адресом должен быть указатель на первую функцию или инструкцию. И опять атрибуты, но тут все просто, функция не возвращает ни каких значений и следует ни каким ABI при входе, то есть голая «naked». В такие функции обычный пихают ассемблер.

Теперь самое время скомпилировать наш код, и посмотреть что же там под капотом. Makefile пока трогать не будем.

И тут мы видим много непонятного. по порядку:

И тут мы увидим вывод. «00000000: 00 01 00 02 09 00 00 08» что будет символизировать нам об успехе. Это моя первая статья и я не вполне смог раскрыть весь материал и суть, поэтому в следующей я более подробно опишу механизмы и мы друзья сможем перейти к программе которая не будет мигать лампочкой, но настроим тактирование самого процессора и шин.

Источник

1. Общее описание архитектуры Cortex – M

Сегодня 2016 год, а серия STM32 появилась где-то в 2010 году. За это время многое было рассказано и показано. Но мы предложим своё видение и описание этого семейства.

Микроконтроллеры STM32 семейство 32-разрядных микроконтроллеров Flash на базе процессора ARM® Cortex®-M разработан, чтобы предложить новые степени свободы для пользователей MCU( см. рис. 1). 32-битный ассортимент, который сочетает очень высокую производительность, возможности в режиме реального времени, цифровой обработки сигнала, и низкое энергопотребление, низкий питание напряжения, сохраняя полную интеграцию и простоту разработки.

Stm32 что это такое. Смотреть фото Stm32 что это такое. Смотреть картинку Stm32 что это такое. Картинка про Stm32 что это такое. Фото Stm32 что это такое

Рис. 1. Линейка STM 32

Для того чтобы более подробно ознакомиться с ядром на базе которого сделаны STM 32, можно скачать спецификацию на ядро Cortex – M 4 (в дальнейшем мы будем рассматривать именно это семейство):

2. Описание семейства STM32F4

В конце 2011 года компания STMicroelectronics начала серийный выпуск микроконтроллеров STM32F4xx на ядре ARM Cortex‑M4. Эта линейка продолжает развитие семейства STM32, дополняя его новым ядром ARM Cortex-M4. На данный момент общая номенклатура семейства составляет более 250 позиций на ядрах Cortex-M0/M3/M4 с широчайшим набором периферии и производительности, предоставляя разработчику богатый выбор решений для своих задач. Процессорное ядро ARM Cortex-M4 (рис. 2) является последней разработкой в семействе Cortex-M и ориентировано на цифровую обработку сигналов, занимая нишевую часть DSP-приложений, прежде принадлежавшую сигнальным процессорам. Ядро Cortex-M4 поддерживает такие операции, как умножение с накоплением за один такт, арифметика с насыщением, блок вычислений с плавающей запятой FPU (floating point unit), команды управления потоком данных SIMD (single instruction multiple data). Блок FPU совместим со стандартом IEEE 754 и позволяет процессору выполнять широкий спектр математических операций над вещественными числами. Благодаря тому, что DSP-инструкции в ядре Cortex-M4 выполняются за один такт и есть поддержка FPU, для контроллеров STM32 стали доступны новые сегменты рынка. Больше нет необходимости использовать дополнительный DSP-контроллер для обработки сигналов, можно воспользоваться одним STM32F4xx, объединяющим обычный контроллер со всем многообразием периферии и функциями DSP на одном чипе.

Stm32 что это такое. Смотреть фото Stm32 что это такое. Смотреть картинку Stm32 что это такое. Картинка про Stm32 что это такое. Фото Stm32 что это такое

Рис. 2. Ядро ARM Cortex-M4

STM32F4xx можно применять в любых областях, где необходима цифровая обработка сигнала: интеллектуальное управление двигателями, обработка звука и изображений, радиолокация, навигация, релейная защита и т. д. Микроконтроллер без труда справится с цифровой фильтрацией, сверткой или преобразованием Фурье.

2.1. Описание линейки STM32F4

Новая линейка микроконтроллеров STM32F4хх производится по 90 ‑ нм технологии с использованием уже доказавшего свою эффективность ускорителя памяти (ART Accelerator), позволяющего работать с памятью без задержек на максимальной скорости. Производительность на тактовой частоте 168 МГц составляет 210 DMIPS, что означает: на данный момент STM32F4xx — лидер на рынке среди ядер Cortex-M4. Однако мало иметь высокопроизводительное ядро, нужно также обеспечивать хорошую пропускную способность между ядром и периферией. И тут у STM32F4xx все в порядке: применяется 7 ‑ уровневая матрица шин.

Stm32 что это такое. Смотреть фото Stm32 что это такое. Смотреть картинку Stm32 что это такое. Картинка про Stm32 что это такое. Фото Stm32 что это такое

Рис. 2.1.1. Функциональная схема STM32F4хх

Основные характеристики семейства:

· Ядро ARM 32 ‑ битное Cortex-M4.

· Частота тактирования: 168 МГц, 210 DMIPS/1,25 DMIPS/МГц (Dhrystone 2.1).

· Новая высокопроизводительная AHB-матрица шин.

· До 1 Mбайт флэш-памяти.

· До 192 + 4 кбайт SRAM-памяти.

· Напряжение питания: 1,8–3,6 В (POR, PDR,PVD и BOR).

· Внутренние RC-генераторы на 16 МГц

· Внешний источник тактирования 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.

· 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 ‑ битный

· Модуль шифрования AES 128, 192, 256,Triple DES, HASH (MD5, SHA-1), HMAC.

· Расширенный температурный диапазон:

2.2. Ускоритель памяти (ART-акселератор)

Ускоритель памяти (ART-акселератор) Для обеспечения высокой скорости работы нового ядра с флэш-памятью компания ST применила уже хорошо зарекомендовавший себя в серии STM32F2хх ART-акселератор памяти. Использование акселератора флэш памяти вместо увеличения быстродействия самой памяти позволило снизить динамическое потребление и уменьшить общую стоимость готового продукта. Чтобы обеспечить высокую производительность процессора Cortex-M4, ART-акселератор использует кэш очереди предварительных выборок команд и переходов, позволяя выполнять записанные в 128 ‑ битной флэш памяти программы с нулевым временем ожидания на частотах до 168 МГц (рис. 2.2.1).

Stm32 что это такое. Смотреть фото Stm32 что это такое. Смотреть картинку Stm32 что это такое. Картинка про Stm32 что это такое. Фото Stm32 что это такое

Рис. 2.2.1. Ускоритель памяти

2.3. Матрица шин

Новая 32 ‑ битная многоуровневая AHB матрица шин (рис. 2.3.1.) обеспечивает взаимодействие ведущих и ведомых устройств в микроконтроллере, занимается арбитражем при одновременной работе нескольких ведущих. Через матрицу шин ядро Cortex-M4 получает доступ к данным и инструкциям, находящимся во встроенной SRAM- и флэшпамяти, может обратиться через FSMC к внешней памяти или работать с данными от периферии. DMA осуществляет перемещение данных между периферией и памятью или между различными видами памяти. В STM32F4 появился отдельный блок оперативной памяти 64 кбайт, который подключен непосредственно к шине данных ядра. Это сделано специально для работы без задержек с данными ЦОС — при хранении

Stm32 что это такое. Смотреть фото Stm32 что это такое. Смотреть картинку Stm32 что это такое. Картинка про Stm32 что это такое. Фото Stm32 что это такое

Рис. 2.3.1. Многоуровневая матрица шин

2.4. I2C-интерфейс

Микроконтроллер содержит три модуля I2C. Каждый модуль может работать в режиме «ведущий» (Master) или «ведомый» (Slave). Поддерживается режим multimaster. Доступны стандартные (Standard) скорости передачи данных до 100 кГц и быстрая передача данных на частотах до 400 кГц. Возможна 7 ‑ и 10 ‑ битная адресация. Присутствует аппаратный блок проверки пакетных ошибок PEC (Packet Error Checking). I2C- модули поддерживают два расширенных протокола : SMBus 2.0 (System management bus) и PMBus ( Р ower management bus). SPI-интерфейс Микроконтроллер содержит три модуля SPI. Каждый модуль может работать в режиме Мaster (c поддержкой режима мultimaster) или Slave и поддерживать полнодуплексную, полудуплексную и симплексную передачу данных. Модуль SPI1 поддерживает скорость до 37,5 Mбит/с. Остальные модули — до 21 Мбит/с. Данные передаются 8/16 ‑ битными словами старшим или младшим битом вперед. Полярность и фазу тактового сигнала можно программно изменить. Встроена аппаратная поддержка вычисления циклически избыточного кода CRC для обеспечения надежной связи: значения CRC могут быть переданы в качестве последнего байта в режиме Tx, автоматически проводится проверка ошибок CRC для последнего полученного байта.

2.5. I2S-интерфейс

STM32F4хх имеет на борту два модуля I2S. Оба модуля мультиплексированы с SPIинтерфейсом. Этот интерфейс предназначен для работы с цифровыми звуковыми данными. В схеме тактирования теперь имеется выделенный модуль PLL (PLLI2S), который позволяет генерировать частоты сэмплирования аудиосигнала с частотами от 8 до 192 кГц, с точностью порядка 0,01%. Модули работают в режиме Мaster или Slave и поддерживают полнодуплексную и симплексную передачу данных. Данные предаются по 16, 24 или 32 бита. Осуществляется поддержка протоколов: стандарт I2S Phillips, стандарт PCM, MSB и LSB-выравнивание данных.

2.6. USART-интерфейс

STM32F4xxx содержит четыре модуля USART (синхронные) и два модуля UART (асинхронные). Модули USART1 и USART6 могут работать на скорости до 10,5 Mбит/с. Остальные — до 5,25 Mбит/с.

Данные предаются 8/9 ‑ битными словами с одно- или двухстоповыми битами и контролем четности. Поддерживается NRZ (Non Return to Zero) стандарт передачи данных. Модули USART могут быть использованы для подключения к шине LIN, часто используемой в автомобильных приложениях, работать как кодер/декодер инфракрасного сигнала IrDA. Для работы с модемами имеются дополнительные линии управления RTS и СTS. Возможно подключение смарт-карт в соответствии со стандартом ISO 7618-3. В дополнение ко всем описанным функция USART может работать в режиме SPI. В этом режиме модуль USART работает как ведущее SPI-устройство.

2.7. CAN-интерфейс

STM32F4 содержит два контроллера CAN. Контроллеры CAN поддерживают стандарты 2 А и 2 В, активную и пассивную передачу данных на скорости до 1 Мбит/с. Работают со стандартными (11 ‑ битными) и расширенными (29 ‑ битными) кадрами. Каждый CANконтроллер имеет три буфера сообщений на передачу, FIFO с тремя каскадами и 28 распределенных масштабируемых банков фильтров.

2.8. SDIO-интерфейс

SDIO позволяет микроконтроллеру обмениваться информацией с SD/SDIO/MMCкартами памяти и CE-ATA совместимыми устройствами. STM32F4хх поддерживает следующие спецификации: MultiMediaCard System версии 4.2 и более ранних версий (поддержка трех режимов: 1/4/8 бит), SD Memory Card версии 2.0, SD I/O Card версии 2.0 (поддержка двух режимов: 1/4 бит), CE-ATA цифровой протокол версии 1.1. Скорость передачи данных — до 48 МГц в 8 ‑ битном режиме.

2.9. USB-интерфейс

2.10. Ethernet-интерфейс

Модуль Ethernet представлен не во всех микроконтроллерах линейки STM32F4, а только в сериях STM32F407xx и STM32F417xx. Ethernet-модуль соответствует стандарту IEEE802.3 и обеспечивает передачу данных на скоростях 10 и 100 Мбит/с. Для синхронизации часов на аппаратном уровне выполнена поддержка протокола IEEE1588 v2. Для подключения к физической линии (медь, оптика) необходимо использовать внешний трансивер физического уровня (PHY). PHY подключается через порт MII (17 сигналов) или RMII (9 сигналов).

2.11. Цифровой интерфейс камеры (DCMI)

Представлен только в сериях STM32F407xx и STM32F417xx. DCMI позволяет соединить микроконтроллер с камерами и CMOS-сенсорами через параллельный 8/10/12/14 ‑ битный интерфейс. Доступны внутренняя и внешняя синхронизация кадров и строк, работа в непрерывном или покадровом режиме и функция обрезки изображения. Поддерживаются форматы: 8/10/12/14 ‑ битное прогрессивное видео, YCbCr 4:2:2 и RGB 565, сжатые данные JPEG.

2.12. Контроллер статической памяти (FSMC)

Модуль FSMC представлен только в микроконтроллерах с корпусами, содержащими 100, 144 или 176 выводов. FSMC дает возможность подключения к микроконтроллеру графических LCD-дисплеев и внешней статической памяти. FSMC способен поддерживать связь с внешней синхронной/асинхронной памятью и 16 ‑ битными PC-Card устройствами. Основное назначение FSMC — это перевод данных внутри микроконтроллера в доступный для соответствующих внешних устройств вид и обеспечение временных параметров связи этого протокола. Все внешние устройства получают свои адреса в адресном пространстве, сигналы данных и управления. Доступ к каждому внешнему устройству осуществляется посредством индивидуального сигнала выбора микросхемы. Одновременное обращение к двум различным микросхемам внешней памяти невозможно. Поддерживаются следующие типы памяти: PC Card/Compact Flash, SRAM, PSRAM, NOR Flash и NAND Flash. Параллельный LCD-интерфейс поддерживает два режима работы с LCD-контроллерами — Intel 8080 и Motorola 6800, но является довольно гибким для адаптации к другим LCD-интерфейсам.

2.13. Аналоговая периферия (АЦП И ЦАП)

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

2.14. Таймеры

Микроконтроллеры новой линейки могут содержать до 17 таймеров: два 16 ‑ битных таймера с расширенными функциями, два 32 ‑ битных таймера общего назначения, восемь 16 ‑ битных таймеров общего назначения, два 16 ‑ битных базовых таймера, два сторожевых таймера (независимый и оконного типа) и 24 ‑ битный системный таймер. Часть таймеров можно конфигурировать на работу в мультирежимном формате, что позволяет строить системы из таймеров. Например, повысить разрядность счетчика до 48, сконфигурировав последовательно три таймера, или синхронно запускать сразу несколько таймеров. Таймеры с расширенными функциями имеют очень большую функциональность. Это комплементарные выводы для поддержки трехфазных двигателей, поддержка режимов счета в прямом и обратных направлениях, генерация ШИМ, каналы захвата/сравнения сигнала, режим одиночного импульса, поддержка DMA, дополнительные функции безопасности в случае сбоев, поддержка интерфейса энкодера и датчика Холла. Таймеры общего назначения аналогичны таймерам с расширенными функциями, за исключением функций, связанных с управлением двигателями. Отличия между таймерами общего назначения заключаются в различном количестве каналов захвата/сравнения, в поддержке направления счета и поддержке DMA или ее отсутствии. Базовые таймеры имеют наименьший функционал: отсутствуют каналы захвата/сравнения, поддержка функций управления двигателями. Они, как правило, предназначены для использования в качестве обычных счетчиков. Область резервного питания, часы реального времени В микроконтроллерах STM32F4x реализована область резервного питания, позволяющая работать микроконтроллеру при пропадании основного питания и поддержки частичной функциональности микроконтроллера. Область резервного питания состоит из трех составляющих: • часы реального времени (RTC); • 4 кбайт памяти резервной SRAM; • 20 байт резервных регистров (80 байт). Часы реального времени выполнены в виде 32 ‑ разрядного счетчика с полной аппаратной поддержкой 0,5 секунды, секунд, минут, часов (в 12 ‑ или 24 ‑ часовом формате), а также день (день недели), дата (день месяца), месяц и год, представленные в двоично-десятичном формате (BCD). Работа с 28-, 29 ‑ дневными (високосный год) и 30-, 31 ‑ дневными месяцами происходит в автоматическом режиме. Поддерживается переход на летнее/зимнее время. Функция цифровой калибровки позволяет компенсировать неточность кварцевого резонатора. Часы реального времени реализуют дополнительные функции — два конфигурируемых будильника, защиту от несанкционированного доступа с сохранением времени взлома и очисткой резервных регистров. Часы могут оставаться активными во всех режимах работы микроконтроллера и выводить его из различных режимов сна. 4 кбайт резервной памяти доступны только для CPU. Эта память сохраняет свой контекст в низкопотребляющих режимах и при пропадании основного питания микроконтроллера. Но только при условии, что подключено батарейное питание на специально предусмотренный вывод микросхемы Vbat, который при доступности основного питания не потребляет дополнительной энергии. В линейке STM32F4x потребление часов реального времени и 4 ‑ кбайт резервной памяти значительно снижено: и RTC, и SRAM потребляют менее 1 мкА, а вместе — менее 2 мкА.

2.15. Модуль шифрования и хеширования

Модуль шифрования (сryptographic accelerator) представлен только в сериях STM32F415 и STM32F417. Он позволяет аппаратно реавания с очень высокой скоростью «на лету», что необходимо для обеспечения конфиденциальности информации в широком круге задач. Реализованы следующие алгоритмы шифрования: • DES (Data Encryption Standard) — симметричный шифр; • Triple DES (TDES, 64/128/192 ‑ битные ключи) — симметричный блочный шифр; • AES (Advanced Encryption Standard, 128/192/256 ‑ битные ключи) — симметричный блочный шифр. Поддержка хеширования: • SHA-1 (Secure Hash Algorithm-1) — алгоритм криптографического хеширования; • MD5 (Message Digest 5) — 128 ‑ битный алгоритм хеширования; • HMAC (Hash-based message authentication code) — хеш-код идентификации сообщений. В таблице представлен сравнительный анализ оценки пропускной способности STM32F4xx в Мбайт/c для работы с данными на основе вышеприведенных алгоритмов. По таблице видно, что с помощью STM32F4x можно проектировать приложения с криптографической обработкой данных «на лету», практически не используя ресурсы ядра микроконтроллера.

2.16. Порты ввода/вывода общего назначения

Микроконтроллеры оснащены большим количеством портов ввода/вывода общего назначения GPIO (General-Purpose Input Output). На данный момент доступны корпуса LQFP и BGA, максимальное количество выводов микроконтроллера составляет 176. Приведем краткие характеристики портов ввода/вывода: • Регистры управления 16 бит. • Толерантность к 5 В. • Состояния — подтяжка к питанию/«земле», третье состояние, альтернативные функции, аналоговое состояние. • Конфигурация скорости — 2, 25, 50 и 100 МГц. • Механизм защиты конфигурации от изменения. • Генерация прерывания почти любым выводом. Основное же отличие от STM32F1x заключается в более гибком подходе при конфигурировании альтернативных функций (USART, АЦП и т. д.) на одну ножку. Работа портов ввода/вывода стала намного быстрее.

Stm32 что это такое. Смотреть фото Stm32 что это такое. Смотреть картинку Stm32 что это такое. Картинка про Stm32 что это такое. Фото Stm32 что это такое

2.17. Отладка

Для подключения микроконтроллера к отладочным средствам используется стандартной JTAG-интерфейс или двухпроводный SWD (Serial Wire Debug). Выходы SWDинтерфейса мультиплексированы с выходами JTAG. Разработчику предоставляется возможность в выборе интерфейса отладки/программирования. Интегрированная макроячейка трассировки (Embedded Trace Macrocell) значительно расширяет функции отладки, позволяя наблюдать за потоком инструкций и данных внутри ядра CPU в реальном времени. Данные выводятся через небольшое количество ETM-выводов на внешний TDAанализатор. По сообщениям специалистов компании MathWorks, хорошо известной по инструментарию Matlab, в 2012 году должен появиться специальный пакет в Matlab для генерирования и создания кода алгоритмов цифровой обработки сигналов для ядра Cortex-M4. Это заметно облегчит применение ЦОС в микроконтроллерах на ядре Cortex-M4. При выпуске на рынок новой линейки микроконтроллеров на ядре CortexM4 STMicroelectronics следует своим традициям и предлагает разработчикам недорогую отладочную плату STM32F4DISCOVERY из серии плат Discovery. За невысокую цену, менее 900 рублей, разработчик получает полноценную отладочную плату с программатором-отладчиком и может начинать осваивать STM32 без дополнительных затрат. На этот раз в этой отладочной плате, помимо встроенного программатораотладчика, присутствуют МЭМС-датчики (акселерометр и микрофон), а также USB и аудиокодек с разъемом для подключения наушников или колонок. Новые компоненты на отладочной плате вкупе с ядром Cortex-M4 и периферией STM32F4x открывают разработчику новые возможности.

3. Заключение

Новая линейка микроконтроллеров STM32F4 на базе ядра Cortex-M4 вобрала в себя все лучшее от своих предшественников на ядре Cortex-M3 — серий STM32F1 и STM32F2. Основное преимущество новой серии — значительно возросшая производительность: скорость работы ядра выросла до 168 МГц. Усовершенствованный ускоритель памяти позволяет работать с флэш-памятью на этой частоте без задержек. Осуществляется и поддержка DSPинструкций и операций с плавающей точкой. Рост производительности ядра также сказался на увеличении скорости работы периферии. Все новые микроконтроллеры на базе ядра Cortex-M4 программно совместимы с существующими сериями STM32F1xx и STM32F2xx. Совместимость по ножкам между STM32F2x и STM32F4x полная, то есть разработчику доступна полная гибкость при переходе между ядрами CortexM3 и Cortex-M4. К сожалению, полной совместимости по выводам между STM32F1x и STM32F2x/STM32F4x нет, может не совпадать от двух до трех ножек (это ножки питания и «земли»), но вся периферия сохранила свое положение. Рекомендации по созданию универсальной платы для использования STM32F1x и STM32F2x/STM32F4x приведены в документации. Невысокая цена, низкое потребление и новые возможности STM32F4xx по цифровой обработке сигналов, несомненно, сделают эти новые микроконтроллеры лидером в своем сегменте рынка. Недавно компания STMicroelectronics сообщила о выходе на рынок новой линейки 32 ‑ разрядных микроконтроллеров STM32F0xx на ядре Cortex-M0. Эта линейка позиционируется для рынка недорогих 8/16 ‑ битных решений. Фактически семейство STM32 теперь перекрывает весь рынок 8/16/32 ‑ битных микроконтроллеров, позволяя разработчику просто выбрать платформу Cortex-M для всего круга задач. При этом по максимуму соблюдается программная совместимость и совместимость по ножкам, что позволяет с наименьшими затратами переходить от одного микроконтроллера к другому в случае нехватки или переизбытка ресурсов. В массовое же производство новая линейка STM32F0xx выйдет в III квартале 2012 года.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *