UIAPduino Pro Micro CH32V003

Overview

The UIAPduino Pro Micro CH32V003 V1.4 [1] is an open-source hardware development board based on the WCH CH32V003 [2] microcontroller. The board uses a USB Type-C connector for power and programming, and can act as a USB 2.0 Low-Speed device for HID applications.

Zephyr support for this board currently provides basic GPIO support and the on-board user LED.

Hardware

The board uses the WCH CH32V003F4U6 SoC, which contains a QingKe V2A 32-bit RISC-V core. The SoC provides 16 KiB of flash and 2 KiB of SRAM, and supports operation up to 48 MHz.

Notable board hardware includes:

  • USB Type-C connector for power and programming

  • on-board reset button

  • on-board power and user LEDs

  • selectable 3.3 V or 5 V microcontroller supply

  • USB host protection fuses

  • through-hole edge connections

  • flat bottom for surface-mount-like installation

Supported Features

The uiapduino_pro_micro_ch32v003 board supports the hardware features listed below.

on-chip / on-board
Feature integrated in the SoC / present on the board.
2 / 2
Number of instances that are enabled / disabled.
Click on the label to see the first instance of this feature in the board/SoC DTS files.
vnd,foo
Compatible string for the Devicetree binding matching the feature.
Click on the link to view the binding documentation.

uiapduino_pro_micro_ch32v003/ch32v003 target

On-target memory for this board target: 2 KiB of RAM, 16 KiB of Flash.

Type

Location

Description

Compatible

CPU

on-chip

WCH QingKe V2 RISC-V MCU1

wch,qingke-v2

ADC

on-chip

WCH CH32V00x ADC1

wch,adc

Clock control

on-chip

WCH CH32V00x Reset and Clock Control (RCC)1

wch,rcc

on-chip

WCH CH32V00x HSE Clock1

wch,ch32v00x-hse-clock

on-chip

WCH CH32V00x HSI Clock1

wch,ch32v00x-hsi-clock

on-chip

Generic fixed-rate clock provider1

fixed-clock

on-chip

WCH CH32V00x PLL1

wch,ch32v00x-pll-clock

Counter

on-chip

WCH Advanced-control Timer (ADTM) for PWM1

wch,adtm

on-chip

WCH General-purpose Timer (GPTM)1

wch,gptm

DMA

on-chip

WCH DMA controller1

wch,wch-dma

GPIO & Headers

on-chip

WCH CH32V00x General-Purpose Input/Output (GPIO)3

wch,gpio

I2C

on-chip

WCH I2C controller1

wch,i2c

Interrupt controller

on-chip

WCH CH32V00x Programmable Fast Interrupt Controller (PFIC)1

wch,pfic

on-chip

WCH CH32V003/20x/30x External Interrupt and Event Controller (EXTI)1

wch,exti

LED

on-board

Group of GPIO-controlled LEDs1

gpio-leds

MTD

on-chip

Flash node1

soc-nv-flash

Pin control

on-chip

WCH CH32V00x AFIO1

wch,afio

PWM

on-chip

WCH Advanced-control Timer (ADTM) for PWM1

wch,adtm-pwm

on-chip

WCH General-purpose Timer (GPTM) for PWM1

wch,gptm-pwm

Serial controller

on-chip

WCH SDI console1

wch,sdi-console

on-chip

WCH CH32V00x UART1

wch,usart

SPI

on-chip

WCH SPI1

wch,spi

SRAM

on-chip

Generic on-chip SRAM1

mmio-sram

Timer

on-chip

WCH CH32V00x Systick1

wch,systick

Watchdog

on-chip

WCH Independent Watchdog (IWDG)1

wch,iwdg

Connections and IOs

LED

  • LED0 = PC0, active high

Programming

The uiapduino_pro_micro_ch32v003 board supports the runners and associated west commands listed below.

flash debug
minichlink ✅ (default)

Applications for the uiapduino_pro_micro_ch32v003 board target can be built and flashed in the usual way. See Building an Application and Run an Application for more details.

The board is shipped with a custom USB bootloader based on rv003usb [3]. To enter writing standby mode, hold the reset button while connecting the board to USB, then release the reset button.

The Zephyr board configuration uses minichlink as the default runner and passes 0x1209b803 as the device identifier.

Flashing

Install minichlink from ch32fun [4] and make sure the board can be accessed by the host. On Linux, this may require installing the corresponding udev rule.

Here is an example for the Blinky application.

# From the root of the zephyr repository
west build -b uiapduino_pro_micro_ch32v003 samples/basic/blinky
west flash

References