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

STM32 Blue Pill: распиновка и устройство платы

Плата Blue Pill на STM32F103C8T6 по её исходной схеме, данным проекта STM32-base и даташиту ST: какие функции у каждого из 40 контактов, какие выводы выдерживают 5 В, а какие только 3,3 В, как устроены питание, перемычки загрузки и разъём SWD и какие у платы известные недостатки.

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

Blue Pill — самая распространённая отладочная плата на STM32F103C8T6: ядро Cortex-M3 на 72 МГц, 64 КБ флеш-памяти, 20 КБ ОЗУ и 40 контактов с шагом 2,54 мм. У неё нет «официального» производителя — плату выпускают многие фабрики по одной исходной схеме, а название пришло с форума STM32duino. Поэтому страница опирается на исходную схему 2016 года, данные открытого проекта STM32-base и даташит ST; детали у конкретной партии (стабилизатор, номиналы резисторов) могут отличаться.

ПараметрЗначение
МикроконтроллерSTM32F103C8T6: Cortex-M3, 72 МГц, флеш 64 КБ, ОЗУ 20 КБ, питание 2,0–3,6 В
Контакты2 × 20 с шагом 2,54 мм и 4 контакта SWD
Интерфейсы3 USART, 2 SPI, 2 I²C, USB Full Speed, CAN, 10 входов АЦП на контактах
Тактированиекварцы 8 МГц (HSE) и 32,768 кГц (LSE, на PC14–PC15)
Питание5 В от micro-USB или контакта 5V, стабилизатор 3,3 В
Кнопки и перемычкиRESET, перемычки BOOT0 и BOOT1
Светодиодыпитание и пользовательский на PC13
Размероколо 53 × 23 мм по данным STM32-base

Распиновка

Плата нарисована сверху, разъёмом USB вверх. Справа — разъём P3 (на фото с USB слева он верхний: G, G, 3.3, R, B11 … C13, VB), слева — P4 (B12 … B9, 5V, G, 3.3); первый контакт обоих разъёмов — дальний от USB, у него квадратная площадка. Внизу — разъём SWD. Подписи — как на шелкографии: «A9» — это вывод PA9, «R» — сброс, «VB» — батарейное питание VBAT. Кнопка 5 В над рисунком подсвечивает выводы, которые выдерживают 5 В.

USBBOOTRESETSTM32F1038 МГцP4-20: B12 — PB12 — SPI2_NSS20B12SPI2_NSSP4-19: B13 — PB13 — SPI2_SCK19B13SPI2_SCKP4-18: B14 — PB14 — SPI2_MISO18B14SPI2_MISOP4-17: B15 — PB15 — SPI2_MOSI17B15SPI2_MOSIP4-16: A8 — PA8 — TIM1_CH116A8TIM1_CH1P4-15: A9 — PA9 — USART1_TX, TIM1_CH215A9USART1_TXTIM1_CH2P4-14: A10 — PA10 — USART1_RX, TIM1_CH314A10USART1_RXTIM1_CH3P4-13: A11 — PA11 — USB_DM, CAN_RX, TIM1_CH413A11USB_DMCAN_RXTIM1_CH4P4-12: A12 — PA12 — USB_DP, CAN_TX12A12USB_DPCAN_TXP4-11: A15 — PA15 — JTDI11A15JTDIP4-10: B3 — PB3 — JTDO10B3JTDOP4-9: B4 — PB4 — NJTRST9B4NJTRSTP4-8: B5 — PB58B5P4-7: B6 — PB6 — I²C1_SCL, TIM4_CH17B6I²C1_SCLTIM4_CH1P4-6: B7 — PB7 — I²C1_SDA, TIM4_CH26B7I²C1_SDATIM4_CH2P4-5: B8 — PB8 — TIM4_CH35B8TIM4_CH3P4-4: B9 — PB9 — TIM4_CH44B9TIM4_CH4P4-3: 5V — 5 В от USB35V5 В от USBP4-2: G2GP4-1: 3.3 — 3,3 В13.33,3 ВP3-20: G20GP3-19: G19GP3-18: 3.3 — 3,3 В183.33,3 ВP3-17: R — NRST17RNRSTP3-16: B11 — PB11 — USART3_RX, I²C2_SDA16B11USART3_RXI²C2_SDAP3-15: B10 — PB10 — USART3_TX, I²C2_SCL15B10USART3_TXI²C2_SCLP3-14: B1 — PB1 — ADC1_IN9, TIM3_CH414B1ADC1_IN9TIM3_CH4P3-13: B0 — PB0 — ADC1_IN8, TIM3_CH313B0ADC1_IN8TIM3_CH3P3-12: A7 — PA7 — ADC1_IN7, SPI1_MOSI, TIM3_CH212A7ADC1_IN7SPI1_MOSITIM3_CH2P3-11: A6 — PA6 — ADC1_IN6, SPI1_MISO, TIM3_CH111A6ADC1_IN6SPI1_MISOTIM3_CH1P3-10: A5 — PA5 — ADC1_IN5, SPI1_SCK10A5ADC1_IN5SPI1_SCKP3-9: A4 — PA4 — ADC1_IN4, SPI1_NSS9A4ADC1_IN4SPI1_NSSP3-8: A3 — PA3 — ADC1_IN3, USART2_RX, TIM2_CH48A3ADC1_IN3USART2_RXTIM2_CH4P3-7: A2 — PA2 — ADC1_IN2, USART2_TX, TIM2_CH37A2ADC1_IN2USART2_TXTIM2_CH3P3-6: A1 — PA1 — ADC1_IN1, TIM2_CH26A1ADC1_IN1TIM2_CH2P3-5: A0 — PA0 — ADC1_IN0, TIM2_CH15A0ADC1_IN0TIM2_CH1P3-4: C15 — PC154C15P3-3: C14 — PC143C14P3-2: C13 — PC132C13P3-1: VB — VBAT1VBVBATSWD: 3V33V3SWD: DIODIOSWD: CLKCLKSWD: GNDGND
STM32 Blue Pill, вид сверху: контакты, их номера и функции GPIO. Плата 23 × 53 мм, шаг контактов 2,54 мм.
  • ввод-вывод
  • питание и земля
  • управление: R
  • выбранная функция

Расстояние между рядами — около 15,2 мм (шесть шагов по 2,54 мм, измерено по фотографии STM32-base), поэтому плата встаёт в макетную плату поперёк центральной канавки. Расположение деталей на рисунке приблизительное.

Контакты и функции

Таблица собрана из данных ST о выводах STM32F103C8 (атлас GAW): у каждого вывода — все сигналы периферии. У STM32F1 нет мультиплексора альтернативных функций с номерами AF: часть сигналов доступна только после ремапа — переназначения блока AFIO, они помечены «(ремап)». На рисунке показаны функции по умолчанию.

КонтактПодписьПортФункцииЕщё
P3-1VB—VBAT
P3-2C13PC13RTC_OUT, RTC_TAMPERтолько 3,3 В; питается через ключ домена резервного питания: выход до 2 МГц, не источник тока
P3-3C14PC14RCC_OSC32_INтолько 3,3 В; питается через ключ домена резервного питания: выход до 2 МГц, не источник тока
P3-4C15PC15ADC1_EXTI15, ADC2_EXTI15, RCC_OSC32_OUTтолько 3,3 В; питается через ключ домена резервного питания: выход до 2 МГц, не источник тока
P3-5A0PA0ADC1_IN0, ADC2_IN0, SYS_WKUP, TIM2_CH1, TIM2_ETR, USART2_CTSтолько 3,3 В
P3-6A1PA1ADC1_IN1, ADC2_IN1, TIM2_CH2, USART2_RTSтолько 3,3 В
P3-7A2PA2ADC1_IN2, ADC2_IN2, TIM2_CH3, USART2_TXтолько 3,3 В
P3-8A3PA3ADC1_IN3, ADC2_IN3, TIM2_CH4, USART2_RXтолько 3,3 В
P3-9A4PA4ADC1_IN4, ADC2_IN4, SPI1_NSS, USART2_CKтолько 3,3 В
P3-10A5PA5ADC1_IN5, ADC2_IN5, SPI1_SCKтолько 3,3 В
P3-11A6PA6ADC1_IN6, ADC2_IN6, SPI1_MISO, TIM1_BKIN (ремап), TIM3_CH1только 3,3 В
P3-12A7PA7ADC1_IN7, ADC2_IN7, SPI1_MOSI, TIM1_CH1N (ремап), TIM3_CH2только 3,3 В
P3-13B0PB0ADC1_IN8, ADC2_IN8, TIM1_CH2N (ремап), TIM3_CH3только 3,3 В
P3-14B1PB1ADC1_IN9, ADC2_IN9, TIM1_CH3N (ремап), TIM3_CH4только 3,3 В
P3-15B10PB10I2C2_SCL, TIM2_CH3 (ремап), USART3_TXдопускает 5 В (FT)
P3-16B11PB11ADC1_EXTI11, ADC2_EXTI11, I2C2_SDA, TIM2_CH4 (ремап), USART3_RXдопускает 5 В (FT)
P3-17R—NRST
P3-183.3—3,3 В
P3-19G—общий провод
P3-20G—общий провод
P4-13.3—3,3 В
P4-2G—общий провод
P4-35V—5 В от USB
P4-4B9PB9CAN_TX (ремап), I2C1_SDA (ремап), TIM4_CH4допускает 5 В (FT)
P4-5B8PB8CAN_RX (ремап), I2C1_SCL (ремап), TIM4_CH3допускает 5 В (FT)
P4-6B7PB7I2C1_SDA, TIM4_CH2, USART1_RX (ремап)допускает 5 В (FT)
P4-7B6PB6I2C1_SCL, TIM4_CH1, USART1_TX (ремап)допускает 5 В (FT)
P4-8B5PB5I2C1_SMBA, SPI1_MOSI (ремап), TIM3_CH2 (ремап)только 3,3 В
P4-9B4PB4SPI1_MISO (ремап), SYS_NJTRST, TIM3_CH1 (ремап)допускает 5 В (FT)
P4-10B3PB3SPI1_SCK (ремап), SYS_JTDO-TRACESWO, TIM2_CH2 (ремап)допускает 5 В (FT)
P4-11A15PA15ADC1_EXTI15, ADC2_EXTI15, SPI1_NSS (ремап), SYS_JTDI, TIM2_CH1 (ремап), TIM2_ETR (ремап)допускает 5 В (FT)
P4-12A12PA12CAN_TX, TIM1_ETR, USART1_RTS, USB_DPдопускает 5 В (FT)
P4-13A11PA11ADC1_EXTI11, ADC2_EXTI11, CAN_RX, TIM1_CH4, USART1_CTS, USB_DMдопускает 5 В (FT)
P4-14A10PA10TIM1_CH3, USART1_RXдопускает 5 В (FT)
P4-15A9PA9TIM1_CH2, USART1_TXдопускает 5 В (FT)
P4-16A8PA8RCC_MCO, TIM1_CH1, USART1_CKдопускает 5 В (FT)
P4-17B15PB15ADC1_EXTI15, ADC2_EXTI15, SPI2_MOSI, TIM1_CH3Nдопускает 5 В (FT)
P4-18B14PB14SPI2_MISO, TIM1_CH2N, USART3_RTSдопускает 5 В (FT)
P4-19B13PB13SPI2_SCK, TIM1_CH1N, USART3_CTSдопускает 5 В (FT)
P4-20B12PB12I2C2_SMBA, SPI2_NSS, TIM1_BKIN, USART3_CKдопускает 5 В (FT)

Полное описание выводов STM32F103C8 в корпусе LQFP48 со всеми ремапами — на странице атласа.

Выводы, с которыми осторожно

5 В допускают не все выводы. По таблице 5 даташита DS5319 выводы с отметкой FT (five-volt tolerant) выдерживают входное напряжение до VDD + 4,0 В — на Blue Pill это PA8–PA15, PB2–PB4 и PB6–PB15. Остальные — PA0–PA7, PB0, PB1, PB5 и PC13–PC15 — допускают не больше 4,0 В: на них 5-вольтовый сигнал подают через делитель или преобразователь уровней. Входы АЦП (PA0–PA7, PB0, PB1) в любом случае измеряют только до напряжения питания АЦП.

PC13, PC14, PC15 питаются через ключ домена резервного питания, который пропускает не больше 3 мА. Даташит ограничивает их как выходы: частота до 2 МГц, нагрузка до 30 пФ, и они не должны отдавать ток — например, зажигать светодиод «с плюса». Светодиод на плате поэтому подключён к PC13 катодом и горит при низком уровне. PC14 и PC15 к тому же соединены с часовым кварцем 32,768 кГц.

PA15, PB3, PB4 после сброса работают не как GPIO, а как выводы JTAG — JTDI, JTDO и NJTRST (табл. 5 DS5319); для отладки через SWD эти сигналы не нужны, и программа может перевести выводы в режим обычных портов. PA11 и PA12 — линии USB D− и D+ (через резисторы 20 Ом). PA13 и PA14 выведены только на разъём SWD и по умолчанию работают как SWDIO и SWCLK. PB2 — это BOOT1, он занят перемычкой.

Нагрузка. Ток одного вывода — не больше 25 мА, а сумма токов через выводы питания — не больше 150 мА (табл. 7 DS5319). Реле, моторы и мощные светодиоды подключают через транзисторный ключ.

Питание

По исходной схеме:

  • 5V — линия VBUS разъёма micro-USB, без диода и защиты. STM32-base прямо предупреждает: не питайте плату от USB и внешнего источника одновременно — внешнее напряжение попадёт в USB компьютера.
  • Из 5 В стабилизатор (на исходной схеме — RT9193-33, на других партиях встречаются другие, STM32-base указывает TX6211B) делает 3,3 В для микроконтроллера; они выведены на контакты 3.3 и разъём SWD.
  • VB — вход батарейного питания VBAT для часов реального времени и резервных регистров.

STM32F103 работает от 2,0 до 3,6 В, абсолютный максимум питания — 4,0 В, поэтому на контакт 3.3 подают только стабилизированное напряжение.

USB

USB подключён к PA11/PA12 через резисторы 20 Ом, а подтяжка линии D+, по которой компьютер узнаёт о подключении устройства, на исходной схеме — 4,7 кОм. Стандарт USB требует 1,5 кОм, и STM32-base отмечает, что на многих Blue Pill стоит 10 или 4,7 кОм — из-за этого часть компьютеров не видит устройство; лечится заменой резистора. Кроме того, встроенный загрузчик STM32F103 не умеет работать по USB (AN2606): чтобы плата определялась как USB-устройство, в неё нужно сначала записать программу с USB-стеком.

Загрузка прошивки

Есть два пути.

  1. SWD. Четыре контакта внизу платы — 3V3, DIO (PA13), CLK (PA14), GND — подключают к отладчику ST-LINK или J-Link. Это самый удобный способ: прошивка, отладка, сброс без перемычек. Разводка разъёмов отладчиков — на странице JTAG и SWD.
  2. Встроенный загрузчик по USART1. По AN2606 у STM32F10xxx medium-density загрузчик работает только через USART1 на PA9 (TX) и PA10 (RX), а включается при BOOT0 = 1 и BOOT1 = 0. На плате BOOT0 и BOOT1 задаются перемычками (через резисторы 100 кОм): переставьте BOOT0 в 1, нажмите RESET и прошивайте через преобразователь USB-UART программой STM32CubeProgrammer; формат обмена — 8 бит, контроль чётности, 1 стоп-бит. Потом верните BOOT0 в 0, иначе после сброса плата снова войдёт в загрузчик.

Кнопка RESET подключена к NRST с подтяжкой 10 кОм и конденсатором 1 мкФ. Микроконтроллер тактируется от кварца 8 МГц; частоту ядра 72 МГц даёт PLL — настроить делители поможет калькулятор тактирования STM32.

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

Какие выводы Blue Pill выдерживают 5 В?

По таблице 5 даташита DS5319 5-вольтовыми (FT) являются PA8–PA15, PB2–PB4 и PB6–PB15. Выводы PA0–PA7, PB0, PB1, PB5 и PC13–PC15 — только 3,3 В: на них, как и на входы АЦП, нельзя подавать больше 4,0 В даже кратковременно. FT-выводы допускают входное напряжение до VDD + 4,0 В.

Можно ли питать Blue Pill от 5 В и USB одновременно?

Нет. Контакты 5V соединены с линией VBUS разъёма USB напрямую, без диода, и внешнее напряжение уйдёт в USB компьютера. Питайте плату либо от USB, либо от контакта 5V, либо подавайте стабилизированные 3,3 В на контакт 3.3.

Почему Blue Pill не определяется компьютером по USB?

Во-первых, в STM32F103 нет загрузчика по USB: без своей прошивки с USB-стеком плата и не должна определяться. Во-вторых, на многих платах подтягивающий резистор линии D+ имеет номинал 10 или 4,7 кОм вместо требуемых стандартом USB 1,5 кОм — STM32-base отмечает это как известный дефект; помогает замена резистора.

Как прошить Blue Pill без программатора?

Через встроенный загрузчик ST по USART1: переставьте перемычку BOOT0 в положение 1 (BOOT1 оставьте 0), подключите преобразователь USB-UART к A9 (TX платы) и A10 (RX платы) и нажмите RESET. Загрузчик работает на 8 битах с контролем чётности, прошивку пишет STM32CubeProgrammer. После записи верните BOOT0 в 0.

Источники

  1. STM32-base. STM32F103C8T6 Blue Pill (STM32-base.github.io, коммит 9f6b21f) — разъёмы, разъём SWD, светодиоды, перемычки, размер 53 × 23 мм, предупреждения о питании и резисторе USB; фотография платы; лицензия MIT
  2. Исходная схема Blue Pill (vcc-gnd.com, 26.01.2016), опубликована STM32-base — разъёмы P3 и P4, SWD P2, стабилизатор RT9193-33, перемычки BOOT0/BOOT1, светодиоды, цепь USB, кварцы 8 МГц и 32,768 кГц
  3. ST. DS5319 Rev 20: STM32F103x8, STM32F103xB datasheet — табл. 5 — выводы и уровни FT, примечание 5 о PC13–PC15; табл. 6 и 7 — предельные напряжения и токи
  4. ST. AN2606 Rev 40: STM32 microcontroller system memory boot mode — встроенный загрузчик STM32F10xxx medium-density: USART1 на PA9/PA10, BOOT0 = 1, BOOT1 = 0
  5. STM32_open_pin_data (атлас GAW) — функции выводов STM32F103C8 и ремапы AFIO; лицензия BSD-3-Clause

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