PicoBasic 3.1 für den CH32V003                           

Elektronik-Labor  Projekte  Mikrocontroller  PicoBasic         




Für den CH32V003 gibt es inzwischen eine Platine, allerdings sind da noch kleine Änderungen nötig. Mit dabei ist ein USB-Wandler CH340N und die USB-Buchse. Der Controller hat einen Quarz, der über einen Jumper verbunden ist. Man kann ihn abschalten und mit dem internen RC-Oszillator arbeiten (vgl. Quarz oder RC-Oszillator). Ohne den Quarz stehen A1 und A2 als analoge Eingänge zur Verfügung.



Download (update 27.9.25): TestLab31.zip

Das PicoBasic für den RISC-Controller CH32V003 unterscheidet sich auf den ersten Blick nicht von den Versionen für die anderen drei Controller. Der Befehlsvorrat zeigt, dass es hier wie beim RPi Pico die Porteinstellung mit Pulldown gibt. Er funktioniert jedoch geringfügig anders. Wenn einen Portanschluss mit Pulldown oder Pullup initialisiert hat, kann man danach mit dem Portbefehl zwischen Pullup (1) und Pulldown (0) umschalten.

              Rem PullBlinkCH32
0x0AFF  Pullup = 255
              L1:
0x08FF  Pout = 255
0x19FA  Delay ms = 250
0x0800  Pout = 0
0x19FA  Delay ms = 250
0x2001  Goto L1:


 
Im TestLab fällt auf, dass die Referenz des AD-Wandlers beim CH32V003 nicht veränderbar ist, sondern permanent an VDD liegt. Die PWM-Frequenz liegt im Normalfall bei 187,5 kHz, kann aber bis auf 1 kHz verringert werden.



Ein Blick auf die Hilfeseite zeigt die Anschlussbelegung. Der Controller besitzt einen internen Operationsverstärker, der für Messungen und andere Zwecke verwendet werden kann.

Die Liste der Zusatzfunktionen, die mit Gosub aufgerufen werden, ist deutlich länger geworden. Die Funktionen 240 bis 246 entsprechen weitgehend denen der anderen Controller. Allerdings kann der CH32V003 die Frequenzen beider PWM-Kanäle unabhängig voneinander einstellen (240, 241).

Neu sind die Funktionen ab 251. Mit 251 und 252 startet man unabhängige Rechteckgeneratoren bis 24 MHz. Der Teilerfaktor wird als 16-Bit-Wert in B und A übergeben, damit kommt man herunter bis 366 Hz. Gosub 254 und 255 bilden zwei unabhängige DDS-Sinusgeneratoren, die bis über 20 kHz reichen. Mit Gosub 252 verstellt man die Schrittweite von z.B. 1 Hz, 10 Hz oder 100 Hz.

Schließlich gab es so viele Möglichkeiten, dass der Bereich ab 240 nicht mehr reichte. Deshalb wird mit Gosub 250 eine neue Untergruppe aufgemacht, in der Unterfunktionen mit B unterschieden werden. Beispiel: B = 7 und Gosub 250 schaltet den internen OPV ein. Oder B = 12 und Gosub 250 startet einen Frequenzzähler. So wurden viele neue Möglichkeiten in PicoBasic nutzbar gemacht. Vieles soll noch in folgenden Beiträgen an konkreten Beispielen erläutert werden.

Wer jetzt schon genaueres wissen will, kann sich den Firmware-Quelltext ansehen, der mit im TestLab31.zip enthalten ist. Auch das mit Lazarus geschriebene Anwenderprogramm ist im Quelltext mit dabei.


Elektronik-Labor  Projekte  Mikrocontroller  PicoBasic