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

Совместимость STM32 по выводам: pin-to-pin замена

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

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

Один и тот же корпус у STM32 часто разведён одинаково в целой линейке и даже между семействами. Это позволяет поставить на плату микроконтроллер с другой памятью или периферией без переразводки — если выводы действительно совпадают. Атлас сравнивает разводку всех записей базы STM32CubeMX в каждом корпусе: позиция за позицией, по именам выводов. В таблицах ниже — микроконтроллеры, у которых совпадают все выводы, и ближайшие — с совпадением не меньше 90 % позиций и списком отличий.

Внутри линейки

Микроконтроллеры одной линейки в одном корпусе, различающиеся только объёмом памяти, обычно разведены одинаково. Например, у STM32F103 в LQFP64 все варианты — от R4 до RG — совпадают по выводам, и с ними же совпадают STM32F100, F101 и F102:

Буквы памяти в обозначении (4, 6, 8, B, C, D, E, F, G) при этом не всегда означают один кристалл: у STM32F1 варианты с разным объёмом памяти относятся к разным подсемействам — в RM0008 это low-, medium-, high- и XL-density — с разным набором периферии. Поэтому совпадение выводов не отменяет проверки по даташиту.

STM32F103C8 и его соседи

STM32F103C8, STM32F103CB в корпусе LQFP48: 48 выводов
МикроконтроллерСовпадаетОтличия: вывод, было → стало
STM32F103C4, STM32F103C6, STM32F100C4, STM32F100C6, STM32F100C8, STM32F100CB, STM32F101C4, STM32F101C6, STM32F101C8, STM32F101CB, STM32F102C4, STM32F102C6, STM32F102C8, STM32F102CBвсе 48выводы совпадают полностью
STM32F030CC45 из 481: VBAT → VDD; 5: PD0 → PF0; 6: PD1 → PF1
STM32F070C645 из 481: VBAT → VDD; 5: PD0 → PF0; 6: PD1 → PF1
STM32F070CB45 из 481: VBAT → VDD; 5: PD0 → PF0; 6: PD1 → PF1
STM32F071C8, STM32F071CB45 из 485: PD0 → PF0; 6: PD1 → PF1; 36: VDD → VDDIO2
STM32F072C8, STM32F072CB45 из 485: PD0 → PF0; 6: PD1 → PF1; 36: VDD → VDDIO2

STM32F030 и F07x в LQFP48 отличаются от F103C8 несколькими служебными выводами: вместо VBAT у части из них ещё один VDD, вместо PD0 и PD1 (выводы кварца) — PF0 и PF1, а у F071 и F072 на выводе 36 — VDDIO2, отдельное питание части линий ввода-вывода (RM0091, разд. 5.1). Это другое семейство на ядре Cortex-M0: плата подойдёт, программа — нет.

STM32F407 и старшие F4

STM32F407VE, STM32F407VG в корпусе LQFP100: 100 выводов
МикроконтроллерСовпадаетОтличия: вывод, было → стало
STM32F417VE, STM32F417VG, STM32F405VG, STM32F415VG, STM32F427VG, STM32F427VI, STM32F429VE, STM32F429VG, STM32F429VI, STM32F437VG, STM32F437VI, STM32F439VG, STM32F439VIвсе 100выводы совпадают полностью
STM32F205V(B-C-E-F-G)Tx99 из 10099: VSS → RFU
STM32F207V(C-E-F-G)Tx99 из 10099: VSS → RFU
STM32F215V(E-G)Tx99 из 10099: VSS → RFU
STM32F217V(E-G)Tx99 из 10099: VSS → RFU

Вся «большая» линейка STM32F4 в LQFP100 — F405/F415, F407/F417, F427/F437, F429/F439 — разведена одинаково, а STM32F2 отличается от неё одним выводом. На такой плате можно поднять частоту и память, но тактирование и такты ожидания флеш-памяти нужно пересчитать: у F42x частота выше и есть режим over-drive.

Платы Nucleo-64: LQFP64

STM32F401RB, STM32F401RC в корпусе LQFP64: 64 выводов
МикроконтроллерСовпадаетОтличия: вывод, было → стало
STM32F401RD, STM32F401REвсе 64выводы совпадают полностью
STM32F410R8, STM32F410RB62 из 6413: VREF+ → VDDA/VREF+; 54: PD2 → PB11
STM32F411RC, STM32F411RE62 из 6412: VSSA/VREF- → VSSA; 13: VREF+ → VDDA
STM32L471R(E-G)Tx62 из 6413: VREF+ → VDDA/VREF+; 30: VCAP1 → PB11
STM32F412RE, STM32F412RG61 из 6412: VSSA/VREF- → VSSA; 13: VREF+ → VDDA; 30: VCAP1 → VCAP
STM32F413RG, STM32F413RH61 из 6412: VSSA/VREF- → VSSA; 13: VREF+ → VDDA; 30: VCAP1 → VCAP
STM32F423RH61 из 6412: VSSA/VREF- → VSSA; 13: VREF+ → VDDA; 30: VCAP1 → VCAP

В LQFP64 разные семейства близки, но служебные выводы различаются: где-то отдельный VREF+, где-то он объединён с VDDA; у STM32F4 на выводе 30 стоит VCAP — вывод конденсатора внутреннего стабилизатора, а у STM32L4 на том же месте — линия PB11; у L4 вывод BOOT0 совмещён с PH3. Такие отличия не мешают разводке, но требуют проверить обвязку: конденсатор на VCAP, подтяжку BOOT0, развязку аналогового питания.

STM32F3 и STM32G4

STM32F303CB, STM32F303CC в корпусе LQFP48: 48 выводов
МикроконтроллерСовпадаетОтличия: вывод, было → стало
STM32F303C6, STM32F303C8, STM32F301C6, STM32F301C8, STM32F302C6, STM32F302C8, STM32F302CB, STM32F302CC, STM32F334C4, STM32F334C6, STM32F334C8все 48выводы совпадают полностью
STM32F318C847 из 4820: PB2 → NPOR
STM32F328C847 из 4820: PB2 → NPOR
STM32F358CC47 из 4820: PB2 → NPOR
STM32U031C6Tx46 из 487: NRST → PF2; 44: BOOT0 → PF3
STM32U031C8Tx46 из 487: NRST → PF2; 44: BOOT0 → PF3
STM32F030CC45 из 481: VBAT → VDD; 8: VSSA/VREF- → VSSA; 9: VDDA/VREF+ → VDDA

STM32F301, F302, F303 и F334 в LQFP48 совпадают по выводам полностью. Версии без внутреннего стабилизатора — F318, F328, F358 — отличаются выводом 20: на месте PB2 у них NPOR, вход сброса по включению питания, а само питание — 1,8 В ± 8 % (RM0316, раздел PWR). Поставить их вместо обычного F303 без изменения схемы питания нельзя.

STM32G474RB, STM32G474RC, STM32G474RE в корпусе LQFP64: 64 выводов
МикроконтроллерСовпадаетОтличия: вывод, было → стало
STM32G484RE, STM32G4A1RE, STM32G431R6, STM32G431R8, STM32G431RB, STM32G431RB, STM32G441RB, STM32G471RC, STM32G471RE, STM32G473RB, STM32G473RC, STM32G473RE, STM32G473RE, STM32G483RE, STM32G491RC, STM32G491RE, STM32G491REвсе 64выводы совпадают полностью

У STM32G4 в LQFP64 все линейки — G431, G441, G471, G473, G474, G483, G484, G491, G4A1 — разведены одинаково: от младшего G431 можно перейти к G474 с таймером высокого разрешения HRTIM на той же плате.

Маленькие корпуса: TSSOP20

STM32F030F4 в корпусе TSSOP20: 20 выводов
МикроконтроллерСовпадаетОтличия: вывод, было → стало
STM32F031F4, STM32F031F6все 20выводы совпадают полностью
STM32F038F619 из 2014: PB1 → NPOR
STM32F070F618 из 2017: PA9 → PA11/PA9; 18: PA10 → PA10/PA12
STM32L031F4, STM32L031F618 из 202: PF0 → PC14; 3: PF1 → PC15
STM32L041F618 из 202: PF0 → PC14; 3: PF1 → PC15
STM32G030F6 в корпусе TSSOP20: 20 выводов
МикроконтроллерСовпадаетОтличия: вывод, было → стало
STM32G050F619 из 206: NRST → PF2
STM32G031F4, STM32G031F6, STM32G031F819 из 206: NRST → PF2
STM32G041F6, STM32G041F819 из 206: NRST → PF2
STM32G051F6, STM32G051F819 из 206: NRST → PF2
STM32G061F6, STM32G061F819 из 206: NRST → PF2
STM32C091FB18 из 202: PB9/PC14 → PC14; 6: NRST → PF2

В маленьких корпусах отличия чаще касаются одного вывода. У STM32F038 на выводе 14 вместо PB1 — NPOR: это версия на 1,8 В. У STM32G0 на выводе 6 у G030 — NRST, а у G031, G041, G050, G051 и G061 — PF2-NRST: полем NRST_MODE в байте опций его можно сделать обычной линией PF2 (RM0444). У STM32L031 на месте PF0 и PF1 — PC14 и PC15.

Что проверить кроме выводов

  1. Питание. У версий без стабилизатора — STM32F0x8, F3x8 — питание 1,8 В; у других STM32 с ядром Cortex-M4 и M7 — выводы VCAP для конденсаторов стабилизатора; отдельные выводы VDDA, VREF+, VDDIO2 требуют своей развязки.
  2. Сброс и загрузка. NRST, NPOR, BOOT0 или BOOT0, совмещённый с линией порта, — по даташиту конкретного микроконтроллера.
  3. Уровни на линиях. Толерантность к 5 В (FT) у линий с одним и тем же именем в разных семействах может отличаться.
  4. Периферия и регистры. Даже при полном совпадении выводов у другой линейки может не быть нужного интерфейса, а регистры периферии разных семейств различаются — программу переносят и проверяют.

Полный список похожих по выводам микроконтроллеров есть на странице каждого STM32 в атласе, в разделе «Похожие по выводам».

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

Чем заменить STM32F103C8T6?

По выводам с ним полностью совпадают STM32F103C4 и C6 с меньшей памятью, а также STM32F100, F101 и F102 в том же корпусе LQFP48 — но у них ниже частота и меньше периферии. STM32F030CC и F070/F071/F072 в LQFP48 отличаются тремя-четырьмя выводами: на месте VBAT у части из них VDD, на месте PD0 и PD1 — PF0 и PF1, у F071 и F072 вывод 36 — VDDIO2. Ядро у STM32F0 другое (Cortex-M0), поэтому прошивку придётся переносить.

Можно ли поставить STM32F429 вместо STM32F407?

По выводам в корпусе LQFP100 — да: у STM32F405, F407, F415, F417, F427, F429, F437 и F439 все сто выводов на тех же местах. STM32F205/F207/F215/F217 отличаются одним выводом — 99. Но у F42x/F43x другая максимальная частота, больше памяти и периферии, а настройки тактирования и флеш-памяти нужно пересчитать.

Значит ли совпадение выводов, что микроконтроллер подойдёт?

Нет, это только первая проверка. Сравниваются имена выводов из базы STM32CubeMX, а не электрические параметры. Отдельно проверяют напряжение питания (у STM32F0x8 и F3x8 — 1,8 В), выводы VCAP для конденсаторов внутреннего стабилизатора, отдельные выводы питания (VDDA, VREF+, VDDIO2), назначение NRST и BOOT0, допустимые напряжения на линиях и набор периферии с её регистрами.

Источники

  1. STMicroelectronics. STM32_open_pin_data — открытая часть базы STM32CubeMX, BSD-3-Clause: корпуса и выводы всех 2240 записей; по ним атлас сравнивает разводку
  2. STMicroelectronics. RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx. Reference manual, Rev 21 — подсемейства STM32F10x по объёму памяти: low-, medium-, high- и XL-density
  3. STMicroelectronics. RM0316: STM32F303xB/C/D/E, STM32F303x6/8, STM32F328x8, STM32F358xC, STM32F398xE. Reference manual, Rev 10 — раздел PWR: питание STM32F3x8 от 1,8 В ± 8 % и вывод NPOR
  4. STMicroelectronics. RM0091: STM32F0x1/STM32F0x2/STM32F0x8. Reference manual, Rev 10 — разд. 5.1: питание STM32F0x8 от 1,8 В, отдельный вывод VDDIO2 у F04x, F07x, F09x
  5. STMicroelectronics. RM0444: STM32G0x1 advanced Arm-based 32-bit MCUs. Reference manual, Rev 6 — вывод PF2-NRST и поле NRST_MODE

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