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 В.
- ввод-вывод
- питание и земля
- управление: R
- выбранная функция
Расстояние между рядами — около 15,2 мм (шесть шагов по 2,54 мм, измерено по фотографии STM32-base), поэтому плата встаёт в макетную плату поперёк центральной канавки. Расположение деталей на рисунке приблизительное.
Контакты и функции
Таблица собрана из данных ST о выводах STM32F103C8 (атлас GAW): у каждого вывода — все сигналы периферии. У STM32F1 нет мультиплексора альтернативных функций с номерами AF: часть сигналов доступна только после ремапа — переназначения блока AFIO, они помечены «(ремап)». На рисунке показаны функции по умолчанию.
| Контакт | Подпись | Порт | Функции | Ещё |
|---|---|---|---|---|
| P3-1 | VB | — | VBAT | |
| P3-2 | C13 | PC13 | RTC_OUT, RTC_TAMPER | только 3,3 В; питается через ключ домена резервного питания: выход до 2 МГц, не источник тока |
| P3-3 | C14 | PC14 | RCC_OSC32_IN | только 3,3 В; питается через ключ домена резервного питания: выход до 2 МГц, не источник тока |
| P3-4 | C15 | PC15 | ADC1_EXTI15, ADC2_EXTI15, RCC_OSC32_OUT | только 3,3 В; питается через ключ домена резервного питания: выход до 2 МГц, не источник тока |
| P3-5 | A0 | PA0 | ADC1_IN0, ADC2_IN0, SYS_WKUP, TIM2_CH1, TIM2_ETR, USART2_CTS | только 3,3 В |
| P3-6 | A1 | PA1 | ADC1_IN1, ADC2_IN1, TIM2_CH2, USART2_RTS | только 3,3 В |
| P3-7 | A2 | PA2 | ADC1_IN2, ADC2_IN2, TIM2_CH3, USART2_TX | только 3,3 В |
| P3-8 | A3 | PA3 | ADC1_IN3, ADC2_IN3, TIM2_CH4, USART2_RX | только 3,3 В |
| P3-9 | A4 | PA4 | ADC1_IN4, ADC2_IN4, SPI1_NSS, USART2_CK | только 3,3 В |
| P3-10 | A5 | PA5 | ADC1_IN5, ADC2_IN5, SPI1_SCK | только 3,3 В |
| P3-11 | A6 | PA6 | ADC1_IN6, ADC2_IN6, SPI1_MISO, TIM1_BKIN (ремап), TIM3_CH1 | только 3,3 В |
| P3-12 | A7 | PA7 | ADC1_IN7, ADC2_IN7, SPI1_MOSI, TIM1_CH1N (ремап), TIM3_CH2 | только 3,3 В |
| P3-13 | B0 | PB0 | ADC1_IN8, ADC2_IN8, TIM1_CH2N (ремап), TIM3_CH3 | только 3,3 В |
| P3-14 | B1 | PB1 | ADC1_IN9, ADC2_IN9, TIM1_CH3N (ремап), TIM3_CH4 | только 3,3 В |
| P3-15 | B10 | PB10 | I2C2_SCL, TIM2_CH3 (ремап), USART3_TX | допускает 5 В (FT) |
| P3-16 | B11 | PB11 | ADC1_EXTI11, ADC2_EXTI11, I2C2_SDA, TIM2_CH4 (ремап), USART3_RX | допускает 5 В (FT) |
| P3-17 | R | — | NRST | |
| P3-18 | 3.3 | — | 3,3 В | |
| P3-19 | G | — | общий провод | |
| P3-20 | G | — | общий провод | |
| P4-1 | 3.3 | — | 3,3 В | |
| P4-2 | G | — | общий провод | |
| P4-3 | 5V | — | 5 В от USB | |
| P4-4 | B9 | PB9 | CAN_TX (ремап), I2C1_SDA (ремап), TIM4_CH4 | допускает 5 В (FT) |
| P4-5 | B8 | PB8 | CAN_RX (ремап), I2C1_SCL (ремап), TIM4_CH3 | допускает 5 В (FT) |
| P4-6 | B7 | PB7 | I2C1_SDA, TIM4_CH2, USART1_RX (ремап) | допускает 5 В (FT) |
| P4-7 | B6 | PB6 | I2C1_SCL, TIM4_CH1, USART1_TX (ремап) | допускает 5 В (FT) |
| P4-8 | B5 | PB5 | I2C1_SMBA, SPI1_MOSI (ремап), TIM3_CH2 (ремап) | только 3,3 В |
| P4-9 | B4 | PB4 | SPI1_MISO (ремап), SYS_NJTRST, TIM3_CH1 (ремап) | допускает 5 В (FT) |
| P4-10 | B3 | PB3 | SPI1_SCK (ремап), SYS_JTDO-TRACESWO, TIM2_CH2 (ремап) | допускает 5 В (FT) |
| P4-11 | A15 | PA15 | ADC1_EXTI15, ADC2_EXTI15, SPI1_NSS (ремап), SYS_JTDI, TIM2_CH1 (ремап), TIM2_ETR (ремап) | допускает 5 В (FT) |
| P4-12 | A12 | PA12 | CAN_TX, TIM1_ETR, USART1_RTS, USB_DP | допускает 5 В (FT) |
| P4-13 | A11 | PA11 | ADC1_EXTI11, ADC2_EXTI11, CAN_RX, TIM1_CH4, USART1_CTS, USB_DM | допускает 5 В (FT) |
| P4-14 | A10 | PA10 | TIM1_CH3, USART1_RX | допускает 5 В (FT) |
| P4-15 | A9 | PA9 | TIM1_CH2, USART1_TX | допускает 5 В (FT) |
| P4-16 | A8 | PA8 | RCC_MCO, TIM1_CH1, USART1_CK | допускает 5 В (FT) |
| P4-17 | B15 | PB15 | ADC1_EXTI15, ADC2_EXTI15, SPI2_MOSI, TIM1_CH3N | допускает 5 В (FT) |
| P4-18 | B14 | PB14 | SPI2_MISO, TIM1_CH2N, USART3_RTS | допускает 5 В (FT) |
| P4-19 | B13 | PB13 | SPI2_SCK, TIM1_CH1N, USART3_CTS | допускает 5 В (FT) |
| P4-20 | B12 | PB12 | I2C2_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-стеком.
Загрузка прошивки
Есть два пути.
- SWD. Четыре контакта внизу платы — 3V3, DIO (PA13), CLK (PA14), GND — подключают к отладчику ST-LINK или J-Link. Это самый удобный способ: прошивка, отладка, сброс без перемычек. Разводка разъёмов отладчиков — на странице JTAG и SWD.
- Встроенный загрузчик по 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.
Источники
- STM32-base. STM32F103C8T6 Blue Pill (STM32-base.github.io, коммит 9f6b21f) — разъёмы, разъём SWD, светодиоды, перемычки, размер 53 × 23 мм, предупреждения о питании и резисторе USB; фотография платы; лицензия MIT
- Исходная схема Blue Pill (vcc-gnd.com, 26.01.2016), опубликована STM32-base — разъёмы P3 и P4, SWD P2, стабилизатор RT9193-33, перемычки BOOT0/BOOT1, светодиоды, цепь USB, кварцы 8 МГц и 32,768 кГц
- ST. DS5319 Rev 20: STM32F103x8, STM32F103xB datasheet — табл. 5 — выводы и уровни FT, примечание 5 о PC13–PC15; табл. 6 и 7 — предельные напряжения и токи
- ST. AN2606 Rev 40: STM32 microcontroller system memory boot mode — встроенный загрузчик STM32F10xxx medium-density: USART1 на PA9/PA10, BOOT0 = 1, BOOT1 = 0
- STM32_open_pin_data (атлас GAW) — функции выводов STM32F103C8 и ремапы AFIO; лицензия BSD-3-Clause
Нашли ошибку?
Смотрите также
- ПлатыArduino, ESP32-DevKitC, Raspberry Pi Pico: распиновка и питание
- STM32 Black PillSTM32F411: функции выводов, 5 В, питание, DFU и SWD
- STM32Распиновки по корпусам, альтернативные функции, похожие по выводам МК
- JTAG и SWDARM JTAG 20, Cortex Debug 10, STDC14, ST-LINK
- Cortex-M3Регистры, карта памяти, bit-banding, NVIC, SysTick, MPU, старт, пример
- UARTКадр 8N1, скорость и допуск, TX и RX, уровни, USB–UART, AVR и STM32