Можно ли поставить STM32L476 вместо STM32F401 или STM32F411 на ту же плату?
Обновлено Редакция GAW
STM32F401, STM32F411 и STM32L476 в 64-выводном корпусе — частые соседи: в базе ST для всех трёх есть отладочные платы серии Nucleo-64 (NUCLEO-F401RE, NUCLEO-F411RE, NUCLEO-L476RG). По базе ST (STM32_open_pin_data) почти все позиции совпадают, а различий по существу два:
| Позиция | STM32F401 / F411 | STM32L476 | Что это значит |
|---|---|---|---|
| 30 | VCAP1 | PB11 | вместо вывода конденсатора стабилизатора — линия порта |
| 48 | VDD | VDDUSB | отдельное питание USB; на плате для F4 оно уже подано |
| 12–13 | F401: VSSA/VREF−, VREF+; F411: VSSA, VDDA | VSSA/VREF−, VDDA/VREF+ | аналоговое питание на тех же местах, различаются только подписи в базе |
| 2–6, 14 | PC13, кварцы, PA0-WKUP | те же линии | только подписи |
| 46, 49, 50, 55, 56 | PA13, PA14, PA15, PB3, PB4 | те же с пометкой JTAG | только подписи |
Наш подсчёт: у пары F401 — L476 по именам различаются 14 позиций из 64, у пары F411 — L476 — 15, но по существу — только позиции 30 и 48.
Что даёт и чего требует замена
| STM32F401 | STM32F411 | STM32L476 | |
|---|---|---|---|
| Частота | 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 и переносят свою логику.
Источники
- 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/
- 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
Нашли ошибку?
Смотрите также
- Совместимость STM32 по выводамКакие STM32 совпадают по выводам: таблицы отличий для F103, F407, F401, F303, G474, F030, G030
- STM32L4Cortex-M4 до 80 МГц с режимами низкого потребления: L4x1–L4x6 — линейки, MSI, загрузка и распиновки
- STM32F4Cortex-M4 с FPU: от F401 и F411 до F429 и F469 — линейки и распиновки
- Семейства STM32Сравнение 25 семейств: ядро, частота, память, питание, периферия; выбор под задачу