STM32F2: микроконтроллеры на Cortex-M3 до 120 МГц
STM32F2 — семейство STM32 на ядре Cortex-M3 с частотой до 120 МГц: предшественник STM32F4 с тем же расположением выводов, мультиплексором альтернативных функций и большей частью периферии, но без FPU. Здесь — сравнение линеек, главное из reference manual и страницы с распиновкой каждого микроконтроллера в каждом корпусе.
STM32F2 — семейство микроконтроллеров STMicroelectronics на ядре Arm Cortex-M3 с частотой до 120 МГц (RM0033). По набору периферии и выводам оно стоит между STM32F1 и STM32F4: мультиплексор альтернативных функций на каждой линии, USB OTG Full Speed и High Speed, два CAN, SDIO, контроллер внешней памяти FSMC, у старших линеек — Ethernet. В разделе 16 страниц для 47 исполнений в 7 корпусах, 4 линейки: у каждого сочетания микроконтроллера и корпуса — своя страница со схемой выводов и номерами альтернативных функций.
Линейки STM32F2
Значения в таблице собраны из записей базы ST: частота — максимальная для линейки, память — от наименьшего до наибольшего исполнения.
| Линейка | Ядро, частота | Флеш-память | ОЗУ | Корпуса | Чем выделяется |
|---|---|---|---|---|---|
| STM32F205 | Cortex-M3, до 120 МГц | 128 КБ – 1 МБ | 64 КБ – 128 КБ | EWLCSP66, LQFP64, LQFP100, LQFP144, WLCSP66 | USB OTG FS, USB OTG HS, CAN, SDIO, FSMC, DAC, I²S, RNG |
| STM32F207 | Cortex-M3, до 120 МГц | 256 КБ – 1 МБ | 128 КБ | LQFP100, LQFP144, LQFP176, UFBGA176 | USB OTG FS, USB OTG HS, CAN, Ethernet, SDIO, FSMC, DAC, I²S, DCMI, RNG |
| STM32F215 | Cortex-M3, до 120 МГц | 512 КБ – 1 МБ | 128 КБ | LQFP64, LQFP100, LQFP144 | USB OTG FS, USB OTG HS, CAN, SDIO, FSMC, DAC, I²S, CRYP, HASH, RNG |
| STM32F217 | Cortex-M3, до 120 МГц | 512 КБ – 1 МБ | 128 КБ | LQFP100, LQFP144, LQFP176, UFBGA176 | USB OTG FS, USB OTG HS, CAN, Ethernet, SDIO, FSMC, DAC, I²S, DCMI, CRYP, HASH, RNG |
Все четыре линейки описывает один reference manual RM0033. По данным ST у STM32F2x7 — STM32F207 и F217 — есть MAC Ethernet и интерфейс камеры DCMI, у STM32F2x5 — F205 и F215 — их нет. Линейки с цифрой 1 во втором разряде (F215, F217) добавляют аппаратную криптографию: раздел RM0033 о блоке хеширования HASH относится только к STM32F21x.
Тактирование и питание
После сброса ядро работает от внутреннего RC-генератора HSI на 16 МГц; для максимальной частоты 120 МГц включают PLL от HSE или HSI. Шина APB2 работает не быстрее 60 МГц, APB1 — не быстрее 30 МГц (RM0033, 2.2). USB OTG FS, SDIO и генератор случайных чисел тактируются от второго выхода PLL на 48 МГц, а для интерфейса I²S есть отдельный PLLI2S.
Число тактов ожидания флеш-памяти зависит не только от частоты, но и от напряжения питания (RM0033, табл. 3):
| Частота HCLK | 2,7–3,6 В | 2,4–2,7 В | 2,1–2,4 В | 1,8–2,1 В |
|---|---|---|---|---|
| 0 тактов ожидания | до 30 МГц | до 24 МГц | до 18 МГц | до 16 МГц |
| 1 | до 60 МГц | до 48 МГц | до 36 МГц | до 32 МГц |
| 2 | до 90 МГц | до 72 МГц | до 54 МГц | до 48 МГц |
| 3 | до 120 МГц | до 96 МГц | до 72 МГц | до 64 МГц |
| 4 | — | до 120 МГц | до 90 МГц | до 80 МГц |
| 5 | — | — | до 108 МГц | до 96 МГц |
| 6 | — | — | до 120 МГц | до 112 МГц |
| 7 | — | — | — | до 120 МГц |
Ускоритель ART — очередь предвыборки и кеш переходов перед флеш-памятью — даёт исполнение кода на 120 МГц практически без ожидания (RM0033, 2.3.5). Питание — от 1,8 до 3,6 В, ядро получает 1,2 В от встроенного стабилизатора. ОЗУ — 128 КБ (у младших исполнений меньше) и 4 КБ резервной SRAM, которая вместе с часами RTC сохраняется от батарейки на выводе VBAT (RM0033, 2.3.1 и 4.1). Делители таймеров и скорость UART от выбранных частот считают калькулятор таймера и калькулятор UART.
Выводы STM32F2: альтернативные функции и загрузка
Как у STM32F4, у каждой линии порта мультиплексор на шестнадцать функций: режим задаёт GPIOx_MODER, номер функции AF0–AF15 — регистры GPIOx_AFRL (линии 0–7) и GPIOx_AFRH (линии 8–15); AF15 — выход EVENTOUT ядра (RM0033, раздел GPIO). Аналоговые входы АЦП и выводы генераторов номера AF не имеют.
Режим загрузки выбирают выводы BOOT0 и BOOT1 (RM0033, табл. 4):
| BOOT1 | BOOT0 | Откуда старт |
|---|---|---|
| любой | 0 | флеш-память |
| 0 | 1 | системная память — встроенный загрузчик |
| 1 | 1 | встроенная SRAM |
BOOT1 совмещён с выводом порта и после чтения при сбросе свободен для других задач. Загрузчик программирует флеш-память через USART1, USART3, CAN2 и USB OTG FS в режиме DFU (RM0033, 2.4; AN2606, табл. 51 и 53).
Все STM32F2 по корпусам
STM32F205 — Cortex-M3, до 120 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32F205RB, STM32F205RC, STM32F205RE, STM32F205RF, STM32F205RG | LQFP64 | 128 КБ / 256 КБ / 512 КБ / 768 КБ / 1 МБ | 64 КБ / 96 КБ / 128 КБ | 51 |
| STM32F205RE, STM32F205RG | WLCSP66 | 512 КБ / 1 МБ | 128 КБ | 51 |
| STM32F205RG | EWLCSP66 | 1 МБ | 128 КБ | 51 |
| STM32F205VB, STM32F205VC, STM32F205VE, STM32F205VF, STM32F205VG | LQFP100 | 128 КБ / 256 КБ / 512 КБ / 768 КБ / 1 МБ | 64 КБ / 96 КБ / 128 КБ | 82 |
| STM32F205ZC, STM32F205ZE, STM32F205ZF, STM32F205ZG | LQFP144 | 256 КБ / 512 КБ / 768 КБ / 1 МБ | 96 КБ / 128 КБ | 114 |
STM32F207 — Cortex-M3, до 120 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32F207IC, STM32F207IE, STM32F207IF, STM32F207IG | UFBGA176 | 256 КБ / 512 КБ / 768 КБ / 1 МБ | 128 КБ | 140 |
| STM32F207IC, STM32F207IE, STM32F207IF, STM32F207IG | LQFP176 | 256 КБ / 512 КБ / 768 КБ / 1 МБ | 128 КБ | 140 |
| STM32F207VC, STM32F207VE, STM32F207VF, STM32F207VG | LQFP100 | 256 КБ / 512 КБ / 768 КБ / 1 МБ | 128 КБ | 82 |
| STM32F207ZC, STM32F207ZE, STM32F207ZF, STM32F207ZG | LQFP144 | 256 КБ / 512 КБ / 768 КБ / 1 МБ | 128 КБ | 114 |
STM32F215 — Cortex-M3, до 120 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32F215RE, STM32F215RG | LQFP64 | 512 КБ / 1 МБ | 128 КБ | 51 |
| STM32F215VE, STM32F215VG | LQFP100 | 512 КБ / 1 МБ | 128 КБ | 82 |
| STM32F215ZE, STM32F215ZG | LQFP144 | 512 КБ / 1 МБ | 128 КБ | 114 |
STM32F217 — Cortex-M3, до 120 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32F217IE, STM32F217IG | UFBGA176 | 512 КБ / 1 МБ | 128 КБ | 140 |
| STM32F217IE, STM32F217IG | LQFP176 | 512 КБ / 1 МБ | 128 КБ | 140 |
| STM32F217VE, STM32F217VG | LQFP100 | 512 КБ / 1 МБ | 128 КБ | 82 |
| STM32F217ZE, STM32F217ZG | LQFP144 | 512 КБ / 1 МБ | 128 КБ | 114 |
Перед разводкой платы сверяйте выводы с даташитом своего исполнения: в нём указаны допустимые напряжения на выводах (толерантные к 5 В помечены FT), токи и номиналы внешних компонентов.
Частые вопросы
Чем STM32F2 отличается от STM32F4?
Ядром: у STM32F2 Cortex-M3 без блока вычислений с плавающей точкой и частота до 120 МГц, у STM32F4 — Cortex-M4 с FPU и командами DSP. Расположение выводов, мультиплексор альтернативных функций AF0–AF15 и многие периферийные блоки у STM32F205/F207 и STM32F405/F407 похожи, поэтому на страницах микроконтроллеров в списке похожих по выводам встречаются STM32F4.
Чем STM32F207 отличается от STM32F205?
По данным ST у линейки STM32F2x7 (F207 и F217) есть MAC Ethernet и интерфейс камеры DCMI, у STM32F2x5 (F205 и F215) их нет. Остальная периферия — USB OTG FS и HS, два CAN, SDIO, FSMC, АЦП и ЦАП — у обеих линеек общая; наличие сигналов зависит ещё и от корпуса.
Сколько тактов ожидания флеш-памяти нужно STM32F2 на 120 МГц?
Зависит от напряжения питания. По табл. 3 RM0033 при 2,7–3,6 В на 120 МГц нужно 3 такта ожидания, при 2,4–2,7 В — 4, при 2,1–2,4 В — 6, при 1,8–2,1 В — 7. Ускоритель ART с очередью предвыборки и кешем переходов позволяет при этом исполнять код из флеш-памяти почти без задержек (RM0033, 2.3.5).
Как запустить встроенный загрузчик STM32F2?
При сбросе подают BOOT0 = 1 и BOOT1 = 0 — стартует системная память (RM0033, табл. 4). Загрузчик принимает прошивку через USART1, USART3, CAN2 или USB OTG FS в режиме DFU; для CAN и USB нужен кварц HSE с частотой, кратной 1 МГц, от 4 до 26 МГц (RM0033, 2.4).
Смотрите также
- STM32Распиновки по корпусам, альтернативные функции, похожие по выводам МК
- STM32F4Cortex-M4 с FPU: от F401 и F411 до F429 и F469 — линейки и распиновки
- STM32F1Cortex-M3: F100, F101, F102, F103, F105/107 — линейки и распиновки
- Cortex-M3Регистры, карта памяти, bit-banding, NVIC, SysTick, MPU, старт, пример
- Таймер AVR и STM32Предделитель, OCRnA, PSC и ARR под частоту
- Скорость UARTUBRR, BRR, TH1 и ошибка скорости
- CANCAN_H и CAN_L, терминаторы, кадр, арбитраж, ошибки, тайминг, MCP2515