In deze review bekijken we het evaluatieboard CH32V307 van WCH, dat je misschien kent van de USB-naar-serieel converters CH340/CH341 die je vaak aantreft op goedkope MCU-boards uit Azië. Het evaluatieboard CH32V307 is een soort breakout-board voor de microcontroller CH32V307VCT6 van WCH. Dit is een 32-bit MCU gebouwd rond een RISC-V core van QingKe.

Wat is het evaluatieboard CH32V307?

Voordat we de MCU in meer detail bekijken, kijken we eerst even naar de printplaat waarop hij is geplaatst. Behalve veel connectoren is er weinig op te vinden. Het board heeft aan elke zijde een 54-polige pin header van twee rijen. Tussen deze headers zitten shield aansluitingen van het Arduino-UNO-type. De MCU heeft een 100-pins LQFP behuizing en bevindt zich in het midden van het board.

Aan een van de korte zijden, laten we het de rechterkant noemen, zitten twee USB-C connectoren en een ethernetaansluiting. De onderste USB-C connector (P7) is verbonden met een spanningsregelaar. Aan de linkerkant zitten twee drukknoppen en twee LED's.
 
WCH CH32V307 evaluation board
De WCH Link module links is afbreekbaar.

Debugger inbegrepen

Het board heeft aan de linkerkant een uitbreiding met een afbreekbare debug/programmering/seriële interface op basis van een ongemarkeerd IC. Deze wordt de WCH Link genoemd. Het heeft een aan/uit-schakelaar, een derde USB-C connector, drie extra LED's en een jumperstrip.

De RISC-V MCU CH32V307

Zoals gezegd is de microcontroller CH32V307 een RISC-V versie. Het lijkt het huidige vlaggenschip van een nogal grote familie. Het systeem draait op maximaal 144 MHz en heeft 256 KB Flash geheugen en 64 KB RAM en 80 GPIO-poorten. Omdat het een MCU voor onderlinge verbindingen is, heeft het acht seriële poorten, drie SPI, twee I²C, twee I²S en twee CAN interfaces plus USB2.0 (full-speed OTG, high-speed host/device), en Ethernet (Gigabit met 10M PHY). Verder is er een 16-kanaals, 12-bit ADC (met touch key mogelijkheden), twee 12-bit DAC's, 10 timers, een CRC berekeningsunit en een TRNG. Maar er is meer, lees het datasheet voor alle details.

Qua prestaties is de CH32V307 vergelijkbaar met een ARM Cortex-M4. Hij heeft single-cycle multiply en division en integreert een FPU.

MounRiver Studio alias MRS

Aangezien er niet veel te zeggen valt over het board of de MCU, gaan we eens kijken naar de software ontwikkeltools. Voor dit doel is er MounRiver Studio (MRS), een gratis, geïntegreerde ontwikkelomgeving (IDE) gebaseerd op Eclipse voor RISC-V/ARM microcontrollers. Ik heb versie 1.84 geïnstalleerd.
 
MounRiver Studio debug view
Op Eclipse gebaseerde MounRiver Studio in debug-modus.

Een uitgebreide verzameling met voorbeelden is beschikbaar op GitHub. Dit omvat de meeste, zo niet alle randapparatuur, plus FreeRTOS en nog wat andere dingen.

Ik ben begonnen met het aanmaken van een nieuw project, wat heel eenvoudig is. Het nieuwe project is volledig geconfigureerd en heeft zelfs een voorbeeldprogramma, zodat je het meteen kunt proberen.

Sluit de debug-zijde van het evaluatieboard aan op een Windows PC. Hierdoor wordt een seriële USB poort gecreëerd (WCH-Link SERIAL). Schakel het board in met S3. Open een seriële terminal en laat deze communiceren met de nieuwe seriële poort op 115.200 baud.

Drie klikken is voldoende

Klik in MRS op de knop "Build Project" (of druk op F7). Als het compileren klaar is - dit gaat heel snel - druk je op de debug knop. Als de IDE klaar is met het reorganiseren van de programmavensters, sta je aan het begin van je programma. Klik op "Uitvoeren" of druk op F5 om de programma-uitvoer te zien verschijnen in de seriële terminal.

Bij een tweede poging importeerde ik het RNG voorbeeld, de random number generator. Na het bedienen van dezelfde knoppenreeks zoals eerder, verschenen willekeurige getallen in de seriële terminal.

 
tera term RNG example output
Willekeurige getallen gegenereerd door de TRNG-tool van de MCU CH32V307.

High-level API voor de CH32V307

Inspectie van de broncode onthult high-level API functies met begrijpelijke en gemakkelijk te onthouden namen voor alle randapparatuur. Dit vereenvoudigt de programma-ontwikkeling natuurlijk enorm, omdat je niet voor elke kleine stap het datasheet hoeft te raadplegen.

Conclusie

In mijn leven heb ik een heleboel ontwikkelboards voor allerlei processoren en programmeeromgevingen uitgeprobeerd, dus je kunt me geloven als ik zeg dat een dergelijke soepele ervaring uiterst zeldzaam is.

Ik ben geneigd te zeggen dat het evaluatieboard CH32V307 samen met MounRiver Studio een soort Arduino op steroïden is. Het is even gemakkelijk te gebruiken als Arduino, maar de ingebouwde debugger ondersteund door een IDE van professionele kwaliteit, de RISC-V core en het grote aantal I/O-pinnen maken het veel krachtiger.

Opmerking: De WCH website staat standaard in het Chinees, althans bij mij, maar je kunt rechtsboven overschakelen op Engels, daar waar 选择语言 staat.

wch website to english


Vertaling: Hans Adams