Shuntwiderstand Spannungsabfallmessung

Fragestellungen die sonst nicht passen, z.B. Fragen zum Compiler etc.
Antworten
jg.vs
Beiträge: 1
Registriert: Mo 27. Mai 2019, 10:14

Shuntwiderstand Spannungsabfallmessung

Beitrag von jg.vs » Mi 29. Mai 2019, 08:34

Hallo zusammen,

erstens wollte ich sagen, dass ich neu hier bin und deshalb auch nicht weiß ob ich das Thema an die richtige Stelle plaziert habe (darf dann gerne vom Admin verschoben werden).

Also ich bin nicht nur neu hier in der Community, sondern auch auch frisch in Berührung mit dem PSoC 5LP gekommen.

Nichtsdestotrotz habe ich mich mit Tutorials und den Testcodes von Cypress an eine Programmierung gewagt.

Jetzt zum Projekt:

Ich habe einen Labor Photovoltaik-String, bestehend aus 10 Modulen und 10 Bypassdioden (U_oc= 5 V und I_sc= 100mA). Im Stromkreis befindet sich ein Shuntwiderstand mit 0,006 Ohm und ein Verbraucher mit 100 Ohm und nachgeschalteten grünen LED. Über den Spannungsabfall am Shunt möchte ich mir den Strom berechnen lassen. Die Ausgabe möchte ich mir über HTerm anzeigen lassen.

Das Programm und die Ausgabe funktioniert. Leider machen mir die ausgegebenen Werte Probleme.

Das angehängte Bild zeigt im roten Kasten meine Ausgabe ohne Pinbelegung, hier sollte ja im Normalfall für beide 0mV stehen. Und im grünen Kasten die Werte die mir die Messung wiedergibt, allerdings springt das Programm auch nicht in die Ausgabe von Ush2.

Selbst, wenn ich nicht den Laborstring verwende, sondern VDD und GND vom PSoC, dann sollte ein Strom von ca. 25mA fließen. Demnach sollte ich einen Spannungabfall von ca. 0,15mV haben. Da der Spannungsfall sehr gering ist, kann da meine Auflösung nicht stimmen?

Eigentlich ist es eine simple Spannungsabfallmessung, aber ich kann mir nicht begründen wie die ausgegebenen Werte zustande kommen.

Ich hoffe ihr könnt mir helfen.

Vielen Danke euch und sonnige Grüße
jg.vs
Dateianhänge
19.05.29-HTherm Ausgabe_markiert-JG.jpg
19.05.29-HTherm Ausgabe_markiert-JG.jpg (83.39 KiB) 665 mal betrachtet
CE195277_ADC_and_UART01.cywrk.Archive01.zip
(1.14 MiB) 58-mal heruntergeladen

Thomas Barth
Administrator
Beiträge: 90
Registriert: So 5. Apr 2015, 21:46
Wohnort: Frankfurt/M
Kontaktdaten:

Re: Shuntwiderstand Spannungsabfallmessung

Beitrag von Thomas Barth » Mi 24. Jul 2019, 10:49

Ist jetzt zwar schon eine weil her dass du die Frage gestellt hast aber ich möchte mal einen Lösungsansatz geben.

Du startest den ADC und liest dann sofort den Wert, ohne zu gucken ob der ADC schon fertig ist.

Guck dir im Datenblatt des DelSig mal
uint8 ADC_IsEndConversion(uint8 retMode)
an.

Dazu kommt, dass du den ADC im Continious Mode betreibst, dass heißt dass er sobald er eine Messung hat, sofort mit der nächsten beginnt.
So wie ich deinen code (nach schnellem Überfliegen) verstehe, möchtest du aber nur eine Messung je event, daher wäre der 0 - Single Sample mode besser. Guck dir im Datenblatt mal Conversion mode an.

Generell ist es so, dass der ADC dir bei einer einzigen Messung tendenziell ungenau Werte liefert. Eine gängige Methode das herauszufiltern ist es, mehrere samples zu holen und dann einen durchschnitt zu berechnen. Das entspricht einem rudimentären low-pass filter.
Ich würde dir daher folgendes empfehlen:
Der ADC wird einmal am Anfang des Programms im continious mode gestartet und löst jedes mal einen Interrupt (EOC-End of convertion) aus wenn ein neues sample vorliegt. Diese Samples packst du in einen Ringpuffer (Array). Wenn der Benutzer einen Wert lesen möchte, bildest du den durchschnitt der Werte im Puffer und sendest ihn über UART.

Code: Alles auswählen

P_M_DERIVE(T_ALG.E_BH) := UC_16S_EN_16NS (TDB.T_ENTIER_16S
                                   ((1.0/C_M_LSB_BH) *
                                   G_M_INFO_DERIVE(T_ALG.E_BH)))

Antworten