Ich möchte mit einem AVR Ströme von 0,1 bis 100mA messen.
Die Auflösung (sowie die Genauigkeit) sollte bis 10mA bei 0,1mA liegen, von 10 bis 100mA genügen mir 1mA.
Den Shunt möchte ich wegen des Spannungsabfalls möglichst klein halten, da der Verbraucher mit nur 0,8 bis 1,3 Volt versorgt wird. Ich dachte an 0,1 Ohm.
Meine Frage: Kann ich einfach zwei ADC-Eingänge eines handelsüblichen AVRs verwenden und den Strom aus der Spannungsdifferenz berechnen? Oder machen mir Störungen meine Messung der geringen Spannungsdifferenz zunichte?
Sicher eine blöde Frage, aber ich habe so was noch nie gemacht.
Es gibt AVRs mit umschaltbarem Verstärker am ADC, ATTiny45/85 als kleinster Vertreter. Der hätte 1× oder 20× Verstärkung, damit könnte man eine Messbereichsumschaltung machen. Ob das für die gewünschte Auflösung reicht, und ob dein Shunt klein genug wird, kannst du für deinen 0.1er Vorschlag ja mal ausrechnen.
ich würde erst mal die geringe Spannung, die am Shunt abfällt, mittels eines OPV in nichtinvertierender Schaltung verstärken, um sie dann erst auf den ADC-Eingang zu geben. DAfür habe ich mir z.B. MCP6002 ausgesucht, wobei ein Offsetabgleich nicht verkehrt wäre. Allerdings gibt es bessere Typen, was niedrige Offsetspannung angeht.
Parallel zum Shunt würde ich noch antiparellele Dioden vorsehen.
Ich würde die Spannung am Shunt in 2 oder 3 parallele OP-Verstärkerstufen geben (z.B. *200, *2000, *20000) und das mit je einem ADC-Eingang auswerten. Gerne mit Trimpotis in Reihe zum manuellem Abgleich.
Gerne mit Trimpotis in Reihe zum manuellem
Abgleich.
Den EEPROM darf man ruhig benutzen und Gain+Offset für jeden Bereich als float abspeichern.
Ich habe in einem Projekt auch eine manuelle Kalibrierung einprogrammiert. Dazu muß man über die UART den Meßwert für 2 Spannungen eingeben und der MC berechnet daraus Gain+Offset (Geradengleichung). Ob der kleinere Wert zuerst kommt, ist egal, float rechnet ja signed. Man muß natürlich den ADC-Wert (unsigned) vor der Berechnung nach float casten.
Mit einem Store-Kommando werden sie im EEEPROM abgelegt, optional mit String (Name, Datum).
Auf 0,1mA kommt der glaube ich nicht, ebensowenig der CT220 den ich gern verwende. Vielleicht lässt sich ja noch was an den Ansprüchen drehen :)
Als Controller einer Selbstbaulösung mit Shunt könnte ich Dir die neuen, analog-affinen AVR-EA 8Bitter mit Differential 12Bit ADC + 16fach PGA Verstärker ans Herz legen.
: Kann ich einfach zwei ADC-Eingänge eines handelsüblichen AVRs
verwenden und den Strom aus der Spannungsdifferenz berechnen
Nein.
0.1mA an 0.1 Ohm sind 10uV, wenn deine ADC Eingänge bis 1.3V messen müssen und 10 bit Auflösung haben lösen sie nur 1.3mV auf.
Das hättest du aber selber ausrechnen können.
Moderne AVR bieten PGA Differenzverstärkereingänge und 12 bit ADC, und können die die Differenz von bis zu 10mV am shunt direkt messen und z.B. um 16 auf 0.16V verstärken und daher 16uV am shu t auflösen. Reicht auch nicht ganz.
Daher ist ein externer OpAmp besser. Oder gar ein externer ADC
Ich möchte mit einem AVR Ströme von 0,1 bis 100mA messen.
Das geht schon. Ich habe mal die Differential-Messung eines T861 mit der maximalen Verstärkung V=32 untersucht:
Beitrag "Re: ADC-Differential-Messung"
Bei dem gemessenen Tiny861 war der Fehler unter einem Rohwert, wenn man nicht die Rohwertgrenzen voll ausnutzt. Weiter oben in dem Threat ist ein Beispiel für eine Strommessung.
Bei Vref=1,1V würde ein Shunt von 0,33 Ohm passen.
Ich würde die Spannung am Shunt in 2 oder 3 parallele
OP-Verstärkerstufen geben (z.B. *200, *2000, *20000) und das mit je
einem ADC-Eingang auswerten. Gerne mit Trimpotis in Reihe zum manuellem
Abgleich.
Das scheint die für mich am einfachsten umzusetzende Lösung. Die Verstärkung kann ich ja auch umschalten. Meine Befürchtung ist aber immer noch, dass ich mir bei den wenigen µV irgendwelche Störungen mit verstärke und nur ein Gezappel am Ausgang herauskommt.
Eine Option wäre für mich auch irgendein fertiges Modul, das ich mit dem AVR auslesen kann (auch RS232). Das sollte dann aber ohne Modifikation verwendbar sein. Die INA... Stromsensoren hatte ich mir schon angesehen.
Das geht schon. Ich habe mal die Differential-Messung eines T861 mit der
maximalen Verstärkung V=32 untersucht:
Beitrag "Re: ADC-Differential-Messung"
Bei dem gemessenen Tiny861 war der Fehler unter einem Rohwert, wenn man
nicht die Rohwertgrenzen voll ausnutzt. Weiter oben in dem Threat ist
ein Beispiel für eine Strommessung.
Bei Vref=1,1V würde ein Shunt von 0,33 Ohm passen.
Danke für den Tipp. Ich habe bei mir ja Bedenken wegen Störungen, sehe aber dass du 100uF und 4k7 am Eingang hast. Schnell muss meine Messung übrigens nicht sein.
Edit: Ich mache einfach mal einen Versuchsaufbau mit einem OpAmp und einem Shunt. Dann melde ich mich ggf. wieder.
Eine Option wäre für mich auch irgendein fertiges Modul, das ich mit dem
AVR auslesen kann (auch RS232). Das sollte dann aber ohne Modifikation
verwendbar sein.
Eine Option wäre für mich auch irgendein fertiges Modul, das ich mit dem
AVR auslesen kann (auch RS232). Das sollte dann aber ohne Modifikation
verwendbar sein.
Es kann ja nicht schaden, mir die Schaltung mal anzusehen.
Zur Zeit messe ich die Ströme mit zwei 34401A und die Spannung mit einem weiteren. So genau brauche ich es gar nicht. Um nicht jedes mal alles aufzubauen zu müssen, wollte ich mir eine kompakte Stand-alone-Lösung bauen.
Ich habe eben nachgesehen, LM662CN und TS27M4CN hätte ich da. Ein 0,1 Ohm Widerstand sollte sich auch auffinden lassen. Mit denen kann ich das ja erst mal testen.
Es kann ja nicht schaden, mir die Schaltung mal anzusehen.
Der hat allerdings manuell umschaltbare Shunts. Es gibt da aber auch eine Abwandlung mit automatisch zuschaltenden Shunts ...
Ich würde auch immer eher Strom so in Spannung wandeln, dass man dann Oszilloskop oder Picoscope o.ä. benutzen kann, ohne dass da noch ein AVR zwischenhängt.
Das auch. Er hat 3 Bereiche. Deinen Bereich bekommt der TO vermutlich
noch so hin,
Das ist nicht „mein“ Bereich. Und wenn Du von mA schreibst gehe ich auch davon aus dass Du mA meinst, also auch den entsprechenden Messbereich des Moduls.