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: частота — максимальная для линейки, память — от наименьшего до наибольшего исполнения.
| Линейка | Ядро, частота | Флеш-память | ОЗУ | Корпуса | Чем выделяется |
|---|---|---|---|---|---|
| STM32G431 | Cortex-M4, до 170 МГц | 32 КБ – 128 КБ | 32 КБ | LQFP32, LQFP48, LQFP64, LQFP80, LQFP100, UFBGA64, UFQFPN32, UFQFPN48, WLCSP49 | USB, UCPD, FDCAN, DAC, COMP, I²S, SAI, RNG, LPTIM, LPUART |
| STM32G441 | Cortex-M4, до 170 МГц | 128 КБ | 32 КБ | LQFP32, LQFP48, LQFP64, LQFP80, LQFP100, UFBGA64, UFQFPN32, UFQFPN48, WLCSP49 | USB, UCPD, FDCAN, DAC, COMP, I²S, SAI, AES, RNG, LPTIM, LPUART |
| STM32G471 | Cortex-M4, до 170 МГц | 256 КБ – 512 КБ | 128 КБ | LQFP48, LQFP64, LQFP80, LQFP100, LQFP128, TFBGA100, UFBGA100, UFQFPN48, WLCSP81 | USB, UCPD, FDCAN, QUADSPI, DAC, COMP, I²S, SAI, RNG, LPTIM, LPUART |
| STM32G473 | Cortex-M4, до 170 МГц | 128 КБ – 512 КБ | 128 КБ | LQFP48, LQFP64, LQFP80, LQFP100, LQFP128, TFBGA100, UFBGA121, UFQFPN48, WLCSP81 | USB, UCPD, FDCAN, FMC, QUADSPI, DAC, COMP, I²S, SAI, RNG, LPTIM, LPUART |
| STM32G474 | Cortex-M4, до 170 МГц | 128 КБ – 512 КБ | 128 КБ | LQFP48, LQFP64, LQFP80, LQFP100, LQFP128, TFBGA100, UFBGA121, UFQFPN48, WLCSP81 | USB, UCPD, FDCAN, FMC, QUADSPI, DAC, COMP, I²S, SAI, RNG, LPTIM, LPUART |
| STM32G483 | Cortex-M4, до 170 МГц | 512 КБ | 128 КБ | LQFP48, LQFP64, LQFP80, LQFP100, LQFP128, TFBGA100, UFBGA121, UFQFPN48, WLCSP81 | USB, UCPD, FDCAN, FMC, QUADSPI, DAC, COMP, I²S, SAI, AES, RNG, LPTIM, LPUART |
| STM32G484 | Cortex-M4, до 170 МГц | 512 КБ | 128 КБ | LQFP48, LQFP64, LQFP80, LQFP100, LQFP128, TFBGA100, UFBGA121, UFQFPN48, WLCSP81 | USB, UCPD, FDCAN, FMC, QUADSPI, DAC, COMP, I²S, SAI, AES, RNG, LPTIM, LPUART |
| STM32G491 | Cortex-M4, до 170 МГц | 256 КБ – 512 КБ | 112 КБ – 128 КБ | LQFP48, LQFP64, LQFP80, LQFP100, UFBGA64, UFQFPN32, UFQFPN48, WLCSP64 | USB, UCPD, FDCAN, QUADSPI, DAC, COMP, I²S, SAI, RNG, LPTIM, LPUART |
| STM32G4A1 | Cortex-M4, до 170 МГц | 512 КБ | 128 КБ | LQFP48, LQFP64, LQFP80, LQFP100, UFBGA64, UFQFPN32, UFQFPN48, WLCSP64 | USB, 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/G484 | G473/G483 | G471 | G431/G441 | G491/G4A1 | |
|---|---|---|---|---|---|
| АЦП | 5 | 5 | 3 | 2 | 3 |
| Компараторы | 7 | 7 | 4 | 4 | 4 |
| ОУ | 6 | 6 | 4 | 3 | 4 |
| FDCAN | 3 | 3 | 2 | 1 | 2 |
| 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, STM32G431CB | LQFP48 | 32 КБ / 64 КБ / 128 КБ | 32 КБ | 38 |
| STM32G431C6, STM32G431C8, STM32G431CB | UFQFPN48 | 32 КБ / 64 КБ / 128 КБ | 32 КБ | 42 |
| STM32G431CB | LQFP48 | 128 КБ | 32 КБ | 38 |
| STM32G431CB | WLCSP49 | 128 КБ | 32 КБ | 41 |
| STM32G431K6, STM32G431K8, STM32G431KB | LQFP32 | 32 КБ / 64 КБ / 128 КБ | 32 КБ | 26 |
| STM32G431K6, STM32G431K8, STM32G431KB | UFQFPN32 | 32 КБ / 64 КБ / 128 КБ | 32 КБ | 26 |
| STM32G431M6, STM32G431M8, STM32G431MB | LQFP80 | 32 КБ / 64 КБ / 128 КБ | 32 КБ | 66 |
| STM32G431R6, STM32G431R8, STM32G431RB | UFBGA64 | 32 КБ / 64 КБ / 128 КБ | 32 КБ | 52 |
| STM32G431R6, STM32G431R8, STM32G431RB | LQFP64 | 32 КБ / 64 КБ / 128 КБ | 32 КБ | 52 |
| STM32G431RB | LQFP64 | 128 КБ | 32 КБ | 52 |
| STM32G431V6, STM32G431V8, STM32G431VB | LQFP100 | 32 КБ / 64 КБ / 128 КБ | 32 КБ | 86 |
STM32G441 — Cortex-M4, до 170 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32G441CB | LQFP48 | 128 КБ | 32 КБ | 38 |
| STM32G441CB | UFQFPN48 | 128 КБ | 32 КБ | 42 |
| STM32G441CB | WLCSP49 | 128 КБ | 32 КБ | 41 |
| STM32G441KB | LQFP32 | 128 КБ | 32 КБ | 26 |
| STM32G441KB | UFQFPN32 | 128 КБ | 32 КБ | 26 |
| STM32G441MB | LQFP80 | 128 КБ | 32 КБ | 66 |
| STM32G441RB | UFBGA64 | 128 КБ | 32 КБ | 52 |
| STM32G441RB | LQFP64 | 128 КБ | 32 КБ | 52 |
| STM32G441VB | LQFP100 | 128 КБ | 32 КБ | 86 |
STM32G471 — Cortex-M4, до 170 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32G471CC, STM32G471CE | LQFP48 | 256 КБ / 512 КБ | 128 КБ | 38 |
| STM32G471CC, STM32G471CE | UFQFPN48 | 256 КБ / 512 КБ | 128 КБ | 42 |
| STM32G471MC, STM32G471ME | LQFP80 | 256 КБ / 512 КБ | 128 КБ | 66 |
| STM32G471ME | WLCSP81 | 512 КБ | 128 КБ | 67 |
| STM32G471QC, STM32G471QE | LQFP128 | 256 КБ / 512 КБ | 128 КБ | 107 |
| STM32G471RC, STM32G471RE | LQFP64 | 256 КБ / 512 КБ | 128 КБ | 52 |
| STM32G471VC, STM32G471VE | TFBGA100 | 256 КБ / 512 КБ | 128 КБ | 86 |
| STM32G471VC, STM32G471VE | UFBGA100 | 256 КБ / 512 КБ | 128 КБ | 86 |
| STM32G471VC, STM32G471VE | LQFP100 | 256 КБ / 512 КБ | 128 КБ | 86 |
STM32G473 — Cortex-M4, до 170 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32G473CB, STM32G473CC, STM32G473CE | LQFP48 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 38 |
| STM32G473CB, STM32G473CC, STM32G473CE | UFQFPN48 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 42 |
| STM32G473MB, STM32G473MC, STM32G473ME | LQFP80 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 66 |
| STM32G473ME | WLCSP81 | 512 КБ | 128 КБ | 67 |
| STM32G473PB, STM32G473PC, STM32G473PE | UFBGA121 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 102 |
| STM32G473QB, STM32G473QC, STM32G473QE | LQFP128 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 107 |
| STM32G473QE | LQFP128 | 512 КБ | 128 КБ | 107 |
| STM32G473RB, STM32G473RC, STM32G473RE | LQFP64 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 52 |
| STM32G473RE | LQFP64 | 512 КБ | 128 КБ | 52 |
| STM32G473VB, STM32G473VC, STM32G473VE | TFBGA100 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 86 |
| STM32G473VB, STM32G473VC, STM32G473VE | LQFP100 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 86 |
STM32G474 — Cortex-M4, до 170 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32G474CB, STM32G474CC, STM32G474CE | LQFP48 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 38 |
| STM32G474CB, STM32G474CC, STM32G474CE | UFQFPN48 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 42 |
| STM32G474MB, STM32G474MC, STM32G474ME | LQFP80 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 66 |
| STM32G474ME | WLCSP81 | 512 КБ | 128 КБ | 67 |
| STM32G474PB, STM32G474PC, STM32G474PE | UFBGA121 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 102 |
| STM32G474QB, STM32G474QC, STM32G474QE | LQFP128 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 107 |
| STM32G474RB, STM32G474RC, STM32G474RE | LQFP64 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 52 |
| STM32G474VB, STM32G474VC, STM32G474VE | TFBGA100 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 86 |
| STM32G474VB, STM32G474VC, STM32G474VE | LQFP100 | 128 КБ / 256 КБ / 512 КБ | 128 КБ | 86 |
STM32G483 — Cortex-M4, до 170 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32G483CE | LQFP48 | 512 КБ | 128 КБ | 38 |
| STM32G483CE | UFQFPN48 | 512 КБ | 128 КБ | 42 |
| STM32G483ME | LQFP80 | 512 КБ | 128 КБ | 66 |
| STM32G483ME | WLCSP81 | 512 КБ | 128 КБ | 67 |
| STM32G483PE | UFBGA121 | 512 КБ | 128 КБ | 102 |
| STM32G483QE | LQFP128 | 512 КБ | 128 КБ | 107 |
| STM32G483RE | LQFP64 | 512 КБ | 128 КБ | 52 |
| STM32G483VE | TFBGA100 | 512 КБ | 128 КБ | 86 |
| STM32G483VE | LQFP100 | 512 КБ | 128 КБ | 86 |
STM32G484 — Cortex-M4, до 170 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32G484CE | LQFP48 | 512 КБ | 128 КБ | 38 |
| STM32G484CE | UFQFPN48 | 512 КБ | 128 КБ | 42 |
| STM32G484ME | LQFP80 | 512 КБ | 128 КБ | 66 |
| STM32G484ME | WLCSP81 | 512 КБ | 128 КБ | 67 |
| STM32G484PE | UFBGA121 | 512 КБ | 128 КБ | 102 |
| STM32G484QE | LQFP128 | 512 КБ | 128 КБ | 107 |
| STM32G484RE | LQFP64 | 512 КБ | 128 КБ | 52 |
| STM32G484VE | TFBGA100 | 512 КБ | 128 КБ | 86 |
| STM32G484VE | LQFP100 | 512 КБ | 128 КБ | 86 |
STM32G491 — Cortex-M4, до 170 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32G491CC, STM32G491CE | LQFP48 | 256 КБ / 512 КБ | 128 КБ | 38 |
| STM32G491CC, STM32G491CE | UFQFPN48 | 256 КБ / 512 КБ | 128 КБ | 42 |
| STM32G491KC, STM32G491KE | UFQFPN32 | 256 КБ / 512 КБ | 128 КБ | 26 |
| STM32G491MCSx, STM32G491MESx | LQFP80 | 256 КБ / 512 КБ | 128 КБ | 66 |
| STM32G491MCTx, STM32G491METx | LQFP80 | 256 КБ / 512 КБ | 128 КБ | 66 |
| STM32G491RC, STM32G491RE | UFBGA64 | 256 КБ / 512 КБ | 128 КБ | 52 |
| STM32G491RC, STM32G491RE | LQFP64 | 256 КБ / 512 КБ | 128 КБ | 52 |
| STM32G491RE | LQFP64 | 512 КБ | 112 КБ | 52 |
| STM32G491RE | WLCSP64 | 512 КБ | 128 КБ | 52 |
| STM32G491VC, STM32G491VE | LQFP100 | 256 КБ / 512 КБ | 128 КБ | 86 |
STM32G4A1 — Cortex-M4, до 170 МГц
| Микроконтроллер | Корпус | Флеш-память | ОЗУ | Линий ввода-вывода |
|---|---|---|---|---|
| STM32G4A1CE | LQFP48 | 512 КБ | 128 КБ | 38 |
| STM32G4A1CE | UFQFPN48 | 512 КБ | 128 КБ | 42 |
| STM32G4A1KE | UFQFPN32 | 512 КБ | 128 КБ | 26 |
| STM32G4A1MESx | LQFP80 | 512 КБ | 128 КБ | 66 |
| STM32G4A1METx | LQFP80 | 512 КБ | 128 КБ | 66 |
| STM32G4A1RE | UFBGA64 | 512 КБ | 128 КБ | 52 |
| STM32G4A1RE | LQFP64 | 512 КБ | 128 КБ | 52 |
| STM32G4A1RE | WLCSP64 | 512 КБ | 128 КБ | 52 |
| STM32G4A1VE | LQFP100 | 512 КБ | 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 МГц.
Смотрите также
- STM32Распиновки по корпусам, альтернативные функции, похожие по выводам МК
- STM32F3Cortex-M4 с FPU, до 72 МГц: F301–F303, F334, F373 и версии F3x8 на 1,8 В — линейки и распиновки
- STM32G0Cortex-M0+, до 64 МГц: G030–G0B0 Value line, G031–G0C1 — линейки и распиновки
- STM32F4Cortex-M4 с FPU: от F401 и F411 до F429 и F469 — линейки и распиновки
- CAN FDКадр, BRS и фаза данных, DLC до 64 байт, CRC, ISO и non-ISO
- Битовый тайминг CANCAN_BTR для STM32, CNF1–CNF3 для MCP2515, точка выборки
- Таймер AVR и STM32Предделитель, OCRnA, PSC и ARR под частоту