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

Можно ли поставить STM32F303 вместо STM32F103 на ту же плату?

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

STM32F303 в 48-выводном корпусе разведён как классический STM32F103 — поэтому его ставят на платы вроде Blue Pill, когда нужны FPU, больше АЦП или аналоговая периферия. По базе ST (STM32_open_pin_data) из 48 позиций у STM32F103C8/CB и STM32F303CB/CC различаются только имена шести:

ПозицияSTM32F103C8/CBSTM32F303CB/CCЧто это значит
2PC13-TAMPER-RTCPC13та же линия
5–6PD0-OSC_IN, PD1-OSC_OUTPF0-OSC_IN, PF1-OSC_OUTвыводы кварца на тех же местах
8VSSAVSSA/VREF−общий аналоговый
9VDDAVDDA/VREF+аналоговое питание, оно же опорное
10PA0-WKUPPA0та же линия

Остальные 42 позиции совпадают по имени. Наш вывод: по разводке плата для F103 подходит и для F303, но допустимые уровни и токи выводов сверяют по даташиту F303.

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

STM32F103C8/CBSTM32F303CB/CC
Ядро, частотаCortex-M3, 72 МГцCortex-M4 с FPU, 72 МГц
Флеш-память / ОЗУ64–128 / 20 КБ128–256 / 32–40 КБ
АЦП24
Компараторы, ОУ, ЦАПнет7, 4, ЦАП
Блок GPIOCRL/CRH, 0x40010800MODER/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.

Источники

  1. 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
  2. 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

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