1. Overview
The CH32V003 series is an industrial-grade general-purpose microcontroller designed based on the QingKe RISC-V2A core. It supports a 48MHz system main frequency. This series features wide voltage operation, single-wire debug capabilities, low-power consumption, and is available in ultra-small packages. It integrates commonly used peripheral functions, including a 1-group DMA controller, a 10-bit analog-to-digital conversion (ADC) unit, an op-amp comparator, multiple timers, and standard communication interfaces such as USART, I2C, and SPI. The rated operating voltage is 3.3V or 5V, and it operates within an industrial temperature range of -40℃ to 85℃.

2. Features
- Core:
- QingKe 32-bit RISC-V core with RV32EC instruction set.
- Fast programmable interrupt controller with hardware interrupt stack.
- Supports 2-level interrupt nesting.
- Supports system main frequency up to 48MHz.
- Memory:
- 2KB volatile data storage area (SRAM).
- 16KB program memory (CodeFlash).
- 1920B BootLoader.
- 64B non-volatile system configuration memory.
- 64B user-defined memory.
- Power Management and Low-Power Consumption:
- System power supply VDD: 3.3V or 5V.
- Low-power modes: Sleep, Standby.
- Clock & Reset:
- Built-in factory-trimmed 24MHz RC oscillator.
- Built-in 128KHz RC oscillator.
- High-speed external 4~25MHz oscillator support.
- Power on/down reset, programmable voltage detector.
- DMA Controller:
- 1 group of 1-channel general-purpose DMA controller.
- 7 channels, supporting ring buffer.
- Supports TIMx/ADC/USART/I2C/SPI peripherals.
- OPA and Comparator:
- 1 group of OPA and comparator, connected with ADC and TIM2.
- 10-bit ADC:
- Analog input range: 0~VDD.
- 8 external signals + 2 internal signals.
- Supports external delayed triggering.
- Multiple Timers:
- 1x 16-bit advanced-control timer, with dead zone control and emergency brake; capable of providing PWM complementary output for motor control.
- 1x 16-bit general-purpose timer, providing input capture/output comparison/PWM/pulse counting/incremental encoder input.
- 2x watchdog timers (independent watchdog and window watchdog).
- SysTick: 32-bit counter.
- Communication Interfaces:
- 1x USART interface.
- 1x I2C interface.
- 1x SPI interface.
- GPIO Port:
- 3 groups of GPIO ports, totaling 18 I/O ports.
- Mapping for 1 external interrupt.
- Security Features:
- 64-bit unique ID.
- Debug Mode:
- 1-wire serial debug interface (SDI).
- Package Types: SOP, TSSOP, or QFN.
3. Specifications
3.1. Product Selection (MCU)
The following table provides a detailed overview of the CH32V003 MCU variants and their key specifications.

3.2. Package Information
The CH32V003 series is available in various package types. Detailed dimensional drawings and a summary table are provided below for reference.
SOP8 Package

SOP16 Package

QFN20 Package

TSSOP20 Package

A summary of package details is provided in the table below:

4. Setup
Setting up the CH32V003 MCU typically involves integrating it into a circuit board and preparing the development environment. While specific setup instructions depend on your application, general steps include:
- Hardware Integration: Solder the MCU to your PCB according to the package dimensions and pinout. Ensure proper power supply (3.3V or 5V) and grounding.
- Power Supply: Connect the VDD and GND pins to a stable power source within the specified voltage range.
- Clock Source: Configure the internal RC oscillator or connect an external crystal/oscillator to the appropriate pins if higher precision or specific frequencies are required.
- Debug Interface: Connect a compatible single-wire serial debug interface (SDI) programmer/debugger to the MCU's debug pins for programming and debugging.
- Peripheral Connections: Connect external components to the GPIO, USART, I2C, SPI, ADC, and timer pins as needed for your application.
- Development Environment: Install the necessary IDE (e.g., MounRiver Studio), toolchains, and drivers for RISC-V development.
5. Operating
Operating the CH32V003 MCU involves programming it with your application code and running it within your system. Key aspects include:
- Programming: Develop your application code using C/C++ or assembly language. Compile the code using the RISC-V toolchain and flash it onto the MCU's CodeFlash memory via the SDI interface.
- Debugging: Utilize the single-wire serial debug interface (SDI) for real-time debugging, setting breakpoints, inspecting registers, and stepping through code.
- Peripheral Configuration: Initialize and configure the various on-chip peripherals (GPIO, timers, communication interfaces, ADC, DMA) through software to match your application's requirements.
- Low-Power Modes: Implement Sleep or Standby modes in your code to optimize power consumption when the MCU is idle or performing non-critical tasks.
- Interrupt Handling: Configure and manage interrupts for timely responses to external events or internal peripheral triggers.
6. Maintenance
Proper handling and maintenance ensure the longevity and reliable operation of your CH32V003 MCUs:
- Storage: Store MCUs in their original anti-static packaging in a dry, temperature-controlled environment to prevent damage from electrostatic discharge (ESD) and moisture.
- Handling: Always use ESD-safe practices when handling MCUs, including wearing anti-static wrist straps and working on an ESD-safe mat. Avoid touching pins directly.
- Cleaning: If necessary, clean the MCU package with isopropyl alcohol and a soft brush. Avoid harsh chemicals or abrasive materials.
- Environmental Conditions: Ensure the operating environment stays within the specified temperature range (-40℃ to 85℃) and humidity levels to prevent performance degradation or damage.
7. Troubleshooting
If you encounter issues with your CH32V003 MCU, consider the following troubleshooting steps:
- No Power/Boot: Verify power supply voltage (3.3V or 5V) and connections. Check for shorts or incorrect wiring.
- Programming Failure: Ensure the debug interface is correctly connected and recognized by your development environment. Check for proper driver installation. Verify the MCU is powered.
- Unexpected Behavior: Review your code for logical errors, incorrect peripheral configurations, or unhandled interrupts. Use the debugger to step through the code and identify the point of failure.
- Peripheral Malfunction: Double-check the pin assignments and configuration registers for the affected peripheral. Ensure external components are correctly connected and functioning.
- Clock Issues: Confirm the clock source is stable and correctly configured. If using an external oscillator, check its connections and frequency.
- ESD Damage: If the MCU behaves erratically or fails completely after handling, it might have suffered ESD damage. Always follow ESD precautions.
8. User Tips
No specific user tips were available from reviews or Q&A for this product at this time. For best results, refer to the official documentation and community forums for development best practices.
9. Warranty & Support
For detailed technical support, documentation, and software resources, please refer to the official WCH website and the specific product documentation for the CH32V003 series.
9.1. Technical Resources
- Official Website: http://www.wch-ic.com/
- CH32V003 Datasheet (CH32V003DS0.PDF): http://www.wch-ic.com/downloads/CH32V003DS0_PDF.html
- CH32V003 Reference Manual (CH32V003RM.PDF): http://www.wch-ic.com/downloads/CH32V003RM_PDF.html
- CH32V003 Routines (CH32V003EVT.ZIP): https://www.wch.cn/downloads/CH32V003EVT_ZIP.html
Always consult the latest versions of these documents for the most accurate and up-to-date information.





