
Hallo alle
Vor einiger Zeit habe ich auf der chinesischen Website einen LED-Strom- und Spannungsmesser (4 Bit, 0-100 V, 0-10 A) gekauft. Gemäß der Beschreibung sollten Werte mit einer Häufigkeit von 3 Mal pro Sekunde bereitgestellt werden. Es stellte sich anders heraus, d. h. es gab weniger als einmal pro Sekunde, was für meine Anwendungen nicht akzeptabel war.
Das Messgerät basiert auf dem Prozessor HC32F003. Auf chinesischen Websites fand ich vollständige Dokumentation, SDK und Dienstprogramme für diesen Prozessor. Ich beschloss, mit ihm zu spielen.
Der Versuch, eine Verbindung mit dem SWD-Anschluss herzustellen, ist fehlgeschlagen. Dies sollte über die serielle Schnittstelle erfolgen. Es hat funktioniert, aber der Flash konnte nicht gelesen werden - er war gesichert. Eines blieb also übrig: den Flash löschen und Software von Grund auf neu schreiben, was ich auch getan habe. Übrigens, habe ich die Schaltung so modifiziert, dass sie 0-30 V misst. Schaltplan:

Auf welche Schwierigkeiten bin ich gestoßen? Ein spezielles Programm hat meinen Prozessor auf keinem USB-Adapter erkannt - seriell (ich habe es mit PL2303 und CH340 versucht). Das Programm FlyMcu hat den PL2303-Chip erkannt, aber ich kann mich nicht erinnern, warum ich es nicht zum Löschen des Chips verwendet habe (es hat ihn nicht zugelassen?). Schließlich habe ich Flash auf einem Linux-Computer mit einem Python-Programm gelöscht. Jetzt hatte ich vollen Zugriff auf die CPU. Ich habe es über den bereits aktiven SWD-Port mit J-Link programmiert und debuggt (wie man einen J-Link-Adapter mit Blue Pill herstellt, finden Sie im Netzwerk).
Aufgrund meiner Versuche (ich bin kein Programmierer) habe ich ein Messgerät, das sehr schnell Werte liefert und dies genauer als mit der ursprünglichen Software tut. Die Messfrequenz kann durch Ändern des Bytes in der Datei flash.bin unter dem Offset 0xbee (im Bereich von 1-255) geändert werden.
Enthaltene Software und Flash-Batch.
Ich grüße alle.
Cool? DIY-Rangliste