STM32F1: микроконтроллеры на Cortex-M3, распиновки по корпусам
STM32F1 — первое семейство STM32 на ядре Cortex-M3. Здесь собраны все его линейки со сравнением частот, памяти, корпусов и периферии и страницы с распиновкой каждого микроконтроллера в каждом корпусе.
STM32F1 — семейство 32-битных микроконтроллеров STMicroelectronics на ядре Arm Cortex-M3, с которого началась серия STM32. Самый известный его представитель — STM32F103C8T6 с плат Blue Pill. В разделе 58 страниц для 125 исполнений в 11 корпусах, 5 линеек: у каждого сочетания микроконтроллера и корпуса — своя страница со схемой выводов, альтернативными функциями и ремапом.
Линейки STM32F1
Линейки отличаются частотой ядра и набором периферии; в пределах линейки — объёмом памяти и корпусом. Значения в таблице собраны из самих записей базы ST: частота — максимальная для линейки, память — от наименьшего до наибольшего исполнения.
| Линейка | Ядро, частота | Флеш-память | ОЗУ | Корпуса | Чем выделяется |
|---|---|---|---|---|---|
| STM32F100 Value Line | Cortex-M3, до 24 МГц | 16 КБ – 512 КБ | 4 КБ – 32 КБ | LQFP48, LQFP64, LQFP100, LQFP144, TFBGA64 | FSMC, DAC, HDMI-CEC |
| STM32F101 | Cortex-M3, до 36 МГц | 16 КБ – 1 МБ | 4 КБ – 80 КБ | LQFP48, LQFP64, LQFP100, LQFP144, TFBGA64, UFQFPN48, VFQFPN36 | FSMC, DAC |
| STM32F102 | Cortex-M3, до 48 МГц | 16 КБ – 128 КБ | 4 КБ – 16 КБ | LQFP48, LQFP64 | USB |
| STM32F103 | Cortex-M3, до 72 МГц | 16 КБ – 1 МБ | 6 КБ – 96 КБ | LFBGA100, LFBGA144, LQFP48, LQFP64, LQFP100, LQFP144, TFBGA64, UFBGA100, UFQFPN48, VFQFPN36, WLCSP64 | USB, CAN, SDIO, FSMC, DAC, I²S |
| STM32F105/107 | Cortex-M3, до 72 МГц | 64 КБ – 256 КБ | 64 КБ | LFBGA100, LQFP64, LQFP100 | USB OTG FS, CAN, Ethernet, DAC, I²S |
Reference manual RM0008 делит линейки F101, F102 и F103 на классы по объёму флеш-памяти: low-density (16–32 Кбайт), medium-density (64–128 Кбайт), high-density (256–512 Кбайт) и XL-density (768 Кбайт – 1 Мбайт). Класс определяет состав периферии: по данным ST у STM32F103 контроллер внешней памяти FSMC, интерфейс карт SDIO, ЦАП и I²S есть только в исполнениях high- и XL-density (у STM32F101 из них — FSMC и ЦАП), причём FSMC — только в корпусах на 100 и 144 вывода. Линейки STM32F105 и STM32F107 RM0008 называет connectivity line: у них USB OTG, два CAN, а у F107 ещё и Ethernet. Линейка STM32F100 Value Line описана в отдельном reference manual RM0041.
Выводы STM32F1: режимы и ремап
Каждая линия порта STM32F1 настраивается четырьмя битами: полем MODE (вход или выход с ограничением частоты) и полем CNF (аналоговый вход, плавающий или подтянутый вход, двухтактный или открытый сток, обычный или альтернативный выход). Линии 0–7 порта описывает регистр GPIOx_CRL, линии 8–15 — GPIOx_CRH (RM0008, раздел о GPIO).
Мультиплексора альтернативных функций у STM32F1 нет: сигнал периферии по умолчанию выходит на один определённый вывод, а часть сигналов можно перенести на другие выводы битами регистров AFIO_MAPR и AFIO_MAPR2. В таблицах атласа такие сигналы помечены словом «ремап», а на схеме корпуса их можно подсветить вместе с остальными выводами периферии. Перенос делается целиком для блока: например, частичный ремап TIM2 переносит сразу несколько каналов таймера.
Сравнение с мультиплексором AF0–AF15 у STM32F4 — на странице раздела STM32, подробности о ядре — в статье Cortex-M3.
Все STM32F1 по корпусам
STM32F100 Value Line — Cortex-M3, до 24 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32F100C4, STM32F100C6 | LQFP48 | 16 КБ / 32 КБ | 4 КБ | 37 |
| STM32F100C8, STM32F100CB | LQFP48 | 64 КБ / 128 КБ | 8 КБ | 37 |
| STM32F100R4, STM32F100R6 | TFBGA64 | 16 КБ / 32 КБ | 4 КБ | 50 |
| STM32F100R4, STM32F100R6 | LQFP64 | 16 КБ / 32 КБ | 4 КБ | 51 |
| STM32F100R8, STM32F100RB | TFBGA64 | 64 КБ / 128 КБ | 8 КБ | 50 |
| STM32F100R8, STM32F100RB | LQFP64 | 64 КБ / 128 КБ | 8 КБ | 51 |
| STM32F100RC, STM32F100RD, STM32F100RE | LQFP64 | 256 КБ / 384 КБ / 512 КБ | 24 КБ / 32 КБ | 51 |
| STM32F100V8, STM32F100VB | LQFP100 | 64 КБ / 128 КБ | 8 КБ | 80 |
| STM32F100VC, STM32F100VD, STM32F100VE | LQFP100 | 256 КБ / 384 КБ / 512 КБ | 24 КБ / 32 КБ | 80 |
| STM32F100ZC, STM32F100ZD, STM32F100ZE | LQFP144 | 256 КБ / 384 КБ / 512 КБ | 24 КБ / 32 КБ | 112 |
STM32F101 — Cortex-M3, до 36 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32F101C4, STM32F101C6 | LQFP48 | 16 КБ / 32 КБ | 4 КБ / 6 КБ | 37 |
| STM32F101C8, STM32F101CB | LQFP48 | 64 КБ / 128 КБ | 10 КБ / 16 КБ | 37 |
| STM32F101C8, STM32F101CB | UFQFPN48 | 64 КБ / 128 КБ | 10 КБ / 16 КБ | 37 |
| STM32F101R4, STM32F101R6 | LQFP64 | 16 КБ / 32 КБ | 4 КБ / 6 КБ | 51 |
| STM32F101R8, STM32F101RB | LQFP64 | 64 КБ / 128 КБ | 10 КБ / 16 КБ | 51 |
| STM32F101RB | TFBGA64 | 128 КБ | 16 КБ | 50 |
| STM32F101RC, STM32F101RD, STM32F101RE | LQFP64 | 256 КБ / 384 КБ / 512 КБ | 32 КБ / 48 КБ | 51 |
| STM32F101RF, STM32F101RG | LQFP64 | 768 КБ / 1 МБ | 80 КБ | 51 |
| STM32F101T4, STM32F101T6 | VFQFPN36 | 16 КБ / 32 КБ | 4 КБ / 6 КБ | 26 |
| STM32F101T8, STM32F101TB | VFQFPN36 | 64 КБ / 128 КБ | 10 КБ / 16 КБ | 26 |
| STM32F101V8, STM32F101VB | LQFP100 | 64 КБ / 128 КБ | 10 КБ / 16 КБ | 80 |
| STM32F101VC, STM32F101VD, STM32F101VE | LQFP100 | 256 КБ / 384 КБ / 512 КБ | 32 КБ / 48 КБ | 80 |
| STM32F101VF, STM32F101VG | LQFP100 | 768 КБ / 1 МБ | 80 КБ | 80 |
| STM32F101ZC, STM32F101ZD, STM32F101ZE | LQFP144 | 256 КБ / 384 КБ / 512 КБ | 32 КБ / 48 КБ | 112 |
| STM32F101ZF, STM32F101ZG | LQFP144 | 768 КБ / 1 МБ | 80 КБ | 112 |
STM32F102 — Cortex-M3, до 48 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32F102C4, STM32F102C6 | LQFP48 | 16 КБ / 32 КБ | 4 КБ / 6 КБ | 37 |
| STM32F102C8, STM32F102CB | LQFP48 | 64 КБ / 128 КБ | 10 КБ / 16 КБ | 37 |
| STM32F102R4, STM32F102R6 | LQFP64 | 16 КБ / 32 КБ | 4 КБ / 6 КБ | 51 |
| STM32F102R8, STM32F102RB | LQFP64 | 64 КБ / 128 КБ | 10 КБ / 16 КБ | 51 |
STM32F103 — Cortex-M3, до 72 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32F103C4, STM32F103C6 | LQFP48 | 16 КБ / 32 КБ | 6 КБ / 10 КБ | 37 |
| STM32F103C6 | UFQFPN48 | 32 КБ | 10 КБ | 37 |
| STM32F103C8, STM32F103CB | LQFP48 | 64 КБ / 128 КБ | 20 КБ | 37 |
| STM32F103CB | UFQFPN48 | 128 КБ | 20 КБ | 37 |
| STM32F103R4, STM32F103R6 | TFBGA64 | 16 КБ / 32 КБ | 6 КБ / 10 КБ | 50 |
| STM32F103R4, STM32F103R6 | LQFP64 | 16 КБ / 32 КБ | 6 КБ / 10 КБ | 51 |
| STM32F103R8, STM32F103RB | TFBGA64 | 64 КБ / 128 КБ | 20 КБ | 50 |
| STM32F103R8, STM32F103RB | LQFP64 | 64 КБ / 128 КБ | 20 КБ | 51 |
| STM32F103RC, STM32F103RD, STM32F103RE | LQFP64 | 256 КБ / 384 КБ / 512 КБ | 48 КБ / 64 КБ | 51 |
| STM32F103RC, STM32F103RD, STM32F103RE | WLCSP64 | 256 КБ / 384 КБ / 512 КБ | 48 КБ / 64 КБ | 50 |
| STM32F103RF, STM32F103RG | LQFP64 | 768 КБ / 1 МБ | 96 КБ | 51 |
| STM32F103T4, STM32F103T6 | VFQFPN36 | 16 КБ / 32 КБ | 6 КБ / 10 КБ | 26 |
| STM32F103T8, STM32F103TB | VFQFPN36 | 64 КБ / 128 КБ | 20 КБ | 26 |
| STM32F103V8, STM32F103VB | LFBGA100 | 64 КБ / 128 КБ | 20 КБ | 80 |
| STM32F103V8, STM32F103VB | LQFP100 | 64 КБ / 128 КБ | 20 КБ | 80 |
| STM32F103VB | UFBGA100 | 128 КБ | 20 КБ | 80 |
| STM32F103VC, STM32F103VD, STM32F103VE | LFBGA100 | 256 КБ / 384 КБ / 512 КБ | 48 КБ / 64 КБ | 80 |
| STM32F103VC, STM32F103VD, STM32F103VE | LQFP100 | 256 КБ / 384 КБ / 512 КБ | 48 КБ / 64 КБ | 80 |
| STM32F103VF, STM32F103VG | LQFP100 | 768 КБ / 1 МБ | 96 КБ | 80 |
| STM32F103ZC, STM32F103ZD, STM32F103ZE | LFBGA144 | 256 КБ / 384 КБ / 512 КБ | 48 КБ / 64 КБ | 112 |
| STM32F103ZC, STM32F103ZD, STM32F103ZE | LQFP144 | 256 КБ / 384 КБ / 512 КБ | 48 КБ / 64 КБ | 112 |
| STM32F103ZF, STM32F103ZG | LFBGA144 | 768 КБ / 1 МБ | 96 КБ | 112 |
| STM32F103ZF, STM32F103ZG | LQFP144 | 768 КБ / 1 МБ | 96 КБ | 112 |
STM32F105/107 — Cortex-M3, до 72 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32F105R8, STM32F105RB, STM32F105RC | LQFP64 | 64 КБ / 128 КБ / 256 КБ | 64 КБ | 51 |
| STM32F105V8, STM32F105VB | LFBGA100 | 64 КБ / 128 КБ | 64 КБ | 80 |
| STM32F105V8, STM32F105VB, STM32F105VC | LQFP100 | 64 КБ / 128 КБ / 256 КБ | 64 КБ | 80 |
| STM32F107RB, STM32F107RC | LQFP64 | 128 КБ / 256 КБ | 64 КБ | 51 |
| STM32F107VB, STM32F107VC | LQFP100 | 128 КБ / 256 КБ | 64 КБ | 80 |
| STM32F107VC | LFBGA100 | 256 КБ | 64 КБ | 80 |
Перед разводкой платы сверяйте выводы с даташитом своего исполнения: в нём указаны допустимые напряжения на выводах (у толерантных к 5 В помечены FT), токи и номиналы внешних компонентов.
Частые вопросы
Чем STM32F103 отличается от STM32F101?
По данным ST у линейки STM32F103 частота до 72 МГц, у STM32F101 — до 36 МГц. У STM32F103 есть контроллеры USB и CAN, а у исполнений с большим объёмом флеш-памяти ещё SDIO и I²S; у STM32F101 этих блоков нет. Корпуса и расположение основных выводов у линеек во многом совпадают, поэтому на страницах микроконтроллеров есть списки похожих по выводам.
Что такое low-, medium-, high- и XL-density у STM32F1?
Так reference manual RM0008 делит линейки F101, F102 и F103 по объёму флеш-памяти: low-density — 16–32 Кбайт, medium-density — 64–128 Кбайт, high-density — 256–512 Кбайт, XL-density — 768 Кбайт и 1 Мбайт. От класса зависит набор периферии и часть регистров, поэтому в библиотеках ST встречаются макросы вроде STM32F10X_MD. Линейку F105/F107 RM0008 называет connectivity line.
Чем STM32F105 отличается от STM32F107?
У обеих линеек частота до 72 МГц, два контроллера CAN и USB OTG Full Speed. У STM32F107 дополнительно есть MAC Ethernet, у STM32F105 его нет — это видно по таблице «Периферия и её выводы» на страницах микроконтроллеров.
Как у STM32F1 назначить вывод периферии?
Сначала вывод переводят в режим альтернативной функции полями MODE и CNF регистров GPIOx_CRL или GPIOx_CRH (по 4 бита на линию). Сигнал периферии выходит на вывод по умолчанию; чтобы перенести его на другой вывод, включают ремап битами AFIO_MAPR или AFIO_MAPR2. Мультиплексора с номерами AF, как у STM32F4, в STM32F1 нет.
Какой STM32F1 самый маленький по числу выводов?
В опубликованных данных самый маленький корпус семейства — VFQFPN36 у линеек STM32F101 и STM32F103. Полный список корпусов каждой линейки — в таблице «Линейки STM32F1».
Смотрите также
- STM32Распиновки по корпусам, альтернативные функции, похожие по выводам МК
- STM32F4Cortex-M4 с FPU: от F401 и F411 до F429 и F469 — линейки и распиновки
- Cortex-M3Регистры, карта памяти, bit-banding, NVIC, SysTick, MPU, старт, пример
- Тактирование STM32PLL под нужную частоту, шины, флеш-память, регистры RCC и код
- Таймер AVR и STM32Предделитель, OCRnA, PSC и ARR под частоту
- Битовый тайминг CANCAN_BTR для STM32, CNF1–CNF3 для MCP2515, точка выборки
- JTAG и SWDARM JTAG 20, Cortex Debug 10, STDC14, ST-LINK