Перейти к содержанию

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 LineCortex-M3, до 24 МГц16 КБ – 512 КБ4 КБ – 32 КБLQFP48, LQFP64, LQFP100, LQFP144, TFBGA64FSMC, DAC, HDMI-CEC
STM32F101Cortex-M3, до 36 МГц16 КБ – 1 МБ4 КБ – 80 КБLQFP48, LQFP64, LQFP100, LQFP144, TFBGA64, UFQFPN48, VFQFPN36FSMC, DAC
STM32F102Cortex-M3, до 48 МГц16 КБ – 128 КБ4 КБ – 16 КБLQFP48, LQFP64USB
STM32F103Cortex-M3, до 72 МГц16 КБ – 1 МБ6 КБ – 96 КБLFBGA100, LFBGA144, LQFP48, LQFP64, LQFP100, LQFP144, TFBGA64, UFBGA100, UFQFPN48, VFQFPN36, WLCSP64USB, CAN, SDIO, FSMC, DAC, I²S
STM32F105/107Cortex-M3, до 72 МГц64 КБ – 256 КБ64 КБLFBGA100, LQFP64, LQFP100USB 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, STM32F100C6LQFP4816 КБ / 32 КБ4 КБ37
STM32F100C8, STM32F100CBLQFP4864 КБ / 128 КБ8 КБ37
STM32F100R4, STM32F100R6TFBGA6416 КБ / 32 КБ4 КБ50
STM32F100R4, STM32F100R6LQFP6416 КБ / 32 КБ4 КБ51
STM32F100R8, STM32F100RBTFBGA6464 КБ / 128 КБ8 КБ50
STM32F100R8, STM32F100RBLQFP6464 КБ / 128 КБ8 КБ51
STM32F100RC, STM32F100RD, STM32F100RELQFP64256 КБ / 384 КБ / 512 КБ24 КБ / 32 КБ51
STM32F100V8, STM32F100VBLQFP10064 КБ / 128 КБ8 КБ80
STM32F100VC, STM32F100VD, STM32F100VELQFP100256 КБ / 384 КБ / 512 КБ24 КБ / 32 КБ80
STM32F100ZC, STM32F100ZD, STM32F100ZELQFP144256 КБ / 384 КБ / 512 КБ24 КБ / 32 КБ112

STM32F101 — Cortex-M3, до 36 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F101C4, STM32F101C6LQFP4816 КБ / 32 КБ4 КБ / 6 КБ37
STM32F101C8, STM32F101CBLQFP4864 КБ / 128 КБ10 КБ / 16 КБ37
STM32F101C8, STM32F101CBUFQFPN4864 КБ / 128 КБ10 КБ / 16 КБ37
STM32F101R4, STM32F101R6LQFP6416 КБ / 32 КБ4 КБ / 6 КБ51
STM32F101R8, STM32F101RBLQFP6464 КБ / 128 КБ10 КБ / 16 КБ51
STM32F101RBTFBGA64128 КБ16 КБ50
STM32F101RC, STM32F101RD, STM32F101RELQFP64256 КБ / 384 КБ / 512 КБ32 КБ / 48 КБ51
STM32F101RF, STM32F101RGLQFP64768 КБ / 1 МБ80 КБ51
STM32F101T4, STM32F101T6VFQFPN3616 КБ / 32 КБ4 КБ / 6 КБ26
STM32F101T8, STM32F101TBVFQFPN3664 КБ / 128 КБ10 КБ / 16 КБ26
STM32F101V8, STM32F101VBLQFP10064 КБ / 128 КБ10 КБ / 16 КБ80
STM32F101VC, STM32F101VD, STM32F101VELQFP100256 КБ / 384 КБ / 512 КБ32 КБ / 48 КБ80
STM32F101VF, STM32F101VGLQFP100768 КБ / 1 МБ80 КБ80
STM32F101ZC, STM32F101ZD, STM32F101ZELQFP144256 КБ / 384 КБ / 512 КБ32 КБ / 48 КБ112
STM32F101ZF, STM32F101ZGLQFP144768 КБ / 1 МБ80 КБ112

STM32F102 — Cortex-M3, до 48 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F102C4, STM32F102C6LQFP4816 КБ / 32 КБ4 КБ / 6 КБ37
STM32F102C8, STM32F102CBLQFP4864 КБ / 128 КБ10 КБ / 16 КБ37
STM32F102R4, STM32F102R6LQFP6416 КБ / 32 КБ4 КБ / 6 КБ51
STM32F102R8, STM32F102RBLQFP6464 КБ / 128 КБ10 КБ / 16 КБ51

STM32F103 — Cortex-M3, до 72 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F103C4, STM32F103C6LQFP4816 КБ / 32 КБ6 КБ / 10 КБ37
STM32F103C6UFQFPN4832 КБ10 КБ37
STM32F103C8, STM32F103CBLQFP4864 КБ / 128 КБ20 КБ37
STM32F103CBUFQFPN48128 КБ20 КБ37
STM32F103R4, STM32F103R6TFBGA6416 КБ / 32 КБ6 КБ / 10 КБ50
STM32F103R4, STM32F103R6LQFP6416 КБ / 32 КБ6 КБ / 10 КБ51
STM32F103R8, STM32F103RBTFBGA6464 КБ / 128 КБ20 КБ50
STM32F103R8, STM32F103RBLQFP6464 КБ / 128 КБ20 КБ51
STM32F103RC, STM32F103RD, STM32F103RELQFP64256 КБ / 384 КБ / 512 КБ48 КБ / 64 КБ51
STM32F103RC, STM32F103RD, STM32F103REWLCSP64256 КБ / 384 КБ / 512 КБ48 КБ / 64 КБ50
STM32F103RF, STM32F103RGLQFP64768 КБ / 1 МБ96 КБ51
STM32F103T4, STM32F103T6VFQFPN3616 КБ / 32 КБ6 КБ / 10 КБ26
STM32F103T8, STM32F103TBVFQFPN3664 КБ / 128 КБ20 КБ26
STM32F103V8, STM32F103VBLFBGA10064 КБ / 128 КБ20 КБ80
STM32F103V8, STM32F103VBLQFP10064 КБ / 128 КБ20 КБ80
STM32F103VBUFBGA100128 КБ20 КБ80
STM32F103VC, STM32F103VD, STM32F103VELFBGA100256 КБ / 384 КБ / 512 КБ48 КБ / 64 КБ80
STM32F103VC, STM32F103VD, STM32F103VELQFP100256 КБ / 384 КБ / 512 КБ48 КБ / 64 КБ80
STM32F103VF, STM32F103VGLQFP100768 КБ / 1 МБ96 КБ80
STM32F103ZC, STM32F103ZD, STM32F103ZELFBGA144256 КБ / 384 КБ / 512 КБ48 КБ / 64 КБ112
STM32F103ZC, STM32F103ZD, STM32F103ZELQFP144256 КБ / 384 КБ / 512 КБ48 КБ / 64 КБ112
STM32F103ZF, STM32F103ZGLFBGA144768 КБ / 1 МБ96 КБ112
STM32F103ZF, STM32F103ZGLQFP144768 КБ / 1 МБ96 КБ112

STM32F105/107 — Cortex-M3, до 72 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32F105R8, STM32F105RB, STM32F105RCLQFP6464 КБ / 128 КБ / 256 КБ64 КБ51
STM32F105V8, STM32F105VBLFBGA10064 КБ / 128 КБ64 КБ80
STM32F105V8, STM32F105VB, STM32F105VCLQFP10064 КБ / 128 КБ / 256 КБ64 КБ80
STM32F107RB, STM32F107RCLQFP64128 КБ / 256 КБ64 КБ51
STM32F107VB, STM32F107VCLQFP100128 КБ / 256 КБ64 КБ80
STM32F107VCLFBGA100256 КБ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».