CH32V003 is an extremely low-cost RISC V microcontroller. For 10 cents you receive a 32-bit 48 MHz RISC-V2A core, 16KB flash, 2KB RAM and bare minimum of standard interfaces. So I decided that a 10-cent MCU deserved a 10-cent development board. Don't get me wrong - the official devboard is fine. Definitely not perfect, since it is not breadboard-friendly and so on... and of course you could design and order your own PCB. This project is not a replacement for it. It's a quick and dirty solution from cheap and accessible components when you need a basic development board pronto.
Note that CH32V003 is produced in four different packages:
- TSSOP-20 (part code CH32V003F4P6) - 20 pins, difficult to solder. It is used in this tutorial.
- SOP-8 (part code CH32V003J4M6) - 8 pins, easy to solder. It is suitable for very basic projects.
- SOP-16 (part code CH32V003A4M6) - 16 pins, easy to solder. Sadly, it has a hardware SPI bug. So avoid it if you need this interface in your project.
- QNF-20 (part code CH32V003F4U6) - 20 pins, very difficult to solder, extremely small. It is the best fit for tiny projects.
Since it's a 10 cent development board for 10 cent MCU, we are going to use cheap SMD components and a standard two-sided SOP20/TSSOP20 adapter as a base. It allows us to mount components on both sides, and the 1206 SMD package is perfectly suitable for the adapter pads. Use the attached circuit diagram as a reference.
First, fix two opposite corner pins. Apply some soldering flux and solder the remaining pins. The TSSOP20 package is pretty small for hand soldering, so it might be tricky. Use copper wick with flux to remove unwanted solder.
Use your multimeter's continuity mode to check out that everything is connected properly and there are no shorts.
On the opposite side of the board install two capacitors (10uF and 100nF) between pins 7 and 9 on the MCU (they correspond to pins 12 and 14 on the opposite side of the PCB).
Install 2.54mm headers to use it with a breadboard.
Solder power indicator LED with a resistor between pins 7 and 9.
Note that SMD LEDs have marks on the bottom. You could also use your multimeter to determine anode and cathode.
Optionally you might want to attach a programmable LED to one of the pins. I used pin 10 which corresponds to PC0, but it's up to you to decide. I routed the ground wire through the mounting hole beneath the board.
I prefer to use ch32v003fun, which is an open source toolkit for this microcontroller. It has a tool named minichlink for firmware uploading. You'll only need to connect three lines of WCH-Link:
3v3 WCH-Link - pin 9 devboard
GND WCH-Link - pin 7 devboard
SWDIO WCH-Link - pin 18 devboard
Go to ch32v003fun/exampes/blink directory and run the following command to upload the firmware:
make flash
Comments