Elektroda.de
Elektroda.de
X

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

wsxcde 10974 20
This content has been translated flag-pl » flag-de View the original version here.
  • 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 83 geschrieben, und dabei 2 Mal geholfen. Er ist seit 2005 bei uns.
  • #2
    khoam
    Niveau 41  
    Bravo fĂŒr dieses Reverse Engineering :) Hat Kollege die "LinearitĂ€t" der Spannungsmessung im neuen 0-30V-Bereich ĂŒberprĂŒft?
  • #3
    metalMANiu
    Niveau 20  
    Herzlichen GlĂŒckwunsch und ich schĂ€tze es, dass Sie Ihre Arbeit teilen 🙂
  • #4
    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
    RomanWorkshop
    Niveau 12  
    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
    piotr_go
    DIY Elektronikdesigner
    RomanWorkshop hat geschrieben:
    Woher kommt "4-Bit" im Titel?

    Die Chinesen nennen so 4-Zifferanzeigen.
    Warum? Ich habe keine Ahnung.
  • #7
    wsxcde
    Niveau 12  
    Genau, unter dieser Bezeichnung kann man auf chinesischen Websites danach suchen.
  • #8
    Der Benutzer hat das Konto gelöscht
    Niveau 1  
  • #9
    Duch__
    Niveau 31  
    LĂ€sst es sich etwas in der Originalsoftware ĂŒber RS ablesen?
  • #10
    wsxcde
    Niveau 12  
    Der Punkt ist, sendet Software etwas ĂŒber RS? Nein, die seriellen Anschlussstifte werden fĂŒr andere Funktionen verwendet.
  • #11
    eurotips
    Niveau 39  
    Ich habe auch ein gekauft und bin sauer auf eine andere Sache: das Verschwinden der aktuellen Anzeigen nach Überschreiten des 10A-Bereichs.
    Vielleicht noch hier basteln und eine Chance fĂŒr den Bereich 0-20A geben?
  • #12
    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
    eurotips
    Niveau 39  
    Dies kann durch Ersetzen des Shunts erfolgen, da ich dies immer tue, um nicht zwei in Reihe zu schalten, wenn das Stromversorgungs-/Lademodul einen eigenen Shunt hat. Sie mĂŒssen nur noch den Bereich Ă€ndern/wechseln.
    Wie bei der CC-Stromversorgung der Shunt einen anderen Wert als beim AV-Modul hat, korrigiere ich die VerstĂ€rkung des LM321/LM358 in der Eingangsstufe, indem ich einen Widerstand austausche und mit dem vorhandenen Trimmpotentiometer kalibriere. Nun, aber ohne das Programm zu Ă€ndern, schrĂ€nkt mich die Reichweite immer ein, das LadegerĂ€t gibt ein Maximum von 12A und ĂŒber 10A gehen die Anzeigen aus. Nur bei einem, der von mir getesteten Dutzend, geht die Anzeige nicht aus.
  • #14
    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
    eurotips
    Niveau 39  
    Ich habe nur ĂŒber diejenigen im Bereich von 0 bis 10 A geschrieben, dass nur ein von etwa einem Dutzend EinzelstĂŒcke nach Überschreiten des Bereichs nicht erlischt.
    Es ist sehr schwierig, VA mit einem Strom von bis zu 20 A zu diesem Preis zu kaufen. Normalerweise sind sie mit einem externen Shunt und viel teurer.

    Vielen Dank fĂŒr die Firmware, ich werde es versuchen, weil ich die AusrĂŒstung dafĂŒr habe. Zum vollen GlĂŒck brauche ich eine Modifikation, die den Bereich ohne ADC-ÜbersĂ€ttigung vergrĂ¶ĂŸert, d. h. den Shunt durch einen mit doppelt weniger Widerstand ersetzen. Praktisch der zweite Shunt, der parallel geschaltet ist - im Programm bedeutet dies die Multiplikation der aktuellen Anzeige mit zwei und erhöht den Messbereich auf 20A.
    Ich habe nur zwei VA auf einem solchen Prozessor, der Rest ist auf dem STM8F103.
  • #17
    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
    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
    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
    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
    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]