The CH32V002 upgrades the CH32V003 family with a QingKe RISC-V2C core and RV32EmC ISA, adding hardware integer multiply and divide instructions for motor control and DSP-style loops.
CH32V002 Brings Hardware Multiply/Divide: Inside the RV32EmC "M" Extension
WCH's CH32V003 has become the reference $0.10 RISC-V MCU. The newer CH32V002 keeps the low-pin-count form factor but upgrades the core to a QingKe RISC-V2C implementation of the
RV32EmC instruction set. The most important addition is the
"M" extension: hardware integer multiply and divide.
What the M Extension Adds
The RISC-V M extension is the standard Integer Multiplication and Division Extension. On CH32V002 it adds eight hardware instructions:
- MUL — 32-bit signed/unsigned multiply
- MULH — signed multiply, high 32 bits
- MULHSU — signed x unsigned multiply, high 32 bits
- MULHU — unsigned multiply, high 32 bits
- DIV — signed division
- DIVU — unsigned division
- REM — signed remainder
- REMU — unsigned remainder
Before the M extension, these operations had to be emulated in software, which consumed flash space and execution time.
Performance Impact
According to the community comparison, hardware M extension can deliver:
- 32-bit multiply: roughly 5 to 10 times faster than software emulation.
- 32-bit divide/remainder: roughly 8 to 15 times faster than software emulation.
The exact speedup depends on the compiler's emulation routine, but for control loops the latency difference is immediately visible. Algorithms that do repeated scaling, filtering, or coordinate transforms no longer stall on software divide routines.
Where It Helps Most
The M extension is not just a benchmark improvement. It changes which algorithms are practical on a low-cost MCU:
- Motor FOC and sensorless BLDC control — lots of Park/Clarke transforms and PI loops.
- PID controllers — frequent multiply/accumulate and output scaling.
- Sensor data filtering — moving averages, low-pass IIR filters, Kalman predictors.
- Encoders and motion control — velocity/position calculations with division.
If your application does any of the above and you were squeezing it onto a CH32V003, the CH32V002 gives you headroom without jumping to a bigger part.
Where the CH32V002 Fits in the WCH Line-up
Think of the CH32V002 as an enhanced CH32V003, not a replacement for the higher-end parts:
- CH32V003 — $0.1, RV32EC, 48 MHz, no hardware M extension, ideal for the simplest tasks.
- CH32V002 — RV32EmC, hardware M extension, better for math-heavy control loops while staying low cost.
- CH32V006 — adds operational amplifiers and comparators, useful for analog signal conditioning.
- CH32V305 — larger RAM (192 KB usable), often used as a debug probe or test controller.
- CH32V307/317 — Ethernet/USB HS, application-layer connectivity.
If your next design needs more than GPIO and bit-banging but does not yet need Ethernet or USB HS, the CH32V002 is a sensible middle step.
Take-away
The move from RV32EC to RV32EmC on the CH32V002 line removes the biggest performance limitation of ultra-low-cost RISC-V MCUs: software-emulated multiply and divide. For control and signal-processing tasks, that is a meaningful upgrade that can simplify code and reduce loop latency.
Source: RV32EmC指令集中的m — 21ic Electronic Technology Forum