Forum: Mikrocontroller und Digitale Elektronik Elektronische Last mit ATmega16HVB?


von Matthias W. (matt007)


Lesenswert?

Ich möchte eine einfache elektronische Last aufbauen
um Batterien zu testen. Dazu gibt es ein Projekt
Circuit Cellar Entry# A3746 - Battery sAVR
mit einem AVR Tiny26.

Der Tiny hat mir etwas zu wenig Pins und ich
überlege daher etwas größeres zu nehmen.
Ideal wäre ein ATMEGA8 im DIP mit 12bit ADC
oder besser. Aber so was gibts ja nicht.

Nun habe ich gesehen, daß es von Atmel diese
atmega16HVB gibt. Die haben 12bit ADC und sogar
noch mehr bits für die Strommessung eines Shunts.

Hat jemand Erfahrung mit diesen Teilen?
Taugt das für eine solche Last-Anwendung?

Eine andere Möglichkeit wäre ein MSP430.
Die gibt es mit 12 oder 16bit ADC und mit
12bit DAC.

Matthias

von I. L. (Gast)


Lesenswert?

Matthias W. schrieb:
> Taugt das für eine solche Last-Anwendung?

Von welchen Leistungen sprechen wir hier eigentlich?

Ich würde den Sollwert mittels PWM-bilden (über ein RC), anschließend 
auf einen passenden Level verstärken und dann einen OPV den eigentlichen 
Regler bilden lassen.

Wie genau solls denn sein? LEM hat auch hübsche Stromwandler 
(z.B.LTSR-6/15/25) im Programm, wenn dein Budget das zulässt!?


Gruß Knut

von Kevin K. (nemon) Benutzerseite


Lesenswert?

10 Bit Auflösung reichen dir. Die Strommessung wird bei dir über Shunts 
oder Hallsensoren laufen. Diese haben in den benötigten Leistungsklassen 
Toleranzen von in der Regel 0,5-1%. Mit etwas Kalibrierung kommst du 
vielleicht noch etwas besser weg, aber 1% vom Skalenendwert sind schon 
die 10 LSB deines ADC. Du wirst ja mit Sicherheit einen Vierleiter-Shunt 
nehmen und dann mit einem Messverstärker die Spannung auf den 
Eingangsspannungsbereich deines ADC verstärken. Selbst bei einer 
Spannungsmessung mit 0,1% Genauigkeit (immer vom Skalenendwert zu 
verstehen) hast du die üblichen 0,1%-Widerstände ausgeschöpft. Wenn du 
eine höhere Auflösung brauchst, werden gleich sehr viel höhere Ansprüche 
u.a. an deine Referenzspannung gestellt. Wenn du so weit bist, kommst du 
um externe ADC und DAC nicht drum herum.

von Matthias W. (matt007)


Lesenswert?

I. L. schrieb:
> Von welchen Leistungen sprechen wir hier eigentlich?

gedacht habe ich an 200W. 400W wäre schöner.
Nur braucht man dazu dann teure Kühltechnik etc.

> Ich würde den Sollwert mittels PWM-bilden (über ein RC), anschließend
> auf einen passenden Level verstärken und dann einen OPV den eigentlichen
> Regler bilden lassen.

das ist möglich. Notfalls kann auch ein
Modul von ELV verwendet werden. Dies müsste
dann halt auf 200W aufgemotzt werden.

> Wie genau solls denn sein?

1-3% wäre schon ok. Ein Abgleich per Software
ist ja denkbar. Im Vordergrund steht das Lernen
über die Akkus anhand der Messungen.

> LEM hat auch hübsche Stromwandler
> (z.B.LTSR-6/15/25) im Programm, wenn dein Budget das zulässt!?

denkbar ist es schon so was einzusetzen.
Von Lem habe ich ein paar LTS25-NP.
Wie gut diese in so einer Anwendung gehen
muss sich zeigen.

Wenn die Ströme sehr klein sind wird es
wohl schwer oder es muss eine Messbereichs-
umschaltung rein.

Matthias

von Matthias W. (matt007)


Lesenswert?

Kevin K. schrieb:
> 10 Bit Auflösung reichen dir.

mal sehen.

> Mit etwas Kalibrierung kommst du
> vielleicht noch etwas besser weg, aber 1% vom Skalenendwert sind schon
> die 10 LSB deines ADC.

eben. Ein wenig knapp scheint mir das schon.
Eine neue chinesische Last verwendet wesentlich
mehr bit für die Wandler. Natürlich habe ich
keine extremen Anforderungen. Es ist jedoch
eine Menge Aufwand was aufzubauen. Da überlegt
man dann schon ob nicht 1-2 bit mehr machbar sind.
Daher ja die Idee so einen Baustein zu nehmen
der 12 bit ADCs hat.

> Du wirst ja mit Sicherheit einen Vierleiter-Shunt
> nehmen und dann mit einem Messverstärker die Spannung auf den
> Eingangsspannungsbereich deines ADC verstärken.

Es ist denkbar 2 ADC-Kanäle zu nehmen.
Dann kann man mit einer Differenzbildung schauen.

> Selbst bei einer
> Spannungsmessung mit 0,1% Genauigkeit (immer vom Skalenendwert zu
> verstehen) hast du die üblichen 0,1%-Widerstände ausgeschöpft.

extreme Ansprüche würden zu teuer und zu
lange dauern. Das tue ich mir erst mal nicht an.
Erst wenn es dazu einen Auftrag gäbe . . .

Matthias

von Kevin K. (nemon) Benutzerseite


Lesenswert?

Scheinbar willst du einen Shunt direkt an den ADC schließen. Damit 
machst du dir keine Freude. Kannst dir ja mal ausrechnen, wenn du von 
200W bei einem Akku sprichst, der meinertwegen 24V hat, dann kommst du 
auf einen Messbereich von 10A. Übliche ADC haben 5V Eingangsspannung. Um 
den ADC voll auszunutzen müssen also 5V über dem Shunt abfallen, die 
dann für eine Verlustleistung von 50W sorgen. Hochlastwiderstände, die 
sowohl 50W abkönnen und auch unter Vollast noch 1% Toleranz haben, sind 
eher teuer. Besser wäre beispielsweise ein Shunt, der statt 0,5 Ohm nur 
0,01Ohm hat. Dann erwärmt er sich um 1W. Unter Vollast fallen aber nur 
0,1V an ihm ab, von den (rund) 1000 Schritten eines 10Bit ADC nutzt du 
nur 20 Stufen. Ein  Operationsverstärker, der um Faktor 50 verstärkt 
macht dir den kompletten Aussteuerbereich nutzbar. 12Bit machen das 
Problem auch kaum besser.

von Matthias W. (matt007)


Lesenswert?

Kevin K. schrieb:
> Scheinbar willst du einen Shunt direkt an den ADC schließen.

Hallo Kevin, das muss nicht zwingend so sein.
Wenn ich den atmega16HVB nehme so würde
das Sinn machen, denn dies ist wohl ein differentieller
18bit ADC.

Die andere Idee wäre einen Shunt zu nehmen und
mit einem OpAmp das obere Ende zu verstärken
und das untere Ende evtl. noch mehr zu verstärken.
So kann ich die Spannung am Shunt in 4-Leitertechnik
erfassen.

Die Akkus werden wohl eher 12V haben und 20A.

> dann für eine Verlustleistung von 50W sorgen. Hochlastwiderstände, die
> sowohl 50W abkönnen und auch unter Vollast noch 1% Toleranz haben, sind
> eher teuer.

das ist mir schon klar. Daher strebe ich diesen
Weg nicht an. Allein dies zu kühlen scheint mir
nicht so trivial.

> Besser wäre beispielsweise ein Shunt, der statt 0,5 Ohm nur
> 0,01Ohm hat. Dann erwärmt er sich um 1W.

man muss sehen wie man den günstigsten Kompromiss findet.
Wenn der Shunt extrem niederohmig ist so ist auch
der Abfall sehr klein und bei kleinen Strömen
rauscht es dann wie die Seuche. Es gibt leider
Lasten am Markt wo das so ist. Ich mag das nicht.
Dann lieber mehr Verluste oder ein LEM. Mal schauen.
Vielleicht auch eine Messbereichsumschaltung.

> Unter Vollast fallen aber nur
> 0,1V an ihm ab, von den (rund) 1000 Schritten eines 10Bit ADC nutzt du
> nur 20 Stufen.

ja. Das bringt so nix.

> Ein  Operationsverstärker, der um Faktor 50 verstärkt
> macht dir den kompletten Aussteuerbereich nutzbar.

ja. Wenn der Offset nicht zu stark wegläuft ist das
schon ok. Rauschen könnte ein Thema sein bei 10mOhm.
Man kann auch über 20mOhm nachdenken.

> 12Bit machen das Problem auch kaum besser.

das ist die Frage. Die Lasthersteller nehmen weit
mehr als 10bit. Und die haben kein Geld zu verschenken.
12 bit klingt da eher nach einem Kompromiss. Natürlich
hast Du recht - die normalen AVR haben eben 10bit.
Das ist bei dem Tiny oben auch so. Daher die Frage
ob so ein atmega16HVB nicht doch Sinn macht.

Fast niemand scheint die Teile zu benutzen?

Matthias

von Kevin K. (nemon) Benutzerseite


Lesenswert?

Du kannst auch durchaus 16 Bit nehmen. Wenn du den dann schnell 
abtastest und den Mittelwert aus mehreren Werten nimmst, filterst du das 
Rauschen auch raus. So viel mehr kosten dann die höher auflösenden 
Wandler nicht. Aber pass halt auf, wie viel die höhere Auflösung 
überhaupt noch mit dem Absolutwert zu tun hat. Alleine die Erwärmung vom 
Shunt, die vielleicht 100ppm/K beträgt, haut da ziemlich rein. Anders 
ausgedrückt: erwärmt sich der Shunt um 30k, ändert sich sein Widerstand 
um 0,3%. Klar, auch hier kann man kompensieren (Widerstand temperieren 
oder die R/T-Kennlinie ausmessen), aber der Aufwand steigt immer mehr 
an.

von Matthias W. (matt007)


Lesenswert?

Kevin K. schrieb:
> Du kannst auch durchaus 16 Bit nehmen.

Die Idee war einen uC zu nehmen der den
Wandler schon drin hat. Natürlich kann
man außen auch einen dranhängen. Der
Aufwand wird halt etwas größer.

> Wenn du den dann schnell
> abtastest und den Mittelwert aus mehreren Werten nimmst, filterst du das
> Rauschen auch raus.

genau.
externe Wandler sind u.U. schneller als
ein interner, der nur 1000/s schafft.
Da wird es mit dem Mitteln dann schwer
wenn man rasch Werte haben will.

> So viel mehr kosten dann die höher auflösenden
> Wandler nicht.

da hast Du recht.

> Aber pass halt auf, wie viel die höhere Auflösung
> überhaupt noch mit dem Absolutwert zu tun hat. Alleine die Erwärmung vom
> Shunt, die vielleicht 100ppm/K beträgt, haut da ziemlich rein. Anders
> ausgedrückt: erwärmt sich der Shunt um 30k, ändert sich sein Widerstand
> um 0,3%. Klar, auch hier kann man kompensieren (Widerstand temperieren
> oder die R/T-Kennlinie ausmessen), aber der Aufwand steigt immer mehr
> an.

stimmt. Die Absolutwerte sind da fraglich.
Die Erwärmung könnte man messen und den
Temperaturgang - falls bekannt dann berücksichtigen.
Je mehr Aufwand man treibt um so genialer könnte
das werden. Die Frage ist halt wo man einen
Schlußstrich zieht. Wenn man die Zeit auch rechnet
ist man am Ende besser dran ein Fertiggerät zu kaufen.

Matthias

von Matthias W. (matt007)


Lesenswert?

I. L. schrieb:
> Wie genau solls denn sein? LEM hat auch hübsche Stromwandler
> (z.B.LTSR-6/15/25) im Programm, wenn dein Budget das zulässt!?

Hallo Knut, der LTS25-NP hat einen Nennbereich von +-25A.
Dabei werden alle 3 Cu-Streifen parallelgeschaltet.
Die Ausgangsspannung bei 0A liegt bei 2.5V.
Bei +25A werden 3.125V ausgegeben.

Das heißt daß zum Messen von Strömen im Bereich 0-25A
nur der kleine Ausgangsspannungsbereich von 2.5 bis 3.125V
genutzt wird.

Der 10bit Wandlereingang des AVR wird also nur sehr schlecht
genutzt. 1 LSB entspricht ca. 5mV.
25A entsprechen 3.125-2.5V=625mV.

Die 25A werden also auf 625/5=125 Stufen abgebildet.
Dies entspricht einer Auflösung von 0.2A pro Stufe.
Genauer als +-0.2A ist da also nicht messbar.
Hinzu kommen noch Offsetfehler, Wandlerfehler und
der Temperaturgang von Sensor, Wandler etc.

Wenn man im unteren Strombereich genauer messen
möchte kann man die 3 Windungen in Serie schalten
statt parallel. Dann liegt der Nennstrombereich bei +-8A.
Die Auflösung erhöht sich somit um Faktor 3 von
0.2A auf 67mA.

Dies ist immer noch recht ungenau wenn man mal
einen Akku vermessen möchte der 600mAh hat und man
somit einen Entladestrom von 60mA wählen möchte.

Ich möchte damit sagen, daß der LEM alleine hier
scheinbar nicht so froh macht. Zusätzlich könnte
ein Shunt Sinn machen, auf den umgeschaltet werden
kann wenn man wenige Strom braucht.

Ziemlich unklar ist mir laut dem Datenblatt der
Unterschied zwischen dem Nennstrom und dem
maximalen Strom. Der Wandler ist also von 25A
bis 80A aussteuerbar. Bei 80A werden dann 4.5V
geliefert. Ebenso könnte die Serienschaltungsvariante
von 8 bis 27A belastet werden. Wie lange diese Last
dann zulässig ist fragt sich. Vermutlich hängt dies
von der Erwärmung der Anschlüsse ab. Heißer als
100°C dürfen diese nicht werden.

Es ist also nicht so einfach hier eine gute
Auflösung zu erreichen. Oder habe ich etwas übersehen?

Ein 12bit-Wandler würde hier schon einen Vorteil
bringen. Und natürlich könnte der Bereich von
2.5V-3.125V auch besser an den ADC angepasst werden.
Die Fehler vergrößern sich damit jedoch auch.

Nicht so einfach dieses Thema.

Matthias

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.