logo elektroda
logo elektroda
X
logo elektroda

Modifikation des LED-Messgeräts V und A auf dem Chip HC32F003 (4 Bit)

wsxcde 12591 20
WERBUNG
Treść została przetłumaczona Polnisch » Deutsch Zobacz oryginalną wersję tematu
  • Modifikation des LED-Messgeräts V und A auf dem Chip HC32F003 (4 Bit)

    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:

    Modifikation des LED-Messgeräts V und A auf dem Chip HC32F003 (4 Bit)

    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
    Über den Autor
    wsxcde
    Niveau 12  
    Offline 
    wsxcde hat 30 Beiträge geschrieben mit der Bewertung 85, und dabei 2 Mal geholfen. Er ist seit 2005 bei uns.
  • WERBUNG
  • #2 18773004
    khoam
    Niveau 42  
    Bravo für dieses Reverse Engineering :) Hat Kollege die "Linearität" der Spannungsmessung im neuen 0-30V-Bereich überprüft?
  • #3 18773120
    metalMANiu
    Niveau 21  
    Herzlichen Glückwunsch und ich schätze es, dass Sie Ihre Arbeit teilen 🙂
  • #4 18773332
    wsxcde
    Niveau 12  
    Die Messung ist, für das Exemplar das ich habe, kalibriert und liefert die korrekten Werte im gesamten Spannungsbereich (es war nicht möglich, sie in der Originalsoftware einzustellen). Ich habe ein Einzelstück des Messgeräts und weiß nicht, wie genau es bei anderen sein wird.
  • #5 18773820
    RomanWorkshop
    Niveau 14  
    Woher kommt "4-Bit" im Titel? Der HC32F003-Mikrocontroller ist 32-Bit (der Kern ARM Cortex-M0+) und verfügt über einen genauen Konverter 12-Bit-ADC (SAR).
  • #6 18774067
    piotr_go
    DIY Elektronikdesigner
    RomanWorkshop hat geschrieben:
    Woher kommt "4-Bit" im Titel?

    Die Chinesen nennen so 4-Zifferanzeigen.
    Warum? Ich habe keine Ahnung.
  • WERBUNG
  • #7 18774108
    wsxcde
    Niveau 12  
    Genau, unter dieser Bezeichnung kann man auf chinesischen Websites danach suchen.
  • #8 18774714
    Anonym
    Niveau 1  
  • WERBUNG
  • #9 18776651
    Duch__
    Niveau 31  
    Lässt es sich etwas in der Originalsoftware über RS ablesen?
  • #10 18777393
    wsxcde
    Niveau 12  
    Der Punkt ist, sendet Software etwas über RS? Nein, die seriellen Anschlussstifte werden für andere Funktionen verwendet.
  • #11 18778510
    Anonym
    Niveau 1  
  • #12 18778668
    wsxcde
    Niveau 12  
    In meinem Programm ist es ähnlich - bei 10 A erscheinen horizontale Linien. Sie müssten das System modifizieren (Größe der Spannungsverstärkung vom Messwiderstand) oder es mit 5 V versorgen (d. h. auch modifizieren) und das Programm ändern.
  • #13 18779036
    Anonym
    Niveau 1  
  • WERBUNG
  • #14 18779620
    wsxcde
    Niveau 12  
    Sogar diejenigen, die bis zu 20 A zeigen sollten, gehen aus? Sie haben im Anhang die Software, die bei bei 20 A ausschaltet. Wie auch immer, der ADC wird früher gesättigt, aber ich denke, daß 12 A angezeigt werden. Der Strom wird mit zwei Dezimalstellen angegeben.
  • #15 18780672
    Anonym
    Niveau 1  
  • #16 18801210
    ElectroTom
    Niveau 25  
    Wie wäre es mit der Genauigkeit dieser Messgeräte?
  • #17 18811377
    wsxcde
    Niveau 12  
    Nach der Kalibrierung ist es in Ordnung. Leider erlaubt der Schaltplan keine vom Hersteller empfohlenen Lösungen, um die Genauigkeit der Messungen zu erhöhen.
  • #18 19629324
    AlexSt
    Niveau 2  
    Hallo wsxcde,
    Vielen Dank für den Artikel und die Dateien!
    Kann ich dir ein paar Fragen stellen?

    Ich muss die ähnlichen Dinge mit einem anderen Gerät tun, das auf dieser HC32F003-MCU basiert. Mit Ihrem Python-Skript konnte ich den Flash der MCU entsperren und mit angehängtem Flasher auch Flash lesen und schreiben.
    Sie sagten, dass Sie es über SWD und JLink debuggen können. Ich habe versucht, eine Bluepill mit JLink fw zu flashen und die Segger JLink-Software (in Ubuntu) zu installieren. Aber leider weiß ich nichts über diesen Chip. Das gleiche ist mit STLink. Können Sie ein paar Worte sagen, wie Sie es geschafft haben, JLink mit dieser MCU zu verbinden?
    Mit welcher Entwicklungs-SW haben Sie eine Firmware für diese MCU entwickelt? Ich habe SDK nur für Keil/EWW gefunden, aber ich kann keines davon verwenden.
  • #19 19777878
    wsxcde
    Niveau 12  
    Hallo AlexSt.

    Ich war lange nicht hier und habe diesen Beitrag nicht bemerkt.
    Wenn es noch gültig ist, versuche ich zu helfen.
  • #20 19780761
    AlexSt
    Niveau 2  
    Hallo wsxcde,

    Derzeit habe ich das Problem gelöst, indem ich den Chip durch STM8L103 ersetzt habe, der Pin-to-Pin-kompatibel ist, und eine Firmware geschrieben.
    Aber ich denke, alle Details können für jeden sehr hilfreich sein, der versucht, HC32-Chips zu programmieren.
  • #21 19781594
    wsxcde
    Niveau 12  
    Ich habe das IAR verwendet. Das CPU SDK ist z.B. hier erhältlich:
    https://github.com/yanjainxiong/HDMCU_ZLG/tree/master/HC32F003_SDK
    Es gibt Konfigurationsdateien für die IDE, Beispielprogramme, eine vollständige Pinbelegung und eine Prozessordokumentation.
    Ich habe mich über SWD mit dem System verbunden (Pinbelegung in der Dokumentation, auf dem Foto sind dies die 5 Löcher senkrecht auf der linken Seite der Platine).

    Wie man ich einen J-Link-Adapter erstellt, wie verbindet man ihn? Ich weiß nicht, vielleicht suchen nach:
    Делаем из BluePill пограмматор/отладчик JLink OB-STM32F103
    Offizielle Dokumentation des J-Link-Adapters:
    https://www.segger.com/downloads/jlink/UM08023_JLinkOBSTM32F103.pdf
    [F]

Themenzusammenfassung

Die Diskussion dreht sich um die Modifikation eines LED-Strom- und Spannungsmessgeräts, das auf dem Mikrocontroller HC32F003 basiert. Der Benutzer stellte fest, dass die Messfrequenz unter den angegebenen 3 Hz lag, was für seine Anwendungen unzureichend war. Nach dem Versuch, über den SWD-Anschluss eine Verbindung herzustellen, entschied er sich, die Firmware neu zu schreiben, da der Flash-Speicher gesichert war. Die Teilnehmer diskutieren die Kalibrierung der Spannungsmessung, die Nomenklatur des Geräts (4-Bit vs. 32-Bit) und Probleme mit der Anzeige bei Überschreitung des 10A-Bereichs. Es wurden Lösungen zur Modifikation des Shunts und zur Anpassung der Firmware vorgeschlagen, um die Messgenauigkeit und den Bereich zu verbessern. Einige Teilnehmer berichteten von ihren Erfahrungen mit der Programmierung des HC32F003 und der Verwendung von J-Link zur Verbindung mit dem Mikrocontroller.
Vom Sprachmodell generierte Zusammenfassung.
WERBUNG