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

STM32G4: микроконтроллеры на Cortex-M4 до 170 МГц, распиновки по корпусам

STM32G4 — семейство STM32 на ядре Cortex-M4 с FPU и частотой до 170 МГц: АЦП, компараторы и ОУ, CAN FD, USB с Type-C Power Delivery, математические ускорители CORDIC и FMAC, у STM32G474 и G484 — таймер высокого разрешения HRTIM. Здесь — сравнение линеек и страницы с распиновкой и номерами альтернативных функций каждого микроконтроллера в каждом корпусе.

STM32G4 — семейство 32-битных микроконтроллеров STMicroelectronics на ядре Arm Cortex-M4 с блоком вычислений с плавающей точкой и частотой до 170 МГц. Как и у STM32F3, на кристалле много аналоговой периферии — АЦП, компараторы, ОУ, — а к ней добавлены CAN FD, USB Type-C Power Delivery и математические ускорители. В разделе 86 страниц для 150 исполнений в 15 корпусах, 9 линеек: у каждого сочетания микроконтроллера и корпуса — своя страница со схемой выводов и номерами альтернативных функций.

Линейки STM32G4

Значения в таблице собраны из записей базы ST: частота — максимальная для линейки, память — от наименьшего до наибольшего исполнения.

ЛинейкаЯдро, частотаФлеш-памятьОЗУКорпусаЧем выделяется
STM32G431Cortex-M4, до 170 МГц32 КБ – 128 КБ32 КБLQFP32, LQFP48, LQFP64, LQFP80, LQFP100, UFBGA64, UFQFPN32, UFQFPN48, WLCSP49USB, UCPD, FDCAN, DAC, COMP, I²S, SAI, RNG, LPTIM, LPUART
STM32G441Cortex-M4, до 170 МГц128 КБ32 КБLQFP32, LQFP48, LQFP64, LQFP80, LQFP100, UFBGA64, UFQFPN32, UFQFPN48, WLCSP49USB, UCPD, FDCAN, DAC, COMP, I²S, SAI, AES, RNG, LPTIM, LPUART
STM32G471Cortex-M4, до 170 МГц256 КБ – 512 КБ128 КБLQFP48, LQFP64, LQFP80, LQFP100, LQFP128, TFBGA100, UFBGA100, UFQFPN48, WLCSP81USB, UCPD, FDCAN, QUADSPI, DAC, COMP, I²S, SAI, RNG, LPTIM, LPUART
STM32G473Cortex-M4, до 170 МГц128 КБ – 512 КБ128 КБLQFP48, LQFP64, LQFP80, LQFP100, LQFP128, TFBGA100, UFBGA121, UFQFPN48, WLCSP81USB, UCPD, FDCAN, FMC, QUADSPI, DAC, COMP, I²S, SAI, RNG, LPTIM, LPUART
STM32G474Cortex-M4, до 170 МГц128 КБ – 512 КБ128 КБLQFP48, LQFP64, LQFP80, LQFP100, LQFP128, TFBGA100, UFBGA121, UFQFPN48, WLCSP81USB, UCPD, FDCAN, FMC, QUADSPI, DAC, COMP, I²S, SAI, RNG, LPTIM, LPUART
STM32G483Cortex-M4, до 170 МГц512 КБ128 КБLQFP48, LQFP64, LQFP80, LQFP100, LQFP128, TFBGA100, UFBGA121, UFQFPN48, WLCSP81USB, UCPD, FDCAN, FMC, QUADSPI, DAC, COMP, I²S, SAI, AES, RNG, LPTIM, LPUART
STM32G484Cortex-M4, до 170 МГц512 КБ128 КБLQFP48, LQFP64, LQFP80, LQFP100, LQFP128, TFBGA100, UFBGA121, UFQFPN48, WLCSP81USB, UCPD, FDCAN, FMC, QUADSPI, DAC, COMP, I²S, SAI, AES, RNG, LPTIM, LPUART
STM32G491Cortex-M4, до 170 МГц256 КБ – 512 КБ112 КБ – 128 КБLQFP48, LQFP64, LQFP80, LQFP100, UFBGA64, UFQFPN32, UFQFPN48, WLCSP64USB, UCPD, FDCAN, QUADSPI, DAC, COMP, I²S, SAI, RNG, LPTIM, LPUART
STM32G4A1Cortex-M4, до 170 МГц512 КБ128 КБLQFP48, LQFP64, LQFP80, LQFP100, UFBGA64, UFQFPN32, UFQFPN48, WLCSP64USB, UCPD, FDCAN, QUADSPI, DAC, COMP, I²S, SAI, AES, RNG, LPTIM, LPUART

Всё семейство описывает один reference manual — RM0440. Он делит линейки на три категории по памяти (табл. 1):

  • Категория 2 — STM32G431 и G441: до 128 КБ флеш-памяти в одном банке, 32 КБ ОЗУ (16 КБ SRAM1, 6 КБ SRAM2 и 10 КБ CCM SRAM).
  • Категория 3 — STM32G471, G473, G474, G483 и G484: до 512 КБ флеш-памяти в двух банках, 128 КБ ОЗУ (80 КБ SRAM1, 16 КБ SRAM2 и 32 КБ CCM SRAM).
  • Категория 4 — STM32G491 и G4A1: до 512 КБ флеш-памяти в одном банке, 112 КБ ОЗУ (80 КБ SRAM1, 16 КБ SRAM2 и 16 КБ CCM SRAM). В базе ST у большинства их записей указано 128 КБ — таблица линеек выше показывает значение базы, а состав памяти здесь — по таблице 2 RM0440.

По таблице 2 RM0440 у всех STM32G4 есть USB-устройство, контроллер USB Type-C Power Delivery (UCPD), FDCAN, SAI, LPUART, генератор случайных чисел и ускорители CORDIC и FMAC. Остальное зависит от линейки:

G474/G484G473/G483G471G431/G441G491/G4A1
АЦП55323
Компараторы77444
ОУ66434
FDCAN33212
HRTIMесть————
Внешняя память (FSMC)естьесть———
QUADSPIестьестьесть—есть

STM32G441, G483, G484 и G4A1 повторяют G431, G473, G474 и G491 и добавляют аппаратное шифрование AES (табл. 1 и примечание к табл. 2).

Тактирование и питание

Частота до 170 МГц допустима в режиме стабилизатора Range 1 boost (напряжение ядра около 1,28 В), в обычном Range 1 — до 150 МГц, в экономичном Range 2 — до 26 МГц (RM0440, раздел PWR и табл. 9). После сброса ядро работает от внутреннего генератора на 16 МГц с одним тактом ожидания флеш-памяти. Ускоритель ART позволяет выполнять программу из флеш-памяти на 170 МГц так же быстро, как без тактов ожидания. Скорость CAN FD для FDCAN настраивает калькулятор битового тайминга CAN, делители таймеров — калькулятор таймера.

Выводы STM32G4: альтернативные функции, BOOT0 и NRST

На каждой линии порта стоит мультиплексор альтернативных функций: режим задаёт GPIOx_MODER, номер функции AF0–AF15 — регистры GPIOx_AFRL и GPIOx_AFRH (RM0440, раздел GPIO); в данных ST у STM32G4 встречаются номера до AF14.

Две особенности разводки (RM0440):

  • PB8-BOOT0. Режим загрузки задают вывод BOOT0 или — если в байте опций сброшен бит nSWBOOT0 — бит nBOOT0, вместе с битом nBOOT1 (табл. 5). Во втором случае вывод свободен и работает как линия PB8.
  • PG10-NRST. Поле NRST_MODE в байте опций переключает вывод сброса: вход и выход сброса, только вход или обычная линия PG10.

Все STM32G4 по корпусам

STM32G431 — Cortex-M4, до 170 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32G431C6, STM32G431C8, STM32G431CBLQFP4832 КБ / 64 КБ / 128 КБ32 КБ38
STM32G431C6, STM32G431C8, STM32G431CBUFQFPN4832 КБ / 64 КБ / 128 КБ32 КБ42
STM32G431CBLQFP48128 КБ32 КБ38
STM32G431CBWLCSP49128 КБ32 КБ41
STM32G431K6, STM32G431K8, STM32G431KBLQFP3232 КБ / 64 КБ / 128 КБ32 КБ26
STM32G431K6, STM32G431K8, STM32G431KBUFQFPN3232 КБ / 64 КБ / 128 КБ32 КБ26
STM32G431M6, STM32G431M8, STM32G431MBLQFP8032 КБ / 64 КБ / 128 КБ32 КБ66
STM32G431R6, STM32G431R8, STM32G431RBUFBGA6432 КБ / 64 КБ / 128 КБ32 КБ52
STM32G431R6, STM32G431R8, STM32G431RBLQFP6432 КБ / 64 КБ / 128 КБ32 КБ52
STM32G431RBLQFP64128 КБ32 КБ52
STM32G431V6, STM32G431V8, STM32G431VBLQFP10032 КБ / 64 КБ / 128 КБ32 КБ86

STM32G441 — Cortex-M4, до 170 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32G441CBLQFP48128 КБ32 КБ38
STM32G441CBUFQFPN48128 КБ32 КБ42
STM32G441CBWLCSP49128 КБ32 КБ41
STM32G441KBLQFP32128 КБ32 КБ26
STM32G441KBUFQFPN32128 КБ32 КБ26
STM32G441MBLQFP80128 КБ32 КБ66
STM32G441RBUFBGA64128 КБ32 КБ52
STM32G441RBLQFP64128 КБ32 КБ52
STM32G441VBLQFP100128 КБ32 КБ86

STM32G471 — Cortex-M4, до 170 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32G471CC, STM32G471CELQFP48256 КБ / 512 КБ128 КБ38
STM32G471CC, STM32G471CEUFQFPN48256 КБ / 512 КБ128 КБ42
STM32G471MC, STM32G471MELQFP80256 КБ / 512 КБ128 КБ66
STM32G471MEWLCSP81512 КБ128 КБ67
STM32G471QC, STM32G471QELQFP128256 КБ / 512 КБ128 КБ107
STM32G471RC, STM32G471RELQFP64256 КБ / 512 КБ128 КБ52
STM32G471VC, STM32G471VETFBGA100256 КБ / 512 КБ128 КБ86
STM32G471VC, STM32G471VEUFBGA100256 КБ / 512 КБ128 КБ86
STM32G471VC, STM32G471VELQFP100256 КБ / 512 КБ128 КБ86

STM32G473 — Cortex-M4, до 170 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32G473CB, STM32G473CC, STM32G473CELQFP48128 КБ / 256 КБ / 512 КБ128 КБ38
STM32G473CB, STM32G473CC, STM32G473CEUFQFPN48128 КБ / 256 КБ / 512 КБ128 КБ42
STM32G473MB, STM32G473MC, STM32G473MELQFP80128 КБ / 256 КБ / 512 КБ128 КБ66
STM32G473MEWLCSP81512 КБ128 КБ67
STM32G473PB, STM32G473PC, STM32G473PEUFBGA121128 КБ / 256 КБ / 512 КБ128 КБ102
STM32G473QB, STM32G473QC, STM32G473QELQFP128128 КБ / 256 КБ / 512 КБ128 КБ107
STM32G473QELQFP128512 КБ128 КБ107
STM32G473RB, STM32G473RC, STM32G473RELQFP64128 КБ / 256 КБ / 512 КБ128 КБ52
STM32G473RELQFP64512 КБ128 КБ52
STM32G473VB, STM32G473VC, STM32G473VETFBGA100128 КБ / 256 КБ / 512 КБ128 КБ86
STM32G473VB, STM32G473VC, STM32G473VELQFP100128 КБ / 256 КБ / 512 КБ128 КБ86

STM32G474 — Cortex-M4, до 170 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32G474CB, STM32G474CC, STM32G474CELQFP48128 КБ / 256 КБ / 512 КБ128 КБ38
STM32G474CB, STM32G474CC, STM32G474CEUFQFPN48128 КБ / 256 КБ / 512 КБ128 КБ42
STM32G474MB, STM32G474MC, STM32G474MELQFP80128 КБ / 256 КБ / 512 КБ128 КБ66
STM32G474MEWLCSP81512 КБ128 КБ67
STM32G474PB, STM32G474PC, STM32G474PEUFBGA121128 КБ / 256 КБ / 512 КБ128 КБ102
STM32G474QB, STM32G474QC, STM32G474QELQFP128128 КБ / 256 КБ / 512 КБ128 КБ107
STM32G474RB, STM32G474RC, STM32G474RELQFP64128 КБ / 256 КБ / 512 КБ128 КБ52
STM32G474VB, STM32G474VC, STM32G474VETFBGA100128 КБ / 256 КБ / 512 КБ128 КБ86
STM32G474VB, STM32G474VC, STM32G474VELQFP100128 КБ / 256 КБ / 512 КБ128 КБ86

STM32G483 — Cortex-M4, до 170 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32G483CELQFP48512 КБ128 КБ38
STM32G483CEUFQFPN48512 КБ128 КБ42
STM32G483MELQFP80512 КБ128 КБ66
STM32G483MEWLCSP81512 КБ128 КБ67
STM32G483PEUFBGA121512 КБ128 КБ102
STM32G483QELQFP128512 КБ128 КБ107
STM32G483RELQFP64512 КБ128 КБ52
STM32G483VETFBGA100512 КБ128 КБ86
STM32G483VELQFP100512 КБ128 КБ86

STM32G484 — Cortex-M4, до 170 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32G484CELQFP48512 КБ128 КБ38
STM32G484CEUFQFPN48512 КБ128 КБ42
STM32G484MELQFP80512 КБ128 КБ66
STM32G484MEWLCSP81512 КБ128 КБ67
STM32G484PEUFBGA121512 КБ128 КБ102
STM32G484QELQFP128512 КБ128 КБ107
STM32G484RELQFP64512 КБ128 КБ52
STM32G484VETFBGA100512 КБ128 КБ86
STM32G484VELQFP100512 КБ128 КБ86

STM32G491 — Cortex-M4, до 170 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32G491CC, STM32G491CELQFP48256 КБ / 512 КБ128 КБ38
STM32G491CC, STM32G491CEUFQFPN48256 КБ / 512 КБ128 КБ42
STM32G491KC, STM32G491KEUFQFPN32256 КБ / 512 КБ128 КБ26
STM32G491MCSx, STM32G491MESxLQFP80256 КБ / 512 КБ128 КБ66
STM32G491MCTx, STM32G491METxLQFP80256 КБ / 512 КБ128 КБ66
STM32G491RC, STM32G491REUFBGA64256 КБ / 512 КБ128 КБ52
STM32G491RC, STM32G491RELQFP64256 КБ / 512 КБ128 КБ52
STM32G491RELQFP64512 КБ112 КБ52
STM32G491REWLCSP64512 КБ128 КБ52
STM32G491VC, STM32G491VELQFP100256 КБ / 512 КБ128 КБ86

STM32G4A1 — Cortex-M4, до 170 МГц

МикроконтроллерКорпусФлеш-памятьОЗУЛиний ввода-вывода
STM32G4A1CELQFP48512 КБ128 КБ38
STM32G4A1CEUFQFPN48512 КБ128 КБ42
STM32G4A1KEUFQFPN32512 КБ128 КБ26
STM32G4A1MESxLQFP80512 КБ128 КБ66
STM32G4A1METxLQFP80512 КБ128 КБ66
STM32G4A1REUFBGA64512 КБ128 КБ52
STM32G4A1RELQFP64512 КБ128 КБ52
STM32G4A1REWLCSP64512 КБ128 КБ52
STM32G4A1VELQFP100512 КБ128 КБ86

Перед разводкой платы сверяйте выводы с даташитом своего исполнения: в нём указаны допустимые напряжения на выводах (толерантные к 5 В помечены FT), токи и номиналы внешних компонентов.

Частые вопросы

Чем STM32G431 отличается от STM32G474?

Это разные категории RM0440. STM32G431 и G441 — категория 2: до 128 КБ флеш-памяти в одном банке и 32 КБ ОЗУ, два АЦП, четыре компаратора, три ОУ, один FDCAN. STM32G474 и G484 — категория 3: до 512 КБ флеш-памяти в двух банках, 128 КБ ОЗУ, пять АЦП, семь компараторов, шесть ОУ, три FDCAN, контроллер внешней памяти, QUADSPI и таймер высокого разрешения HRTIM (табл. 2).

У каких STM32G4 есть HRTIM и аппаратный AES?

По таблице 2 RM0440 таймер высокого разрешения HRTIM1 есть только у STM32G474 и G484. Аппаратное шифрование AES — у STM32G441, G483, G484 и G4A1: это версии G431, G473, G474 и G491 с AES.

Что такое CORDIC и FMAC в STM32G4?

Это аппаратные ускорители математики, они есть у всех STM32G4 (RM0440, табл. 2). CORDIC вычисляет тригонометрические и гиперболические функции и квадратный корень — то, что нужно в управлении двигателями, измерениях и обработке сигналов, — быстрее программной реализации. FMAC считает цифровые фильтры: КИХ (FIR) и БИХ (IIR) на своей локальной памяти коэффициентов и отсчётов.

Можно ли использовать выводы BOOT0 и NRST у STM32G4 как обычные порты?

Да. Если в байте опций сбросить бит nSWBOOT0, режим загрузки берётся из бита nBOOT0, а вывод PB8-BOOT0 после загрузки байтов опций работает как обычная линия PB8. Вывод сброса PG10-NRST становится линией PG10, если в поле NRST_MODE байта опций записать 2 (RM0440, разделы 2.6 и 9.3.16).

На какой частоте STM32G4 работает без тактов ожидания?

Сама флеш-память без тактов ожидания читается до 34 МГц в режиме Range 1 boost и до 30 МГц в обычном Range 1; на 170 МГц нужно 4 такта ожидания (RM0440, табл. 9). Ускоритель ART даёт выполнение программы из флеш-памяти, равноценное работе без тактов ожидания, вплоть до 170 МГц.