Микроконтроллер 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. После названия серии идут:
| Часть | Пример | Значение |
|---|---|---|
| Число выводов и распиновка | F1 | F1–F6 — 20 выводов, распиновки 1–6; W1 — 16 выводов; A1 — 10 выводов; L1 и L2 — 8 выводов, распиновки 1 и 2 |
| Флеш-память | 8 | 8 — 64 КБ, 7 — 48 КБ, 6 — 32 КБ, 4 — 16 КБ |
| Корпус | P | U — QFN, P — TSSOP, S — SOP, N — MSOP, D — DFN |
| Температура и питание | 6 | 6 — −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 В | Линии ввода-вывода | Частота |
|---|---|---|---|
| TSSOP20 | F18P6, F16P6, F14P6, F26P6, F36P6, F48P6, F56P6, F68P6 | 18 | 32 МГц |
| QFN20 | F18U6, F17U6, F16U6, F14U6, F26U6 | 18 | 32 МГц |
| SOP20 | F18S6 | 18 | 32 МГц |
| SOP16 | W18S6, W16S6 | 14 | 32 МГц |
| MSOP10 | A18N6 | 8 | 24 МГц |
| SOP8, DFN8 | L18S6, L16S6, L28S6, L28D6, L24D6 | 6 или 7 | 24 МГц |
Исполнения на −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 выпускается в шести разводках. Служебные выводы у них на разных местах:
| Распиновка | Маркировка | VCC | VSS | NRST | SWDIO | SWCLK | BOOT0 |
|---|---|---|---|---|---|---|---|
| 1 | F18P6, F16P6, F14P6 | 9 | 7 | 18 | 10 | 11 | 15 |
| 2 | F26P6 | 9 | 7 | 17 | 11 | 12 | 14 |
| 3 | F36P6 | 9 | 7 | 19 | 11 | 12 | 18 |
| 4 | F48P6 | 9 | 7 | 2, вместе с PA2 | 18 | 17 | нет |
| 5 | F56P6 | 9 | 7 | 18 | 10 | 11 | 15 |
| 6 | F68P6 | 1 | 2 | 13 | 8 | 7 | нет |
У распиновок 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.
| Вывод | Линия | Аналоговые входы | Основные цифровые функции |
|---|---|---|---|
| 1 | PA2 | ADC_IN2, вход компаратора 2 | USART1_TX (AF1), USART2_TX (AF4), SPI1_MOSI (AF0), I2C_SDA (AF12) |
| 2 | PA3 | ADC_IN3, вход компаратора 2 | USART1_RX (AF1), USART2_RX (AF4), I2C_SCL (AF12) |
| 3 | PA4 | ADC_IN4 | SPI1_NSS (AF0), USART1_CK (AF1), TIM14_CH1 (AF4) |
| 4 | PA5 | ADC_IN5 | SPI1_SCK (AF0), LPTIM_ETR (AF5), TIM3_CH2 (AF13) |
| 5 | PA6 | ADC_IN6 | SPI1_MISO (AF0), TIM3_CH1 (AF1), TIM1_BKIN (AF2), TIM16_CH1 (AF5) |
| 6 | PA7 | ADC_IN7 | SPI1_MOSI (AF0), TIM3_CH2 (AF1), TIM1_CH1N (AF2), I2C_SDA (AF12) |
| 7 | VSS | — | общий |
| 8 | PA12 | — | SPI1_MOSI (AF0), USART1_RTS (AF1), TIM1_ETR (AF2), I2C_SDA (AF6) |
| 9 | VCC | — | питание 1,7–5,5 В |
| 10 | PA13 | — | SWDIO после сброса (AF0), USART1_RX (AF8), TIM1_CH2 (AF13) |
| 11 | PA14 | — | SWCLK после сброса (AF0), USART1_TX (AF1), USART2_TX (AF4) |
| 12 | PB5 | — | SPI1_MOSI (AF0), TIM3_CH2 (AF1), LPTIM_IN1 (AF5) |
| 13 | PB6 | вход компаратора 2 | USART1_TX (AF0), TIM1_CH3 (AF1), I2C_SCL (AF6) |
| 14 | PB7 | вход компаратора 2, вход PVD | USART1_RX (AF0), TIM17_CH1N (AF2), I2C_SDA (AF6) |
| 15 | PF4-BOOT0 | — | BOOT0, после сброса — вход с подтяжкой к земле |
| 16 | PF0 | OSC_IN | USART1_RX (AF8), USART2_RX (AF4), I2C_SDA (AF12) |
| 17 | PF1 | OSC_OUT | USART1_TX (AF8), USART2_TX (AF4), I2C_SCL (AF12) |
| 18 | PF2-NRST | — | сброс NRST или линия PF2 — выбирают option bytes |
| 19 | PA0 | ADC_IN0, вход компаратора 1 | USART1_CTS (AF1), USART2_TX (AF9), TIM1_CH3 (AF13) |
| 20 | PA1 | ADC_IN1, вход компаратора 1 | SPI1_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
| PY32F003F18P6 | STM32F030F4P6 | |
|---|---|---|
| Ядро и частота | Cortex-M0+, до 32 МГц | Cortex-M0, до 48 МГц |
| Флеш-память и ОЗУ | 64 и 8 КБ | 16 и 4 КБ |
| Питание | 1,7–5,5 В | 2,4–3,6 В |
| Линии ввода-вывода | 18 | 15 |
| Питание и земля | 9 и 7 | VDD 16, VDDA 5, VSS 15 |
| SWDIO и SWCLK | 10 и 11 | 19 и 20 |
| NRST и BOOT0 | 18 и 15 | 4 и 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».
| BOOT0 | nBOOT1 | Старт |
|---|---|---|
| 0 | любой | из основной флеш-памяти, 0x08000000 |
| 1 | 1 | из системной памяти — загрузчик по USART |
| 1 | 0 | из ОЗУ, 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 МГц ядро получает от внешнего кварца или генератора — умножителя частоты в схеме тактирования из даташита нет.
Источники
- 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 — расшифровка маркировки
- 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
Нашли ошибку?
Смотрите также
- PY32 (Puya)PY32F003: маркировка, распиновки TSSOP20, питание до 5,5 В
- STM32F0Cortex-M0, до 48 МГц: F030/F070, F031–F091, F042/F072, F0x8 — линейки и распиновки
- Совместимость STM32 по выводамКакие STM32 совпадают по выводам: таблицы отличий для F103, F407, F401, F303, G474, F030, G030
- WCH CH32V003RV32EC 48 МГц: исполнения, выводы TSSOP20 и SOP8, питание, АЦП, отладка SWIO
- ARM Cortex-MЯдра M0–M85: архитектуры, FPU, DSP, MPU, TrustZone, выбор