CH32V003 - Experimente mit dem Zehn Cent-Mikrocontroller

(Firma: Tamoggemon Holding k.s.) #7300305
Lesenswert?

Wenige Tage vor dem Beginn des Weihnachts-Wahnsinns traf auch der zweite Teil des WCH-Evaluationsboards ein. Hier ein kurzer Erstbericht, der die Inbetriebnahme und Beschaffung der Komponenten beschreibt. Ein Folgeartikel wird auf HAL und Co eingehen.

Worum geht es hier?

Die von WCH bereitgestellten Mikrocontroller-Boards bzw. Mikrocontroller benötigen per se keine großen Beschreibung: es handelt sich dabei um einen in Stückzahlen um etwa zehn Cent erhältlichen Mikrocontroller, der sich von den diversen im Markt herumwurlenden 8051-Derivaten dadurch unterscheidet, dass er auf einem vollwertigen RISC-V-Kern basiert. Abbildung eins zeigt das auf der Webseite des Herstellers herunterladbare Blockschaltbild.

Bildquelle: http://www.wch-ic.com/products/CH32V003.html?.

Interessant ist in diesem Zusammenhang außerdem der Besuch der unter http://www.wch-ic.com/products/CH32V003.html bereitstehenden Webseite der Controller-Familie. Aufmerksame Beobachter sehen dort wie in Abbildung zwei gezeigt eine ganze Tabelle verschiedener Varianten - langfristig dürfte WCH also planen, „weitere“ RISC-V-Chips in der preiswerten Klasse anzubieten.

Bildquelle: http://www.wch-ic.com/products/categories/47.html?pid=5#data

Tindie als Evaluationsboard-Lieferant.

Obwohl WCH den Fokus der hauseigenen Anstrengungen offensichtlich auf den Heimatmarkt legt, ist das Unternehmen ausländischen Experimenten gegenüber nicht negativ eingestellt. Auf Tindie findet sich unter der URL https://www.tindie.com/products/adz1122/ ein online-Shop, der zur Controllerfamilie passende Boards feilbietet. Wichtig ist bei seiner Nutzung vor allem, dass die Programmierung über ein - derzeit nur teilweise entschlüsseltes - proprietäres Kommunikationsprotokoll erfolgt, das in einem als WCH-Link bezeichneten Kommandogerät implementiert ist. Achten Sie also unbedingt darauf, unter der URL https://www.tindie.com/products/adz1122/ch32v003-risc-v-mcu-development-board/ sowohl das Paket Development Board als auch das Paket WCH-Link zu bestellen. Für die eigentliche Inbetriebnahme ist es erforderlich, Steckerbuchsen einzulöten - auch heute gilt, dass sich die Komponenten wohl nicht allzu einfach per Pick and Place platzieren lassen. Empfehlenswert ist nach Ansicht des Autors die in der Abbildung gezeigte Konfiguration, die das „direkte“ Anstecken erlaubt.

Bildquelle: Tamoggemon Holding K. S.

Im Rahmen der OOBE implementiert der Anbieter dabei ein einfaches Programm, das - neben der bei Vorhandensein von Versorgungsspannung immer leuchtenden LED PWR - die zweite LED D1 zum Blinken bringt.

IDE: MounRiver Studio.

Sehr preiswerte Mikrocontroller basieren allzu oft auf ancienten 8-Bit-Kernen, die mit arcanen IDEs programmiert werden und keinen vernünftigen Debugger mitbringen. Im Fall der von WCH angebotenen Plattform haben wir diese Probleme nicht - unter der URL http://www.mounriver.com/download findet sich eine eclipsebasierte und als MounRiver Studio bezeichnetes Entwicklungspaket, das zumindest zum Zeitpunkt der Drucklegung dieses Artikels komplett kostenlos ist. Obwohl die Chinesen „nominell“ Windows, Mac OS und Linux gleichermaßen unterstützen, empfiehlt sich die Arbeit mit Windows, weil neue Versionen des Produkts dort zuerst herauskommen. Sei dem wie es sei, erfolgt die folgenden Experimente unter Nutzung der Datei MounRiver_Studio_Setup_V183.zip - extrahieren Sie sie und führen Sie das Installationsprogramm aus, um die IDE auf ihrer Windows 10-Workstations zu installieren. MounRiver ist sonst eine standardisierte Eclipse-IDE, die im Allgemeinen alles bietet, was ein C-bzw. C++-Entwickler erwarten würde. Für die eigentliche Projekterzeugung setzen Sie dann auf den in der Abbildung gezeigten Assistenten – achten Sie darauf, die MCU voll (also als CH32V003F4P6) zu qualifizieren.

Ausblick: das Projektskelett im Fokus.

Neue MounRiver-Projekte beginnen mit der Realisierung eines „Spiegels“, der den UART zur Weiterleitung eingehender serieller Informationen nutzt. Im Interesse der Lustigkeit wollen wir dieses Projektskelett im Folgeartikel kurz zerlegen, um mehr über die HAL zu erfahren. Bis dahin hofft der Autor, dass die Exkurse zu eigener Beschäftigung mit dem System animieren!

Angehängte Dateien:

Kommentare

#7300345
Lesenswert?

Ist das Flash Protokoll nicht im Reference Manual beschrieben?

http://www.wch-ic.com/downloads/CH32V003RM_PDF.html
"Chapter 16 Flash Memory and User Option Bytes"

Bei Aliexpress gibt es auch gute Sets (z.B. nach "CH32V003F4P6 QingKe" 
suchen) im "WHC official store". Für 15€ bekommt man da ein CH32V003F4P6 
devboard, den WCH-Link und 5 nackte uCs.
Für ~17€ gibt es 50x CH32V003F4U6 als QFN20 für ein paar Mark weniger 
das ganze als SOP8. (Alles inkl. Versand und MwSt)
#7300498
Lesenswert?

"Die von WCH bereitgestellten Mikrocontroller-Boards bzw. 
Mikrocontroller benötigen per se keine großen Beschreibung"

naja, dies Urteil spottet auch aller Beschreibung.
Tatsächlich sind gerade die größeren Vertreter ihrer Art schon recht 
ausgewachsene Teile!

Wf88 schrieb:
> oder AVRs ein
> paar Jahre später, dann muss ich sagen: irre, wie billig das Zeug für
> Bastler heutzutage **erhältlich** ist

Von meinen AVRs wird mich auch ein 1 Cent CHxyz nicht weglocken solange 
die neuen Teile nicht mindestens so einfach zu programmieren sind. 
Danach schaut es gerade nicht aus!
#7300620
Lesenswert?

> Von meinen AVRs wird mich auch ein 1 Cent CHxyz nicht weglocken solange
> die neuen Teile nicht mindestens so einfach zu programmieren sind.
> Danach schaut es gerade nicht aus!

So dachte ich auch mal über "meine" 8051er, bis ich merkte was ein 
tiny2313 mit LPT-Programmer schon so alles "drauf hat".

Und selbst für Hobby-Basteleien ist der Preis eines Einzel-Chips auch 
nicht mehr egal.
Ich habe da noch Preisunterschiede vom tiny2313 (~2€) zum AT89C51AC3 
(~15€) im Kopf. Als der AC3 dann mal nicht verfügbar war kam der erste 
mega32 (~5€).

Das kann schneller gehen als man denkt und zack hat man die Familie 
gewechselt.
#7300665
Lesenswert?

Wf88 schrieb:
> Das kann schneller gehen als man denkt und zack hat man die Familie
> gewechselt.

Da denke ich anders drüber, zumal bei solch schlechtdokumentierten 
chinesischen Controllern. Vorhandenes Software-Knowhow ist durch nichts 
zu ersetzen, vor allem nicht durch billigere Controller einer völlig 
anderer Architektur.

Von den AVRs die ich verwende liegt übrigens keiner über 2 Euro.
#7301238
Lesenswert?

Wo gibt es die Controller denn für 10 Cent oder für einen Preis, der 
auch nur näherungsweise in diese Größenordnung kommt?

Auf Tindie gibt es Einzelstücke zum "Sonderpreis" von $9,40, 
herabgesetzt von $9,90. Auf Aliexpress finde ich keine, sonst auch 
nichts in den Weiten des Internet.

Ist/war das ein Propagandapreis, der von der Wirklichkeit inzwischen 
eingeholt wurde?
#7406208
Lesenswert?

Bei Taobao finde ich mich nicht zurecht, jedenfalls nicht unter dem angegebenen Link. Sobald ich etwas suche, soll ich mich mit meinem (nicht existenten) Konto einloggen. Bei Aliexpress werden die Teile jetzt auch für unter 20 Cent pro Stück verkauft, wenn man 50 Stück davon abnimmt und ich das Angebot richtig verstehe:

https://de.aliexpress.com/item/1005005036714708.html

Varianten mit weniger Pins für weniger Geld.

Auch Development Boards gibt es:

https://de.aliexpress.com/item/1005005338043150.html

#7406223
Lesenswert?

Der Aliexpress-Link ist sehr interessant, danke dafür! Klar, die Versandkosten verhageln die Bilanz, aber den wenigsten Interessenten hier dürfte es um den letzten Cent Optimierung gehen. Bei Taobao braucht man doch meines Wissens nach einen Buy-Agent, jedenfalls hatte ich das bisher so gemacht. Oder liefern die Händler dort mittlerweile auch direkt nach Europa?

#7406261
Lesenswert?

Dieter R. schrieb:

Bei Taobao finde ich mich nicht zurecht

Die Links funktionieren am Handy oder Tablet nur wenn man im Browser den Desktop Mode einstellt. Der CH32V003 liegt momentan im QFN oder SOP16 bei 0.67 Yuan.

Wie das mit dem Bestellen funktioniert weis ich auch nicht. Das hat ein Bekannter von mir gemacht der auch chinesisch spricht. Die Bauteile sind jedenfalls nach 12 Tagen bei mir im Briefkasten gewesen. (Quer gemischt durch die WCH Palette)

#7427693
Lesenswert?

Wf88 schrieb:

Und selbst für Hobby-Basteleien ist der Preis eines Einzel-Chips auch nicht mehr egal. Ich habe da noch Preisunterschiede vom tiny2313 (~2€) zum AT89C51AC3 (~15€) im Kopf. Als der AC3 dann mal nicht verfügbar war kam der erste mega32 (~5€).

Das kann schneller gehen als man denkt und zack hat man die Familie gewechselt.

Hihihi - hinzu kommt noch die Neugier einfach Mal etwas neues auszuprobieren. Zumal der Einstiegspreis wirklich attraktiv ist und somit das finanzielle Risiko für chinesischen Elektronikschrott in der Ecke überschaubar bleibt.

Wirklich neugierig gegenüber den AVR macht hier eine 32-Bit CPU mit höherer Taktfrequenz, sowie Extras wie eine DMA und eine flexiblere Pin-Zuordnung.

#7427702
Lesenswert?

Als möglicher Nachfolger für den Atmega8, der bei mir in vielen Projekten eingesetzt wird, wäre der CH32V003F4P6 eine interessante Alternative. Daher wurde einfach Mal das CH32V003-LinkE Kit bestellt und noch ein Schwung von den MCU's dazu. https://www.aliexpress.com/item/1005004895791296.html

Für die nackten MCU's fehlt nun nur noch eine kleine Basis-Bastelplatine, die inzwischen ebenfalls fertig ist (siehe Screenshot) und sich bereits in der Fertigung befindet. Diese beinhaltet gegenüber den käuflichen Varianten keine LED und keinen Reset-Taster (diese kann man nämlich bei Bedarf auf die Pinne stecken), sondern dafür auf 40 x 33 mm

  • Einen 8-Bit Port-Expander mit einem HC595, der wiederum mit weiteren Exemplaren in Reihe erweitert werden kann (Rückseite der Platine)
  • Einen einfachen Anschluß (linke 16-polige Pin-Reihe) für ein LCD-Display (z.B. 16x2 Zeichen), der direkt mit dem Port-Expander verbunden ist (und kompatibel zu diesem Adapter ist Beitrag "Re: Pollin Display HB10401")
  • Einen einfachen Anschluß für 4 Taster, ohne das der Datenbus von dem LCD-Display blockiert werden kann (benötigt nur einen weiteren Eingang von der MCU zusätzlich)
  • Ein EEPROM, z.B. AT24C128, mit dem u.a. der Speicher für Konfigurationsdaten und Texte erweitert werden kann
  • Ein 16-Bit Dual DAC (PT8211) der ebenfalls am SPI-Bus hängt
  • Drei zusätzliche 8-Bit PWM-Kanäle über einen WS2811 mit kleinen Treiber-Mosfets, um direkt größere LED'S oder Motoren ansteuern zu können
  • Eine Micro-USB Buchse für die Spannungsversorgung, an der die Datenleitungen wie bei dem USBASP Projekt verwendet werden können (https://www.fischl.de/usbasp/)

Wenn die Platinen da sind und wie vorgesehen funktionieren, wird dieses kleine Projekt noch weiter beschrieben. Vielleicht entwickelt sich diesbezüglich noch eine Zusammenarbeit hier, da das basteln mir mehr Spaß macht als die Programmierung.

Angehängte Dateien:
#7427809
Lesenswert?

Karsten W. schrieb:

Gibt es inzwischen schon Erfahrungen mit der WCH Palette

nur mit einigen der 8 Bit MCUs sowie einem neuen usb CDC Chip. Ich arbeite gerade an einem 5V Design wo ich den CH32F103 benutze weil der mit 5V arbeiten kann und eine zweite USB Schnittstelle hat die den Hostmode kann.

Elektor verkauft übrigens ein CH32V307 RISC Development Board mit angeflanschtem WCH-Link für 20 Euro.

https://www.elektor.com/wch-ch32v307v-evt-r1-risc-v-development-board

#7427825
Lesenswert?

Thomas Z. schrieb:

nur mit einigen der 8 Bit MCUs sowie einem neuen usb CDC Chip.

Das klingt doch bereits nach einiger Erfahrung.

Wie schwierig ist der Umgang / Eingewöhnung mit der Entwicklungsumgebung? Wie groß ist die Umstellung im Vergleich zu STM32 oder ESP?

Was benutzt Du für die Programmierung bzw. was kannst Du empfehlen? Es gibt da z.B. das originale "MounRiver Studio" und Alternativen wie https://github.com/cnlohr/ch32v003fun ?

#7427850
Lesenswert?

Karsten W. schrieb:

Das klingt doch bereits nach einiger Erfahrung.

naja ernsthaft benutzte ich bisher nur die ARMs und x51er von WCH mit Keil. Bei den RISCs führt wohl kein Weg an Mounriver vorbei, insbesondere weil die FW Updates für den WCH-Link dort verteilt werden. (Aktuell ist wohl FW 2.7)

Von diesem WCH Link existieren ja inzwischen einige Versionen https://github.com/openwch/ch32v307/tree/main/WCH-Link

Es existiert wohl auch eine Wireless Version.

Mounriver ist ein chinesisches Eigengewächs was neben WCH auch GigaDevice Chips unterstützt. Die Software ist inzwischen weitgehend übersetzt, manchmal trifft man noch auf Texte in Mandarin. Die IDE basiert halt auf Eclipse mit allen Vor und Nachteilen.

#7448872
Lesenswert?

Es sieht so aus, als würde jetzt auch die Arduino-Welt Einzug halten auf den RISC-V-Controllern von WCH:


How to use

You can add this software package directly on the IDE through the Arduino Boards Manager.

Add the following link in the "Additional Boards Managers URLs" field:

https://github.com/openwch/board_manager_files/raw/main/package_ch32v_index.json

Then you can search for "wch" through the "board manager", find the installation package, and install it.


(Quelle: https://github.com/openwch/arduino_core_ch32)

Dies und diverse andere Repositories von WCH finden sich hier:

https://github.com/openwch?tab=repositories

#7462840
Lesenswert?

Ist schon jemandem aufgefallen, dass der CH32V003F4P6 nicht nur zufällig so ähnlich heisst wie der STM8S003F3P6? Das Pinout ist nahezu perfekt gleich, siehe Anhang. (Pinout des CH32V003F4P6 - gelb markiert sind die STM8S-Anschlüsse) Der CH32V003F4P6 kann in allen Schaltungen mit STM8Sx03F3P6 sofort ohne Änderung der Hardware und des Layouts eingesetzt werden. Nur der Kondensator an VCap (Pin8 des STM8S) muss beim CH32V003 nicht bestückt werden.

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren