Можно ли поставить STM32F303 вместо STM32F103 на ту же плату?
Обновлено Редакция GAW
STM32F303 в 48-выводном корпусе разведён как классический STM32F103 — поэтому его ставят на платы вроде Blue Pill, когда нужны FPU, больше АЦП или аналоговая периферия. По базе ST (STM32_open_pin_data) из 48 позиций у STM32F103C8/CB и STM32F303CB/CC различаются только имена шести:
| Позиция | STM32F103C8/CB | STM32F303CB/CC | Что это значит |
|---|---|---|---|
| 2 | PC13-TAMPER-RTC | PC13 | та же линия |
| 5–6 | PD0-OSC_IN, PD1-OSC_OUT | PF0-OSC_IN, PF1-OSC_OUT | выводы кварца на тех же местах |
| 8 | VSSA | VSSA/VREF− | общий аналоговый |
| 9 | VDDA | VDDA/VREF+ | аналоговое питание, оно же опорное |
| 10 | PA0-WKUP | PA0 | та же линия |
Остальные 42 позиции совпадают по имени. Наш вывод: по разводке плата для F103 подходит и для F303, но допустимые уровни и токи выводов сверяют по даташиту F303.
Что даёт и что требует замена
| STM32F103C8/CB | STM32F303CB/CC | |
|---|---|---|
| Ядро, частота | Cortex-M3, 72 МГц | Cortex-M4 с FPU, 72 МГц |
| Флеш-память / ОЗУ | 64–128 / 20 КБ | 128–256 / 32–40 КБ |
| АЦП | 2 | 4 |
| Компараторы, ОУ, ЦАП | нет | 7, 4, ЦАП |
| Блок GPIO | CRL/CRH, 0x40010800 | MODER/AFR, 0x48000000 |
Данные — по базе ST и заголовкам CMSIS. Блок GPIO у F303 того же устройства, что у STM32F4 и G4, а USART и I2C — нового поколения с регистрами ISR, ICR и TIMINGR, как у G4 (у F4 они ещё старого типа с SR и DR). Поэтому перенос кода ближе всего к переходу с F103 на G4 из ответа «Почему код на регистрах STM32F103 не работает на STM32G4». Другие варианты замены — в статье «Совместимость STM32 по выводам», линейки F3 — на странице STM32F3.
Похожие вопросы
Подойдёт ли прошивка STM32F103 после замены?
Нет. У F303 порты настраиваются регистрами MODER и AFR и лежат по другим адресам, USART и I2C нового поколения с регистрами ISR, ICR и TIMINGR, АЦП — другой блок. Даже готовый HEX для F103 не запустится: проект нужно пересобрать под STM32F303 с его заголовками CMSIS или HAL.
Будет ли работать USB на Blue Pill с STM32F303?
Линии USB у F303CB/CC на тех же выводах PA11 и PA12, а подтяжка D+ на Blue Pill стоит на плате, поэтому схема остаётся той же — вместе с её известным дефектом: на многих платах эта подтяжка 10 или 4,7 кОм вместо 1,5 кОм, и часть компьютеров не видит устройство (см. страницу платы Blue Pill). Программу USB, как и всё остальное, нужно собирать для F303 — у его библиотек ST свой набор файлов.
Выдержат ли выводы F303 те же 5 В, что у F103?
Это нужно проверять по даташиту F303: список выводов FT у разных семейств свой, и база ST, по которой сравнивалась разводка, уровней не содержит. Для F103C8 список выводов, выдерживающих 5 В, есть на странице платы Blue Pill.
Источники
- STMicroelectronics. STM32_open_pin_data (GitHub, BSD-3-Clause) — mcu/STM32F103C(8-B)Tx.xml и STM32F303C(B-C)Tx.xml (LQFP48): различаются имена выводов 2 (PC13-TAMPER-RTC / PC13), 5–6 (PD0/PD1 и PF0/PF1 с OSC_IN/OSC_OUT), 8–9 (VSSA, VDDA / VSSA/VREF−, VDDA/VREF+), 10 (PA0-WKUP / PA0); 72 МГц у обоих; флеш-память 64/128 и 128/256 КБ, ОЗУ 20 и 32/40 КБ; периферия: у F303 — ADC1–ADC4, COMP1–COMP7, OPAMP1–OPAMP4, DAC, TIM8, TIM15–TIM17, SPI3
- STMicroelectronics. CMSIS device headers cmsis-device-f1 v4.3.5 и cmsis-device-f3 (GitHub, Apache-2.0) — stm32f103xb.h: GPIO с регистрами CRL/CRH, GPIOA по адресу 0x40010800; stm32f303xc.h: GPIO с MODER/OTYPER/PUPDR/AFR, GPIOA_BASE = AHB2PERIPH_BASE = 0x48000000, такт порта A — бит 17 (GPIOAEN) RCC_AHBENR
Нашли ошибку?
Смотрите также
- Совместимость STM32 по выводамКакие STM32 совпадают по выводам: таблицы отличий для F103, F407, F401, F303, G474, F030, G030
- STM32F3Cortex-M4 с FPU, до 72 МГц: F301–F303, F334, F373 и версии F3x8 на 1,8 В — линейки и распиновки
- STM32 Blue PillSTM32F103C8T6: функции выводов, 5 В-выводы, питание, загрузка
- Почему код на регистрах для STM32F103 не работает на STM32G4?Другой блок GPIO, другие адреса и биты включения тактов в RCC