Basteleien

WCH – CH32V003F4P6, CH32V203C8T6 und WCH-LinkE

Beschaffung

In dieser Woche ist das im offiziellen Shop von WCH bei Aliexpress (Nanjing Qinheng Microelectronics Co., Ltd – WCH ist deren Marke und bedeutet „WinChipHead“) bestellte CH32V003/203-LinkE Kit eingetroffen. Bezahlt habe ich mit Paypal, abgebucht wurden 19,86 €.
Die Lieferung erfolgte sehr schnell. Alles ist gut und antistatisch verpackt.
Es ist ein WCH-LinkE enthalten, je eine Testplatine (EVT) mit einem CH32V003 bzw. einem CH32V203 sowie fünf Stück vom CH32V003F4P6 und fünf Stück vom CH32V203C8T6.

Software

Die als Entwicklungsplattform empfohlene Mounriver-IDE ist gut überschaubar, erst recht, wenn man bereits Erfahrungen mit etwas größeren IDEs z.B. auf Eclipsebasis hat. Die Installation verlief problemlos. Die IDE selbst ist komplett in Englisch benutzbar. Für beide EVT-Platinen sind z.T. umfangreiche Software-Beispiele zum Download verfügbar: CH32V003-EVT und CH32V203-EVT.

Informationsquellen

Sowohl für den LinkE als auch für die Controller (datasheet, reference manual) sind englischsprachige PDF verfügbar. Für die beiden EVT-Platinen sind ebenfalls Schaltpläne verfügbar.
Es gibt auf der Webseite von WCH sogar Videos zur Schulung, leider in Chinesisch.

praktische Erfahrungen

Der WCH-LinkE ist mit einem Klarsichtgehäuse gekapselt. Leider ist er dadurch zu breit für nebeneinander liegende Notebook-USB-Slots.

Die EVT-Platinen sind saubere Elektronikentwicklung, gut strukturiert und das unbedingt nötige Equipment ist auf der Platine. (Ein-Aus-Schalter und E/A-LED, Reset, USB-C-Buchse als Stromversorgung, zwei an VDD angeschlossene LED mit Vorwiderständen und Pinheadern; alle Anschlüsse des µCs sind ebenfalls auf Pinheader gelegt)
Die einzige kleine Hürde beim Start war zunächst, welche Pins des Entwicklungsboards man denn mit dem WCH-Link verbinden muss, um den Chip zu flashen und die Programme dann debuggen zu können. Nur mit SWIO und VCC/GND funktionierte es zunächst nicht. Erst mit RST und RX, TX dazu ging es dann.


Nachdem das erledigt war, lief das selbst compilierte und geflashte Beispielprogramm (GPIO_Toggle) sauber durch. Die LED blinkt jetzt auf einem 48 MHz 32-Bit Risc-V Controller. 🙂 Hinweis: Die Controller auf den Boards enthielten im Auslieferungszustand kein erkennbares Demo-Programm.

Debugging * auf der Hardware! * mit dem integrierten Open-OCD – übrigens vollständig transparent für den Nutzer, d.h., ohne Kenntnisse von Open-OCD nutzbar – war ganz problemlos möglich.

Kleiner Hinweis am Rande: Der CH32V003F4P6 passt übrigens nahezu perfekt als Ersatz für den STM8Sx03F3P6, wenn man das Pinout betrachtet.

GDCPH mini heating table

Dieses Gerät habe ich über Ebay aus China für 23,79 € inkl. Lieferkosten gekauft: Digital Adjustable Constant Heating Table Welding Mini Hot Plate Preheater Table

Die Konstruktion ist etwas wacklig (Schrauben lockern sich) und das Gehäuse kippelt, weil die Schrauben unten nicht gleichmäßig angezogen sind und das Ganze auf den Schraubenköpfen steht. Insgesamt wirkt es wie ein durchaus gediegener Bastleraufbau. Das Kunststoffgehäuse ist 3D-gedruckt oder per Spritzguss hergestellt.

Alle weiteren Bauteile sind Platinen. Die Heizfläche ist eine Platine mit Aluminiumträger. Man sieht auf den Fotos deutlich die Heizwendel. Kontaktiert wird die Heizplatine mit Pogopins (Kontaktstifte mit interner Feder).

Die Temperatursteuerung erfolgt über einen STC (8051-core), der das 0,91 Zoll OLED-Display, einen von unten an die Heizplatine angeklebten Temperaturfühler und die Heizplatine über einen MOSFET betreibt. Der weitere Schaltkreis CH224K ist ein USB-PD-Controller.

Das Menü wird im Wesentlichen nur in chinesischen Schriftzeichen angezeigt. (Ausnahmen: „PID“ und „return“) Die Bedienung ist auf dem Lieferkarton aufgedruckt, siehe Fotos.

Die eingestellte Temperatur wird genau gehalten und stets korrekt angezeigt, soweit ich das mit meinen Messmitteln überprüfen konnte.

Die Heizfläche ist mit 5,5 cm x 5,5 cm deutlich größer als beim MHP 30. (nur 3 cm x 3 cm) Das Aufheizen erfolgt zügig.

Tests mit dem BLE Bluetooth Modul JDY-23

Wie im Februar bereits geschildert, gibt es zu diesem Modul ein Datenblatt, welches eine äußere Beschaltung mit Tastern und LED bereithält und auch die wesentlichen Kommandos (AT-Befehle) bzw. die Bedienung über Bluetooth aufzeigt. Das nährte bei mir die Hoffnung, dass man hier ein autarkes Modul ohne gesonderten Mikrocontroller hat, mit welchem man digitale Eingänge abfragen bzw. digitale Ausgänge schalten kann. Es gibt sogar eine rudimentäre App im Google-Store für genau diese Steuerung. Daher hatte ich im Dezember 2022 über Ebay 10 Stück bestellt und mir im Februar 2023 eine Platine dazu entworfen und am 04.02.2023 bei Oshpark bestellt. 3 Stück wurden produziert, die ich dann am 01.03.2023 erhalten habe.


Leider haben die Hersteller die Firmware (Abfrage mit AT+VER) bei meinen Modulen geändert auf „+VER:JDY-23-V81-02“. Diese Version enthält nicht mehr die Bluetooth-UUID „FFE2“, mit der man die IO-Ports steuern bzw. abfragen kann. Alle anderen Abfragen (transparenter, bidirektionaler, serieller Kanal) sind noch vorhanden, d.h., in Verbindung mit einem Mikrocontroller ist das Modul gut nutzbar. Die erwähnte Handy-App für dieses Modul stürzt nach Verbindung mit dem Modul allerdings sofort kommentarlos ab.

Meine Leiterplatte ist damit überflüssigdimensioniert, da die Funktionen zur LED-Steuerung nicht mehr vorhanden sind.


Allerdings funktioniert, wie bereits geschrieben, der transparente Modus, d.h., das Modul ist als Übertragungsweg zum Handy nutzbar. Nur benötigt man einen Mikrocontroller, der seriell die Kommandos entgegennimmt und im Gegenzug zum Beispiel Meßdaten o.ä. übermittelt. Hilfreich hierfür sind die Handy-Tools von Nordic und die App serial bluetooth terminal von Kai Morich. (Im Google-App-Store zu finden)

Dann teste ich jetzt, was hier machbar ist. Auch die App-Programmierung ist noch ein offenes Thema.

erste Übungen mit dem PIC18F2520

Beim Experimentieren mit den PIC18F (und allen Controllern mit PGM-Anschluss und LVP) sollte man das Konfigurationsbit LVP auf OFF setzen. (default ist es auf ON!) Tut man das nicht, muss man im Normalbetrieb den PGM-Anschluss auf GND ziehen, sonst läuft der PIC nicht, siehe Punkt 4:

Auszug aus dem Datenblatt

Zur Verdeutlichung: Ist der Pickit3 o.ä. angeschlossen, läuft alles. Zieht man ihn ab, geht nichts mehr.

Ich habe bei der Fehlersuche meine Stromversorgung dreimal überprüft, den Pullup an /MCLR nachgemessen und die Lötungen geprüft, getestet, ob ich /MCLR vom Pickit abziehen kann (das ging problemlos, also kein Reset-Problem), ob ich VDD target vom Pickit abziehen kann, ging problemlos. Masse (VSS Ground) abziehen ging dann nicht mehr.

Vielleicht hilft diese Erfahrung ja jemandem, der gerade anfängt, so wie ich. 🙂

Bluetooth-Modul JDY-23

Dieses Modul ist aktuell im 10-er Pack für ca. 1,60 €/Stück bei Ebay erhältlich. Der Schaltkreis ist vermutlich ein TLSR8266(F512?), kein CC2541 und kein BLE 5.0, wie beworben.

Bild eines JDY-23-Moduls, Oberseite
JDY-23-Modul

Im Internet habe ich zu diesem Modul ein englisches Datenblatt gefunden, welches eine äußere Beschaltung mit Tastern und LED bereithält und auch die wesentlichen Kommandos (AT-Befehle) bzw. die Bedienung über Bluetooth aufzeigt. Damit kann man digitale Eingänge abfragen bzw. digitale Ausgänge schalten. Die Steuerung erfolgt über Bluetooth-Charakteristiken entweder über die Nordic-Handytools oder über eine eigene App. Im Googlestore scheint es sogar schon eine passende App für dieses Modul zu geben, JDY-23 OUTPUT CONTROLLER siehe auch hier: https://github.com/HIT-Circuits/JDY-23-projects

Daher hatte ich im Dezember 2022 über Ebay 10 Stück bestellt und mir jetzt diese Platine dazu entworfen:

Ich habe verwendet, was gerade da war, also China-0603-LED, China-0805-Widerstände und China-SMD-Taster. Der Anschluss erfolgt über eine Pfostenleiste. Da Oshpark nur drei Platinen liefert und bei kleinen Flächen sehr günstig ist, bestelle ich jetzt dort.

Prototype-Board STM8S003F3P6

Nach dem STM8S105 Prototype Board (siehe hier) folgt nun das STM8S003-Board. 

Auch hier wollte ich die Pins nach Möglichkeit nach Funktion herausziehen. Außerdem hatte ich noch einige RGB-LED im PLCC-Design herumzuliegen. Auch hier wird ein Resettaster vorgesehen, Quarz-Bestückung möglich, ein Encoder-Anschluss, I2C, Analog-Eingänge, eine serielle Schnittstelle und natürlich SWIM/NRES zum Programmieren.

Schaltplan
Schaltplan

Das Layout wurde diesmal zu oshpark geschickt, da kleine Layouts dort signifikant billiger sind.

Layout
Layout

Leider wurden bei der Produktion die Bezeichnungen für die Stiftleisten (value) nicht mitgedruckt. Das war mein Fehler, aus Faulheit habe ich die BRD-Datei geschickt, statt die Gerber-Dateien zu erstellen.

fertige, unbestückte Platine von oben
fertige, unbestückte Platine von oben
fertige unbestückte Platine von unten
fertige unbestückte Platine von unten
bestückte Platine von oben
bestückte Platine von oben
bestückte Platine von unten
bestückte Platine von unten

Prototype-Board STM8S105S4T6C

Ich hatte schon lange vor, mir ein Prototype-Board auf Basis eines STM8S zu schaffen. Da ich mit dem STM8S105 schon Übung hatte, (siehe Weihnachtsbaum) war dies der erste Kandidat dafür.

Die Anschlüsse sollten nach Funktion geordnet auf Stiftleisten herausgeführt werden. Eine Resettaste sollte vorhanden sein, es sollte die Möglichkeit bestehen, eine separate analoge Speisespannung zuzuführen und ein externer Quarz sollte bestückbar sein, I2C mit Pullups und mehreren Anschlüssen, eine serielle Schnittstelle, eine Display-Schnittstelle, SPI-, PWM-, und Analog-Ports sowie SWIM/NRES als Programmierschnittstelle.

Schaltplan
Schaltplan
Layout
Layout

Die Leiterplatten wurden bei Elecrow gefertigt, siehe Fotos. 

Eingang der unbestückten Leiterplatten von Elecrow
Eingang der unbestückten Leiterplatten von Elecrow
voll bestücktes Entwicklungsboard
voll bestücktes Entwicklungsboard