Совместимость STM32 по выводам: pin-to-pin замена
Какой STM32 можно поставить на ту же плату без переразводки: для популярных микроконтроллеров — списки STM32 с теми же выводами на тех же местах и отличия по позициям, посчитанные по открытой базе ST, и что проверить по документации, прежде чем менять один микроконтроллер на другой.
Обновлено Редакция GAW
Один и тот же корпус у STM32 часто разведён одинаково в целой линейке и даже между семействами. Это позволяет поставить на плату микроконтроллер с другой памятью или периферией без переразводки — если выводы действительно совпадают. Атлас сравнивает разводку всех записей базы STM32CubeMX в каждом корпусе: позиция за позицией, по именам выводов. В таблицах ниже — микроконтроллеры, у которых совпадают все выводы, и ближайшие — с совпадением не меньше 90 % позиций и списком отличий.
Внутри линейки
Микроконтроллеры одной линейки в одном корпусе, различающиеся только объёмом памяти, обычно разведены одинаково. Например, у STM32F103 в LQFP64 все варианты — от R4 до RG — совпадают по выводам, и с ними же совпадают STM32F100, F101 и F102:
| Микроконтроллер | Совпадает | Отличия: вывод, было → стало |
|---|---|---|
| STM32F103R4, STM32F103R6, STM32F103RC, STM32F103RD, STM32F103RE, STM32F103RF, STM32F103RG, STM32F100R4, STM32F100R6, STM32F100R8, STM32F100RB, STM32F100RC, STM32F100RD, STM32F100RE, STM32F101R4, STM32F101R6, STM32F101R8, STM32F101RB, STM32F101RC, STM32F101RD, STM32F101RE, STM32F101RF, STM32F101RG, STM32F102R4, STM32F102R6, STM32F102R8, STM32F102RB | все 64 | выводы совпадают полностью |
Буквы памяти в обозначении (4, 6, 8, B, C, D, E, F, G) при этом не всегда означают один кристалл: у STM32F1 варианты с разным объёмом памяти относятся к разным подсемействам — в RM0008 это low-, medium-, high- и XL-density — с разным набором периферии. Поэтому совпадение выводов не отменяет проверки по даташиту.
STM32F103C8 и его соседи
| Микроконтроллер | Совпадает | Отличия: вывод, было → стало |
|---|---|---|
| STM32F103C4, STM32F103C6, STM32F100C4, STM32F100C6, STM32F100C8, STM32F100CB, STM32F101C4, STM32F101C6, STM32F101C8, STM32F101CB, STM32F102C4, STM32F102C6, STM32F102C8, STM32F102CB | все 48 | выводы совпадают полностью |
| STM32F030CC | 45 из 48 | 1: VBAT → VDD; 5: PD0 → PF0; 6: PD1 → PF1 |
| STM32F070C6 | 45 из 48 | 1: VBAT → VDD; 5: PD0 → PF0; 6: PD1 → PF1 |
| STM32F070CB | 45 из 48 | 1: VBAT → VDD; 5: PD0 → PF0; 6: PD1 → PF1 |
| STM32F071C8, STM32F071CB | 45 из 48 | 5: PD0 → PF0; 6: PD1 → PF1; 36: VDD → VDDIO2 |
| STM32F072C8, STM32F072CB | 45 из 48 | 5: 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
| Микроконтроллер | Совпадает | Отличия: вывод, было → стало |
|---|---|---|
| STM32F417VE, STM32F417VG, STM32F405VG, STM32F415VG, STM32F427VG, STM32F427VI, STM32F429VE, STM32F429VG, STM32F429VI, STM32F437VG, STM32F437VI, STM32F439VG, STM32F439VI | все 100 | выводы совпадают полностью |
| STM32F205V(B-C-E-F-G)Tx | 99 из 100 | 99: VSS → RFU |
| STM32F207V(C-E-F-G)Tx | 99 из 100 | 99: VSS → RFU |
| STM32F215V(E-G)Tx | 99 из 100 | 99: VSS → RFU |
| STM32F217V(E-G)Tx | 99 из 100 | 99: VSS → RFU |
Вся «большая» линейка STM32F4 в LQFP100 — F405/F415, F407/F417, F427/F437, F429/F439 — разведена одинаково, а STM32F2 отличается от неё одним выводом. На такой плате можно поднять частоту и память, но тактирование и такты ожидания флеш-памяти нужно пересчитать: у F42x частота выше и есть режим over-drive.
Платы Nucleo-64: LQFP64
| Микроконтроллер | Совпадает | Отличия: вывод, было → стало |
|---|---|---|
| STM32F401RD, STM32F401RE | все 64 | выводы совпадают полностью |
| STM32F410R8, STM32F410RB | 62 из 64 | 13: VREF+ → VDDA/VREF+; 54: PD2 → PB11 |
| STM32F411RC, STM32F411RE | 62 из 64 | 12: VSSA/VREF- → VSSA; 13: VREF+ → VDDA |
| STM32L471R(E-G)Tx | 62 из 64 | 13: VREF+ → VDDA/VREF+; 30: VCAP1 → PB11 |
| STM32F412RE, STM32F412RG | 61 из 64 | 12: VSSA/VREF- → VSSA; 13: VREF+ → VDDA; 30: VCAP1 → VCAP |
| STM32F413RG, STM32F413RH | 61 из 64 | 12: VSSA/VREF- → VSSA; 13: VREF+ → VDDA; 30: VCAP1 → VCAP |
| STM32F423RH | 61 из 64 | 12: VSSA/VREF- → VSSA; 13: VREF+ → VDDA; 30: VCAP1 → VCAP |
В LQFP64 разные семейства близки, но служебные выводы различаются: где-то отдельный VREF+, где-то он объединён с VDDA; у STM32F4 на выводе 30 стоит VCAP — вывод конденсатора внутреннего стабилизатора, а у STM32L4 на том же месте — линия PB11; у L4 вывод BOOT0 совмещён с PH3. Такие отличия не мешают разводке, но требуют проверить обвязку: конденсатор на VCAP, подтяжку BOOT0, развязку аналогового питания.
STM32F3 и STM32G4
| Микроконтроллер | Совпадает | Отличия: вывод, было → стало |
|---|---|---|
| STM32F303C6, STM32F303C8, STM32F301C6, STM32F301C8, STM32F302C6, STM32F302C8, STM32F302CB, STM32F302CC, STM32F334C4, STM32F334C6, STM32F334C8 | все 48 | выводы совпадают полностью |
| STM32F318C8 | 47 из 48 | 20: PB2 → NPOR |
| STM32F328C8 | 47 из 48 | 20: PB2 → NPOR |
| STM32F358CC | 47 из 48 | 20: PB2 → NPOR |
| STM32U031C6Tx | 46 из 48 | 7: NRST → PF2; 44: BOOT0 → PF3 |
| STM32U031C8Tx | 46 из 48 | 7: NRST → PF2; 44: BOOT0 → PF3 |
| STM32F030CC | 45 из 48 | 1: 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 без изменения схемы питания нельзя.
| Микроконтроллер | Совпадает | Отличия: вывод, было → стало |
|---|---|---|
| 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
| Микроконтроллер | Совпадает | Отличия: вывод, было → стало |
|---|---|---|
| STM32F031F4, STM32F031F6 | все 20 | выводы совпадают полностью |
| STM32F038F6 | 19 из 20 | 14: PB1 → NPOR |
| STM32F070F6 | 18 из 20 | 17: PA9 → PA11/PA9; 18: PA10 → PA10/PA12 |
| STM32L031F4, STM32L031F6 | 18 из 20 | 2: PF0 → PC14; 3: PF1 → PC15 |
| STM32L041F6 | 18 из 20 | 2: PF0 → PC14; 3: PF1 → PC15 |
| Микроконтроллер | Совпадает | Отличия: вывод, было → стало |
|---|---|---|
| STM32G050F6 | 19 из 20 | 6: NRST → PF2 |
| STM32G031F4, STM32G031F6, STM32G031F8 | 19 из 20 | 6: NRST → PF2 |
| STM32G041F6, STM32G041F8 | 19 из 20 | 6: NRST → PF2 |
| STM32G051F6, STM32G051F8 | 19 из 20 | 6: NRST → PF2 |
| STM32G061F6, STM32G061F8 | 19 из 20 | 6: NRST → PF2 |
| STM32C091FB | 18 из 20 | 2: 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.
Что проверить кроме выводов
- Питание. У версий без стабилизатора — STM32F0x8, F3x8 — питание 1,8 В; у других STM32 с ядром Cortex-M4 и M7 — выводы VCAP для конденсаторов стабилизатора; отдельные выводы VDDA, VREF+, VDDIO2 требуют своей развязки.
- Сброс и загрузка. NRST, NPOR, BOOT0 или BOOT0, совмещённый с линией порта, — по даташиту конкретного микроконтроллера.
- Уровни на линиях. Толерантность к 5 В (FT) у линий с одним и тем же именем в разных семействах может отличаться.
- Периферия и регистры. Даже при полном совпадении выводов у другой линейки может не быть нужного интерфейса, а регистры периферии разных семейств различаются — программу переносят и проверяют.
Полный список похожих по выводам микроконтроллеров есть на странице каждого 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, допустимые напряжения на линиях и набор периферии с её регистрами.
Источники
- STMicroelectronics. STM32_open_pin_data — открытая часть базы STM32CubeMX, BSD-3-Clause: корпуса и выводы всех 2240 записей; по ним атлас сравнивает разводку
- STMicroelectronics. RM0008: STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx. Reference manual, Rev 21 — подсемейства STM32F10x по объёму памяти: low-, medium-, high- и XL-density
- STMicroelectronics. RM0316: STM32F303xB/C/D/E, STM32F303x6/8, STM32F328x8, STM32F358xC, STM32F398xE. Reference manual, Rev 10 — раздел PWR: питание STM32F3x8 от 1,8 В ± 8 % и вывод NPOR
- STMicroelectronics. RM0091: STM32F0x1/STM32F0x2/STM32F0x8. Reference manual, Rev 10 — разд. 5.1: питание STM32F0x8 от 1,8 В, отдельный вывод VDDIO2 у F04x, F07x, F09x
- STMicroelectronics. RM0444: STM32G0x1 advanced Arm-based 32-bit MCUs. Reference manual, Rev 6 — вывод PF2-NRST и поле NRST_MODE
Нашли ошибку?
Смотрите также
- STM32Распиновки по корпусам, альтернативные функции, похожие по выводам МК
- STM32F1Cortex-M3: F100, F101, F102, F103, F105/107 — линейки и распиновки
- STM32F4Cortex-M4 с FPU: от F401 и F411 до F429 и F469 — линейки и распиновки
- STM32G4Cortex-M4 с FPU, до 170 МГц: G431/G441, G471–G484, G491/G4A1 — линейки и распиновки
- STM32F0Cortex-M0, до 48 МГц: F030/F070, F031–F091, F042/F072, F0x8 — линейки и распиновки
- Тактирование STM32PLL под нужную частоту, шины, флеш-память, регистры RCC и код