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

Можно ли поставить STM32L476 вместо STM32F401 или STM32F411 на ту же плату?

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

STM32F401, STM32F411 и STM32L476 в 64-выводном корпусе — частые соседи: в базе ST для всех трёх есть отладочные платы серии Nucleo-64 (NUCLEO-F401RE, NUCLEO-F411RE, NUCLEO-L476RG). По базе ST (STM32_open_pin_data) почти все позиции совпадают, а различий по существу два:

ПозицияSTM32F401 / F411STM32L476Что это значит
30VCAP1PB11вместо вывода конденсатора стабилизатора — линия порта
48VDDVDDUSBотдельное питание USB; на плате для F4 оно уже подано
12–13F401: VSSA/VREF−, VREF+; F411: VSSA, VDDAVSSA/VREF−, VDDA/VREF+аналоговое питание на тех же местах, различаются только подписи в базе
2–6, 14PC13, кварцы, PA0-WKUPте же линиитолько подписи
46, 49, 50, 55, 56PA13, PA14, PA15, PB3, PB4те же с пометкой JTAGтолько подписи

Наш подсчёт: у пары F401 — L476 по именам различаются 14 позиций из 64, у пары F411 — L476 — 15, но по существу — только позиции 30 и 48.

Что даёт и чего требует замена

STM32F401STM32F411STM32L476
Частота84 МГц100 МГц80 МГц
ОЗУ96 КБ128 КБ128 КБ
Флеш-памятьдо 512 КБдо 512 КБдо 1 МБ

Данные — по базе ST. L476 выбирают ради малого потребления и большей памяти, теряя немного частоты. Блок GPIO у всех трёх одного поколения, но тактирование и биты включения портов разные (заголовки CMSIS): у F4 — RCC_AHB1ENR, у L4 — RCC_AHB2ENR. Подробности о L4 — на странице STM32L4, о F4 — на странице STM32F4, все семейства — в обзоре «Семейства STM32», другие пары совместимых STM32 — в статье «Совместимость STM32 по выводам».

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

Что делать с конденсатором на выводе VCAP1?

У STM32F401 и F411 на этом выводе стоит конденсатор внутреннего стабилизатора ядра, а у STM32L476 там обычная линия PB11. Наш вывод: если PB11 в программе не используется, конденсатор на ней не мешает; если линия нужна, конденсатор снимают.

Нужно ли что-то подключать к VDDUSB?

У STM32L476 вывод 48 — отдельное питание блока USB, VDDUSB. На плате для F4 на этом месте VDD, то есть питание уже подано, и для L476 этого достаточно.

Перенесётся ли программа с F401 на L476?

Частично. Блок GPIO у них одного устройства, но тактирование другое — у L476 генератор MSI и иные биты RCC, порты тактируются от RCC_AHB2ENR, а у части выводов есть аналоговый ключ ASCR. С HAL перенос проще: в CubeMX создают проект под L476 и переносят свою логику.

Источники

  1. STMicroelectronics. STM32_open_pin_data (GitHub, BSD-3-Clause) — mcu/STM32F401R(B-C)Tx.xml, STM32F401R(D-E)Tx.xml, STM32F411R(C-E)Tx.xml и STM32L476R(C-E-G)Tx.xml (64 вывода): различаются позиции 2–6 (подписи PC13, кварцев PC14/PC15 и PH0/PH1), 12–13 (у F401 — VSSA/VREF− и VREF+, у F411 — VSSA и VDDA, у L476 — VSSA/VREF− и VDDA/VREF+; у F401 различие в позиции 13 только в подписи, отдельного вывода VDDA нет), 14 (PA0-WKUP / PA0), 30 (VCAP1 / PB11), 46, 49, 50, 55, 56 (подписи JTAG), 48 (VDD / VDDUSB); частота 84 (F401), 100 (F411) и 80 МГц (L476); ОЗУ 96, 128 и 128 КБ; флеш-память до 512 КБ у F4 и до 1024 КБ у L476; питание от 1,7 / 1,71 В; файлы плат NUCLEO-F401RE, NUCLEO-F411RE и NUCLEO-L476RG в boards/
  2. STMicroelectronics. CMSIS device headers cmsis-device-f4 v2.6.11 и cmsis-device-l4 (GitHub, Apache-2.0) — GPIO обоих семейств с регистрами MODER, OTYPER, OSPEEDR, PUPDR, AFR; такт портов у F4 — RCC_AHB1ENR, у L4 — RCC_AHB2ENR; у L476 добавлен регистр GPIOx_ASCR

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