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

Можно ли поставить STM32G431 вместо STM32F303 на ту же плату?

Обновлено Редакция GAW

STM32F303 и STM32G431 похожи по назначению — Cortex-M4 с FPU и богатой аналоговой периферией, — но разводка корпусов у них разная. Сравнение позиций из базы ST (STM32_open_pin_data) для LQFP48:

ПозицияSTM32F303CB/CCSTM32G431C6/C8/CB
7NRSTPG10-NRST
8–9VSSA/VREF−, VDDA/VREF+PA0, PA1
10–18PA0…PA7, PB0PA2…PA7, PB0…PB2
19–21PB1, PB2, PB10VSSA, VREF+, VDDA
22–43сдвинуты на одну-три позиции
44BOOT0PB7
45PB8PB8-BOOT0

Наш подсчёт по базе: в LQFP48 различаются 35 из 48 позиций, в LQFP64 — 46 из 64. Причина одна и та же: у G4 выводы питания аналоговой части стоят отдельно, с собственным выводом VREF+, а BOOT0 совмещён с линией PB8. В LQFP48 совпадают только VBAT, PC13, выводы обоих кварцев (позиции 1–6), пары VSS и VDD и линия PB9.

Чем ещё отличаются

STM32F303CB/CCSTM32G431C6/C8/CB
Частота72 МГц170 МГц
Флеш-память / ОЗУ128–256 / 32–40 КБ32–128 / 32 КБ
Питание2,0–3,6 В1,71–3,6 В
АЦП42
Компараторы / ОУ7 / 44 / 3
CANbxCANFDCAN (CAN FD)
Только у G431—CORDIC, FMAC, LPUART1, USB Type-C PD (UCPD)

Данные — по той же базе ST для исполнений в LQFP48.

Если нужна замена

На ту же плату F303 по выводам можно заменить на F301, F302 или F334, но периферии у них меньше: по базе ST у F301C6/C8 нет USB, CAN, АЦП 2–4, SPI1 и таймеров TIM3, TIM4, TIM8, флеш-памяти 32–64 КБ и ОЗУ 16 КБ, а у F334C нет USB, I2C2, SPI2 и SPI3 при ОЗУ 12 КБ. Списки совпадений — в статье «Совместимость STM32 по выводам». Переход на STM32G4 требует новой платы и переноса программы; что меняется в регистрах при смене поколения периферии, показывает ответ о переносе кода с STM32F103 на STM32G4. Линейки F3 — на странице STM32F3.

Похожие вопросы

А STM32G474 вместо STM32G431?

Да, в LQFP64 все линейки STM32G4 разведены одинаково — это видно по той же базе ST, и об этом подробно говорит страница о совместимости STM32 по выводам. Переход внутри семейства G4 на той же плате возможен; проверить нужно только набор периферии и объём памяти.

Какой STM32 совпадает по выводам с STM32F303?

Внутри семейства F3: STM32F301, F302, F303 и F334 в LQFP48 совпадают по выводам, но у F301 и F334 заметно меньше периферии и памяти — сверяйте по базе ST. Версии F318, F328 и F358 без внутреннего стабилизатора отличаются выводом 20 и питанием 1,8 В. Таблицы отличий — на странице о совместимости STM32.

Перенесётся ли программа с F303 на G431 без изменений?

Частично. Блоки GPIO, USART, SPI и I2C у них одного поколения, а тактирование и CAN разные: у G431 частота до 170 МГц с режимом Range 1 boost, а CAN — FDCAN вместо bxCAN. Код на HAL переносится проще, код на регистрах — по справочному руководству RM0440.

Источники

  1. STMicroelectronics. STM32_open_pin_data (GitHub, BSD-3-Clause) — mcu/STM32F303C(B-C)Tx.xml и STM32G431C(6-8-B)Tx.xml (LQFP48), STM32F303R(B-C)Tx.xml и STM32G431R(6-8-B)Tx.xml (LQFP64): частота 72 и 170 МГц, флеш-память 128/256 и 32/64/128 КБ, ОЗУ 32/40 и 32 КБ, питание 2,0–3,6 и 1,71–3,6 В, имена выводов по позициям, списки периферии (ADC1–ADC4, CAN, COMP1–COMP7, OPAMP1–OPAMP4 у F303; ADC1–ADC2, FDCAN1, COMP1–COMP4, OPAMP1–OPAMP3, CORDIC, FMAC, LPUART1, UCPD1 у G431); STM32F301C(6-8)Tx.xml и STM32F334C(4-6-8)Tx.xml — для сравнения периферии внутри F3
  2. STMicroelectronics. CMSIS device headers cmsis-device-f3 и cmsis-device-g4 (GitHub, Apache-2.0) — stm32f303xc.h — контроллер bxCAN (CAN_TypeDef), stm32g431xx.h — FDCAN1 (FDCAN_GlobalTypeDef); разные адреса и регистры периферии

Нашли ошибку?