In this review, we will have a look at the CH32V307 Evaluation Board from WCH, which you may know from the CH340/CH341 USB-to-serial converters often found on low-cost MCU boards from Asia. The CH32V307 Evaluation Board is a kind of breakout board for the CH32V307VCT6 microcontroller by WCH. This is a 32-bit MCU built around a RISC-V core from QingKe.

What Is the CH32V307 Evaluation Board?

Before looking at the MCU in more detail, let’s have a brief look at the board that hosts it. Besides plenty of connectors, there isn’t much on it. The board has a 2-row 54-way pin header on each side. In between these headers are Arduino-UNO-type shield sockets. The MCU in its 100-pin LQFP package sits in the center of the board.

On one of the short sides, let’s call it the right side, are two USB-C connectors and an Ethernet socket. The lower USB-C connector (P7) is connected to a voltage regulator. On the left side are two tactile switches and two LEDs.

 
WCH CH32V307 evaluation board
The WCH Link module on the left is detachable.

Debugger Attached

The board extends a bit on the left with a detachable debug/programming/serial interface based on an unmarked IC. This is called the WCH Link. It has a power switch, a third USB-C connector, three more LEDs and a jumper strip.

The CH32V307 RISC-V MCU

As said above, the CH32V307 microcontroller is a RISC-V device. It appears to be the current flagship of a rather large family. The device runs at up to 144 MHz and has 256 KB of Flash memory and 64 KB of RAM and 80 GPIO ports. As it is an interconnectivity MCU, it features eight serial ports, three SPI, two I²C, two I²S, and two CAN interfaces plus USB2.0 (full-speed OTG, high-speed host/device), and Ethernet (Gigabit with 10M PHY). In addition, there is a 16-channel, 12-bit ADC (with touch key capabilities), two 12-bit DACs, 10 timers, a CRC calculation unit and a TRNG. And there is more, refer to the datasheet for the full details.

Performance-wise, the CH32V307 is comparable to an ARM Cortex-M4. It has single-cycle multiply and division and integrates an FPU.

MounRiver Studio aka MRS

Since there is not much to say about the board nor the MCU, let’s have a look at the software development tools. For this, there is MounRiver Studio (MRS), a free, integrated development environment (IDE) based on Eclipse for RISC-V/ARM microcontrollers. I installed version 1.84.
 
MounRiver Studio debug view
Eclipse-based MounRiver Studio in debug mode.

An extensive example pack is available on GitHub. This covers most, if not all peripherals, plus FreeRTOS and some other things.

I started by creating a new project, which is really easy. The new project is fully configured and even has example code, so you can try it straight away.

Connect the debug side of the evaluation board to a Windows PC. This creates a USB serial port (WCH-Link SERIAL). Switch the board on with S3. Open a serial terminal and make it listen to the new serial port at 115,200 baud.

Three Clicks Is All There Is to It

In MRS, click the Build Project button (or press F7). When compilation is finished – this is very fast – press the debug button. When the IDE is done rearranging its windows, you will find yourself at the beginning of your program. Click Run or press F5 to see the program output appear in the serial terminal.

As a second try, I imported the RNG example, the random number generator. After executing the same button click sequence as before, random numbers showed up in the serial terminal.

 
tera term RNG example output
Random numbers generated by the TRNG peripheral of the CH32V307 MCU.

High-level API for the CH32V307

Inspecting the source code reveals high-level API functions with understandable and easy-to-remember names for all the peripherals. This, of course, greatly simplifies program development as you don’t have to consult the datasheet for every little step you are trying to take.

A Powerful Solution

In my life, I have tried out a whole lot of development boards for all sorts of processors and programming environments, so you can believe me when I say that such a smooth experience is extremely rare.

I feel tempted to say that the CH32V307 Evaluation Board together with MounRiver Studio is a sort of Arduino on steroids. It is as easy to get started and use as Arduino, but the built-in debugger supported by a pro-quality IDE, its RISC-V core and the large number of I/O pins make it way more powerful.

Note: The WCH website defaults to Chinese, at least it did for me, but you can switch to English in the top-right corner, where it says 选择语言.

wch website to english