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

Микроконтроллер PY32F003

PY32F003 — 32-разрядный микроконтроллер Puya Semiconductor на ядре Cortex-M0+ с питанием от 1,7 до 5,5 В. Главная ловушка серии — корпус TSSOP20 выпускается в шести разных распиновках, и какая из них у микросхемы, говорит только маркировка.

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

PY32F003 построен на ядре Arm Cortex-M0+ с двухстадийным конвейером и однотактным умножителем. В серии — исполнения с флеш-памятью от 16 до 64 КБ и ОЗУ от 2 до 8 КБ в корпусах от 8 до 20 выводов. Мы разобрали его по даташиту Puya версии 2.7: он выпущен только на китайском языке, поэтому ниже — главное, что нужно для платы и прошивки.

Как читать маркировку

Возьмём PY32F003F18P6. После названия серии идут:

ЧастьПримерЗначение
Число выводов и распиновкаF1F1–F6 — 20 выводов, распиновки 1–6; W1 — 16 выводов; A1 — 10 выводов; L1 и L2 — 8 выводов, распиновки 1 и 2
Флеш-память88 — 64 КБ, 7 — 48 КБ, 6 — 32 КБ, 4 — 16 КБ
КорпусPU — QFN, P — TSSOP, S — SOP, N — MSOP, D — DFN
Температура и питание66 — −40…+85 °C и 1,7–5,5 В; 7 — −40…+105 °C и 2,0–5,5 В
Версия-Eверсия кристалла по разделу заказа даташита; есть не у всех исполнений, например F18P6-E

Значит, PY32F003F18P6 — распиновка 1, 64 КБ флеш-памяти, TSSOP20, питание от 1,7 В. ОЗУ к флеш-памяти привязано: 64 КБ — 8 КБ ОЗУ, 48 КБ — 6 КБ, 32 КБ — 4 КБ, 16 КБ — 2 КБ.

Исполнения

КорпусИсполнения с питанием 1,7–5,5 ВЛинии ввода-выводаЧастота
TSSOP20F18P6, F16P6, F14P6, F26P6, F36P6, F48P6, F56P6, F68P61832 МГц
QFN20F18U6, F17U6, F16U6, F14U6, F26U61832 МГц
SOP20F18S61832 МГц
SOP16W18S6, W16S61432 МГц
MSOP10A18N6824 МГц
SOP8, DFN8L18S6, L16S6, L28S6, L28D6, L24D66 или 724 МГц

Исполнения на −40…+105 °C с цифрой 7 выпускаются в TSSOP20, QFN20, SOP16 и SOP8. У всех — 16-битный таймер TIM1 с тремя комплементарными парами, таймеры TIM3, TIM14, TIM16 и TIM17, таймер пониженного потребления LPTIM, два сторожевых таймера, часы RTC, DMA на 3 канала, I²C до 400 кГц, 12-битный АЦП и компараторы; SPI один, USART два со скоростью до 2 Мбит/с, у восьмивыводных исполнений — один.

Шесть распиновок TSSOP20

Один и тот же корпус TSSOP20 выпускается в шести разводках. Служебные выводы у них на разных местах:

РаспиновкаМаркировкаVCCVSSNRSTSWDIOSWCLKBOOT0
1F18P6, F16P6, F14P69718101115
2F26P69717111214
3F36P69719111218
4F48P6972, вместе с PA21817нет
5F56P69718101115
6F68P6121387нет

У распиновок 1 и 5 служебные выводы совпадают, но на выводах 8, 14 и 19 — разные линии (PA12, PB7, PA0 против PB2, PB8, PF3). В распиновках 4 и 6 вывода BOOT0 нет, а SWDIO и SWCLK есть во всех шести.

Выводы TSSOP20, распиновка 1

Самый распространённый вариант — PY32F003F18P6 и F16P6. В скобках — номер альтернативной функции AF из таблиц 3-6…3-8.

ВыводЛинияАналоговые входыОсновные цифровые функции
1PA2ADC_IN2, вход компаратора 2USART1_TX (AF1), USART2_TX (AF4), SPI1_MOSI (AF0), I2C_SDA (AF12)
2PA3ADC_IN3, вход компаратора 2USART1_RX (AF1), USART2_RX (AF4), I2C_SCL (AF12)
3PA4ADC_IN4SPI1_NSS (AF0), USART1_CK (AF1), TIM14_CH1 (AF4)
4PA5ADC_IN5SPI1_SCK (AF0), LPTIM_ETR (AF5), TIM3_CH2 (AF13)
5PA6ADC_IN6SPI1_MISO (AF0), TIM3_CH1 (AF1), TIM1_BKIN (AF2), TIM16_CH1 (AF5)
6PA7ADC_IN7SPI1_MOSI (AF0), TIM3_CH2 (AF1), TIM1_CH1N (AF2), I2C_SDA (AF12)
7VSS—общий
8PA12—SPI1_MOSI (AF0), USART1_RTS (AF1), TIM1_ETR (AF2), I2C_SDA (AF6)
9VCC—питание 1,7–5,5 В
10PA13—SWDIO после сброса (AF0), USART1_RX (AF8), TIM1_CH2 (AF13)
11PA14—SWCLK после сброса (AF0), USART1_TX (AF1), USART2_TX (AF4)
12PB5—SPI1_MOSI (AF0), TIM3_CH2 (AF1), LPTIM_IN1 (AF5)
13PB6вход компаратора 2USART1_TX (AF0), TIM1_CH3 (AF1), I2C_SCL (AF6)
14PB7вход компаратора 2, вход PVDUSART1_RX (AF0), TIM17_CH1N (AF2), I2C_SDA (AF6)
15PF4-BOOT0—BOOT0, после сброса — вход с подтяжкой к земле
16PF0OSC_INUSART1_RX (AF8), USART2_RX (AF4), I2C_SDA (AF12)
17PF1OSC_OUTUSART1_TX (AF8), USART2_TX (AF4), I2C_SCL (AF12)
18PF2-NRST—сброс NRST или линия PF2 — выбирают option bytes
19PA0ADC_IN0, вход компаратора 1USART1_CTS (AF1), USART2_TX (AF9), TIM1_CH3 (AF13)
20PA1ADC_IN1, вход компаратора 1SPI1_SCK (AF0), USART2_RX (AF9), TIM1_CH4 (AF13)

Мультиплексор у PY32F003 гибкий: USART1 выводится на пары PA2 и PA3, PB6 и PB7, PA14 и PA13, PF1 и PF0, а I²C — на PA2 и PA3, PB7 и PB6, PF0 и PF1. После сброса PA13 и PA14 уже работают как SWD, со встроенной подтяжкой SWDIO к питанию, а SWCLK — к земле.

Сравнение со STM32F030F4P6

PY32F003F18P6STM32F030F4P6
Ядро и частотаCortex-M0+, до 32 МГцCortex-M0, до 48 МГц
Флеш-память и ОЗУ64 и 8 КБ16 и 4 КБ
Питание1,7–5,5 В2,4–3,6 В
Линии ввода-вывода1815
Питание и земля9 и 7VDD 16, VDDA 5, VSS 15
SWDIO и SWCLK10 и 1119 и 20
NRST и BOOT018 и 154 и 1

Корпус один, но разводка другая: PY32F003 не ставится на плату под STM32F030F4P6 без переделки. Набор таймеров — TIM1, TIM3, TIM14, TIM16, TIM17 — по базе ST тот же, что у STM32F030F4P6 из семейства STM32F0, но регистры и прошивку проверяют по документации Puya.

Питание и порты

Рабочее питание — от 1,7 В (исполнения x6) или 2,0 В (x7) до 5,5 В, абсолютный максимум — 6,25 В. Входы допускают не больше VCC + 0,3 В: выводов, выдерживающих 5 В при питании 3,3 В, у PY32F003 нет. Порог низкого уровня — 0,3 VCC, высокого — 0,7 VCC, подтяжки к питанию и к земле — 30–70 кОм. Выход при питании от 2,7 В держит 8 мА с уровнями не хуже 0,4 В от шин; предельный ток вывода — 20 мА, суммарный по VCC — 100 мА. Сброс по снижению питания BOR включают в option bytes и выбирают из восьми порогов от 1,8 до 3,2 В. В режиме stop с сохранением ОЗУ ток — от 4,5 до 6 мкА в зависимости от настройки регулятора, выход из него — от 3,5 до 6 мкс.

Тактирование и загрузка

После включения ядро работает от встроенного генератора HSI на 8 МГц; его можно перестроить на 4, 16, 22,12 или 24 МГц. Точность HSI на 24 МГц при 25 °C — от 23,83 до 24,17 МГц, а в диапазоне −40…+85 °C уход достигает −4…+2 %. Предельные 32 МГц ядро получает только от внешнего кварца 4–32 МГц или генератора: умножителя частоты в схеме тактирования нет. Для точного UART кварц полезен и на меньших частотах — см. раздел «UART».

BOOT0nBOOT1Старт
0любойиз основной флеш-памяти, 0x08000000
11из системной памяти — загрузчик по USART
10из ОЗУ, 0x20000000

Бит nBOOT1 хранится в option bytes. Загрузчик занимает 3,5 КБ системной памяти с адреса 0x1FFF0000, уникальный номер микросхемы лежит по адресу 0x1FFF0E00. Флеш-память — 100 тысяч циклов записи до +85 °C и 10 тысяч выше, хранение 20 лет; запись страницы — около 1 мс.

АЦП и компараторы

АЦП 12-битный, до 10 внешних каналов и 2 внутренних — датчик температуры (2,5 мВ/°C, 0,76 В при 30 °C) и опорное напряжение 1,2 В (от 1,17 до 1,23 В). Частота АЦП — до 12 МГц при питании от 2,3 В и до 6 МГц ниже, выборка — от 3,5 до 239,5 такта, преобразование — 12 тактов, типичная интегральная нелинейность — ±3 единицы младшего разряда. Два компаратора сравнивают сигналы с выводов, питанием, датчиком температуры или долями опорного напряжения, а их выходы могут аварийно отключать ШИМ таймеров. Близкий по месту в линейке микроконтроллер на RISC-V с питанием до 5,5 В — CH32V003.

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

Можно ли питать PY32F003 от 5 В?

Да: исполнения с цифрой 6 в конце маркировки работают от 1,7 до 5,5 В, с цифрой 7 — от 2,0 до 5,5 В. Входы при этом выдерживают не больше VCC + 0,3 В, поэтому при питании 3,3 В пятивольтовый сигнал на вывод подавать нельзя.

Как узнать распиновку PY32F003 в корпусе TSSOP20?

По первой цифре после буквы F в маркировке: PY32F003F18P6 — распиновка 1, F26P6 — распиновка 2 и так до F68P6 — распиновка 6. Расположение питания, сброса и SWD у них разное, поэтому плату рисуют под конкретную маркировку.

Совместим ли PY32F003 по выводам со STM32F030F4P6?

Нет. У STM32F030F4P6 питание VDD на выводе 16, земля на 15, а SWD — на 19 и 20. У PY32F003 в TSSOP20 питание на выводе 9 и земля на 7, а в распиновке 6 — на выводах 1 и 2. Без переразводки платы одну микросхему вместо другой не поставить.

Какая максимальная частота PY32F003 от встроенного генератора?

24 МГц: внутренний генератор HSI настраивается на 4, 8, 16, 22,12 или 24 МГц, а после включения работает на 8 МГц. Максимальные 32 МГц ядро получает от внешнего кварца или генератора — умножителя частоты в схеме тактирования из даташита нет.

Источники

  1. Puya Semiconductor. Даташит серии PY32F003 (PY32F003 系列数据手册), версия 2.7 от 16.04.2025, на китайском языке — разд. 1 — Cortex-M0+ до 32 МГц, флеш до 64 КБ, SRAM до 8 КБ; табл. 1-1…1-6 — исполнения, у x6 питание 1,7–5,5 В и −40…+85 °C, у x7 — 2,0–5,5 В и −40…+105 °C, у 8- и 10-выводных — 24 МГц; табл. 2-1 — загрузка по BOOT0 и nBOOT1, загрузчик USART в системной памяти; разд. 2.4 — HSI 4/8/16/22,12/24 МГц (после старта 8 МГц), HSE 4–32 МГц; рис. 3-3…3-8 и табл. 3-2 — выводы QFN20, TSSOP20 (Pinout1–6) и SOP20; сноски к табл. 3-2 — PF2 или NRST выбирают option bytes, PA13 и PA14 после сброса — SWDIO и SWCLK, PF4-BOOT0 — вход с подтяжкой к земле; табл. 3-6…3-8 — альтернативные функции AF0–AF15; разд. 4 — карта памяти; табл. 5-1 — VCC до 6,25 В, вход до VCC + 0,3 В; табл. 5-6 — пороги BOR 1,8–3,2 В; табл. 5-9 и 5-10 — ток в stop 4,5–6 мкА, выход за 3,5–6 мкс; табл. 5-13 — точность HSI; табл. 5-16 — 100 тыс. циклов записи флеш-памяти, хранение 20 лет при 55 °C; табл. 5-19 и 5-20 — уровни входов 0,3 и 0,7 VCC, подтяжки 30–70 кОм, выход 8 мА; табл. 5-22 — АЦП до 12 МГц, выборка 3,5–239,5 такта, преобразование 12 тактов; табл. 5-25 — опорное 1,17–1,23 В; разд. 7 — расшифровка маркировки
  2. STMicroelectronics. STM32_open_pin_data: STM32F030F4Px (коммит 7d1f151) — STM32F030F4P6 в TSSOP20: Cortex-M0 48 МГц, флеш 16 КБ, ОЗУ 4 КБ, питание 2,4–3,6 В, 15 линий ввода-вывода, таймеры TIM1, TIM3, TIM14, TIM16, TIM17; BOOT0 — 1, NRST — 4, VDDA — 5, VSS — 15, VDD — 16, PA13 и PA14 — 19 и 20

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