GD32F103: замена STM32F103 от GigaDevice
GD32F103 от GigaDevice часто ставят вместо STM32F103. Мы сверили таблицы выводов из даташита GigaDevice с открытой базой ST: в LQFP48 совпадают все 48 выводов, в LQFP64 — все, кроме переназначения PD0 и PD1 на выводах кварца. Но частота, питание и названия периферии отличаются.
Обновлено Редакция GAW
GD32F103 — серия микроконтроллеров GigaDevice на ядре Cortex-M3, которая повторяет набор исполнений STM32F103: те же корпуса, объёмы памяти и периферия в младших моделях. Мы сравнили их не по рекламе, а по таблицам выводов: даташит GigaDevice против открытой базы выводов ST.
Что совпадает
| GD32F103C8 | STM32F103C8 | |
|---|---|---|
| Корпус | LQFP48 | LQFP48 |
| Флеш-память и ОЗУ | 64 и 20 КБ | 64 и 20 КБ |
| Линий ввода-вывода | 37 | 37 |
| АЦП | 2 × 12 бит, 10 каналов | 2 × 12 бит, 10 каналов |
| Интерфейсы | 3 USART, 2 SPI, 2 I²C, CAN, USB | 3 USART, 2 SPI, 2 I²C, CAN, USB |
| Выводы 1–48 | совпадают с STM32F103C8 | — |
В LQFP64 (GD32F103R и STM32F103R) совпадают 62 вывода из 64; разница — в выводах 5 и 6: у STM32F103 их можно переназначить на PD0 и PD1, а в таблице GigaDevice там только OSCIN и OSCOUT.
Что отличается
| GD32F103 | STM32F103 | |
|---|---|---|
| Частота ядра | до 108 МГц | до 72 МГц |
| Питание VDD | 2,6–3,6 В | 2,0–3,6 В |
| Нумерация периферии | с нуля: USART0, TIMER0, SPI0 | с единицы: USART1, TIM1, SPI1 |
У GD32F103 шина APB1 работает до 54 МГц, а флеш-память, по описанию GigaDevice, читается без тактов ожидания. Но главная ловушка при переходе — нумерация. На одних и тех же выводах:
| Вывод LQFP48 | Линия | GD32F103 | STM32F103 |
|---|---|---|---|
| 30, 31 | PA9, PA10 | USART0_TX, USART0_RX | USART1_TX, USART1_RX |
| 12, 13 | PA2, PA3 | USART1_TX, USART1_RX | USART2_TX, USART2_RX |
| 21, 22 | PB10, PB11 | USART2, I2C1 | USART3, I2C2 |
| 15 | PA5 | SPI0_SCK | SPI1_SCK |
| 32, 33 | PA11, PA12 | CAN0, USBDM и USBDP | CAN, USB_DM и USB_DP |
| 30 | PA9 | TIMER0_CH1 | TIM1_CH2 |
Сдвинуты и номера каналов таймеров: канал 1 у GigaDevice — это канал 2 у ST. Поэтому код, который ссылается на периферию по номерам, переписывают по документации GigaDevice, даже если плата та же.
Питание и уровни
Питание VDD — от 2,6 до 3,6 В, батарейное VBAT — от 1,8 до 3,6 В. Выводы, отмеченные в таблице как 5VT, выдерживают 5 В: в LQFP48 это PB2, PB10–PB15, PA8–PA15, PB3, PB4 и PB6–PB9. Входы АЦП (PA0–PA7, PB0, PB1) — не 5VT. Флеш-память рассчитана на 100 тысяч циклов записи и 20 лет хранения, АЦП тактируется до 14 МГц — это до миллиона выборок в секунду.
Как перенести проект между самими STM32, разбирает статья «Совместимость STM32 по выводам»; отечественная альтернатива со своей распиновкой — К1986ВЕ92.
Частые вопросы
Можно ли поставить GD32F103C8 вместо STM32F103C8?
По выводам — да: таблица LQFP48 из даташита GigaDevice совпадает с выводами STM32F103C8 из базы ST на всех 48 позициях. Но это другая микросхема: частота до 108 МГц, питание от 2,6 В вместо 2,0 В, свои временные характеристики, — поэтому прошивку проверяют на новой микросхеме, а не переносят вслепую.
Почему у GD32 USART0, а у STM32 USART1?
GigaDevice нумерует периферию с нуля: на PA9 и PA10 у GD32F103 — USART0_TX и USART0_RX, у STM32F103 — USART1_TX и USART1_RX. Так же сдвинуты таймеры (TIMER0 вместо TIM1) и их каналы, SPI, I²C и CAN. Сами выводы при этом те же.
На какой частоте работает GD32F103?
До 108 МГц по шине AHB и APB2 и до 54 МГц по APB1, а флеш-память, по описанию GigaDevice, читается без тактов ожидания. У STM32F103 по базе ST — до 72 МГц.
Можно ли использовать выводы кварца GD32F103 как PD0 и PD1?
У STM32F103 в корпусах LQFP48 и LQFP64 выводы 5 и 6 обозначены PD0-OSC_IN и PD1-OSC_OUT. В таблицах выводов GD32F103 для этих корпусов там только OSCIN и OSCOUT: переназначение на PD0 и PD1 GigaDevice убрала из описания выводов в редакции 2.11 даташита.
Источники
- GigaDevice. GD32F103xx Arm Cortex-M3 32-bit MCU Datasheet, Revision 3.3 (Jan. 2026) — разд. 1 — Cortex-M3 108 МГц, флеш без тактов ожидания, питание 2,6–3,6 В, −40…+85 °C; табл. 2-1 — исполнения T, C, R, V: флеш 16–128 КБ, SRAM 6–20 КБ, 26/37/51/80 линий, 2 АЦП на 10 или 16 каналов; табл. 2-7 и 2-8 — выводы LQFP64 и LQFP48 с отметками 5VT; табл. 4-2 — VDD 2,6–3,6 В, VBAT 1,8–3,6 В; табл. 4-3 — AHB и APB2 до 108 МГц, APB1 до 54 МГц; табл. 4-27 — 100 тыс. циклов записи флеш-памяти, хранение 20 лет; табл. 4-34 — АЦП до 14 МГц и 1 млн выборок в секунду; ред. 2.11 — из описания выводов удалено переназначение PD0 и PD1 на OSCIN и OSCOUT
- STMicroelectronics. STM32_open_pin_data: STM32F103C(8-B)Tx и STM32F103R(8-B)Tx (коммит 7d1f151) — выводы LQFP48 и LQFP64 STM32F103 с сигналами (USART1_TX на PA9, USART2_TX на PA2, SPI1_SCK на PA5, CAN_RX на PA11, PD0-OSC_IN и PD1-OSC_OUT на выводах 5 и 6), 72 МГц, питание 2,0–3,6 В
Нашли ошибку?
Смотрите также
- GD32 (GigaDevice)GD32F103 и другие: сравнение со STM32 по даташитам
- STM32F1Cortex-M3: F100, F101, F102, F103, F105/107 — линейки и распиновки
- Совместимость STM32 по выводамКакие STM32 совпадают по выводам: таблицы отличий для F103, F407, F401, F303, G474, F030, G030
- Cortex-M3Регистры, карта памяти, bit-banding, NVIC, SysTick, MPU, старт, пример
- Миландр К1986ВЕ92Cortex-M3 80 МГц: исполнения, выводы, загрузчик, errata, сравнение со STM32F103