Forum: Mikrocontroller und Digitale Elektronik Batterieüberwachung mit ATTiny 2313


von Thomas B. (escamoteur)


Lesenswert?

Hi,

ich möchte gerne meinen ATTiny2313 an einer 3,3V Lithiumzelle betreiben. 
Nun würde ich gerne überwachen, ob die Batterie noch genug Spannung 
abgibt, soll heißen, ich will alamiert werden wenn die Spannung auf 2,8V 
abgesunken ist.

Leider hat der 2313 keinen ADC sondern nur einen analog comparataor, der 
einfach zwei externe Spannungen vergleicht. Nur woher bekomme ich meine 
stabilen 2,8V mit denen ich die Batteriespannung vergleichen kann?

Danke & gruß

Thomas

von Gast2 (Gast)


Lesenswert?

Hat der keinen BOD?
Doch hat er, im Datenblatt auf Seite 38 beschrieben.

Gast2

von Peter D. (peda)


Lesenswert?

Thomas Burkhart wrote:
> Leider hat der 2313 keinen ADC

Dann nimm doch nen ATtiny13.


Peter

von Thomas B. (escamoteur)


Lesenswert?

Ja, aber ich will ja keinen Reset sondern will einfach eine Nachricht an 
einen Master Controller senden. Oder läßt dich der BOD so ummstellen 
dass er nur nen IRQ auslöst? Hab ich jetzt nicht gesehen?

Gruß

Thomas

von Johannes M. (johnny-m)


Lesenswert?

Thomas Burkhart wrote:
> Leider hat der 2313 keinen ADC sondern nur einen analog comparataor, der
> einfach zwei externe Spannungen vergleicht.
Nö, der kann auch die interne Bandgap-Referenz auf einen Eingang 
bekommen (auf den nichtinvertierenden).

> Nur woher bekomme ich meine
> stabilen 2,8V mit denen ich die Batteriespannung vergleichen kann?
Mit nem Spannungsteiler brauchst Du keine stabilen 2,8 V. Die 
Bandgap-Referenz hat 1,1 V (OK, ±10%). Wenn Du die Versorgungsspannung 
entsprechend runtergeteilt an den anderen Eingang legst, kannste ganz 
flexibel die Schwelle einstellen.

Oder (alternativ) die BOD benutzen, wie Gast2 schon vorgeschlagen hat. 
Die hat nur den Nachteil, dass es bei Unterschreiten der Schwelle einen 
Reset gibt. Mit dem Komparator haste dagegen die Möglichkeit, direkt 
softwaremäßig zu reagieren...

von Thomas B. (escamoteur)


Lesenswert?

D.h. ich baue einen Spannungsteiler, der sicherstellt, dass bei 
Spannungen >2,8V am Comparator eine Spannung von >1,1V anliegt. Richtig?

Wie hochohmig kann ich den Spannungsteiler denn bauen um Strom zu 
sparen?

Danke & Gruß

Thomas

von Thomas B. (escamoteur)


Lesenswert?

Peter Dannegger wrote:
> Thomas Burkhart wrote:
>> Leider hat der 2313 keinen ADC
>
> Dann nimm doch nen ATtiny13.
>
>
> Peter

Weil ich auch noch nen UART brauche.

Thomas

von Andreas K. (a-k)


Lesenswert?

Code für Software-UART gibt's bei Atmel als Application Note.

von Thomas B. (escamoteur)


Lesenswert?

Aber wieso sich das Leben schwerer machen als Notwendig? Außerdem 
brauche ich auch ein paar IOs mehr als der 15er hat.

Gruß

Thomas

von Peter D. (peda)


Lesenswert?

Thomas Burkhart wrote:
> Peter Dannegger wrote:
>> Thomas Burkhart wrote:
>>> Leider hat der 2313 keinen ADC
>>
>> Dann nimm doch nen ATtiny13.
>>
>>
>> Peter
>
> Weil ich auch noch nen UART brauche.


Ist kein Problem, einfach in Software machen.

Dann ist allerdings ein ATtiny25 besser (einen Timer für die UART, einen 
für die anderen Sachen).

Ich hab oft ne SW-UART in meinen ATtinyx4/x5/x61 Programmen für 
Debugausgaben.


Peter

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Also ich würde auf den Mega48 umsteigen, ich weiß ja nicht was du 
vorhast, aber der hat ADC, UART TWI... mehr Flash und Ram und größere 
Verwante falls es mal etwas "mehr" wird.

von Thomas B. (escamoteur)


Lesenswert?

Peter Dannegger wrote:
> Thomas Burkhart wrote:
>> Peter Dannegger wrote:
>>> Thomas Burkhart wrote:
>>>> Leider hat der 2313 keinen ADC
>>>
>>> Dann nimm doch nen ATtiny13.
>>>
>>>
>>> Peter
>>
>> Weil ich auch noch nen UART brauche.
>
>
> Ist kein Problem, einfach in Software machen.
>
> Dann ist allerdings ein ATtiny25 besser (einen Timer für die UART, einen
> für die anderen Sachen).
>
> Ich hab oft ne SW-UART in meinen ATtinyx4/x5/x61 Programmen für
> Debugausgaben.
>
>
> Peter

Was spricht denn gegen den 2313? Ihr wollt mich ja alle überzeigen einen 
anderen zu nehmen...
Mit dem Comparator hab ich ja was ich will.

einen MEGA will ich nicht, weil das ganze auch noch klein werden soll.
Kleiner ZigBee-Handsender

Gruß

Thomas

von Johannes M. (johnny-m)


Lesenswert?

Vorteil am ADC wäre tatsächlich, dass kein Spannungsteiler gebraucht 
würde, wenn man eine "inverse Messung" macht (Betriebsspannung an AREF 
und interne Referenz als Messgröße). Ob das jetzt unterm Strich weniger 
Strombedarf bedeutet, kann ich so aus dem Bauch heraus auch nicht sagen. 
Ich halte es zumindest für möglich, dass der ADC mehr Saft braucht als 
der Komparator, womit der Vorteil schon wieder relativiert wäre. Somit 
spräche soweit eigentlich nichts gegen den Tiny2313...

Der Eingangswiderstand des Komparators sollte recht hoch sein, so dass 
der Spannungsteiler auch recht hochohmig sein kann (mehrere 100 kOhm - 
unterer MOhm-Bereich), aber dann softwaremäßig und mit nem kleinen 
Kondensator am Analog-Eingang irgendwelche eingefangenen Störspitzen 
abfangen.

von Jadeclaw D. (jadeclaw)


Lesenswert?

Thomas Burkhart wrote:
> Was spricht denn gegen den 2313?
Nichts.
Und der notwendige Spannungsteiler zieht weniger als der ADC eines 
ATMega. Bei 50nA Eingangsstrom kann man den Querstrom entsprechend 
niedrig ansetzen.

> Ihr wollt mich ja alle überzeigen einen
> anderen zu nehmen...
Was nicht notwendig ist.

> Mit dem Comparator hab ich ja was ich will.
Exakt.

Gruß
Jadeclaw.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

> einen MEGA will ich nicht, weil das ganze auch noch klein werden soll.
> Kleiner ZigBee-Handsender
>
> Gruß
>
> Thomas
 in smd ist der mega48 aber doch kleiner? und analogkomperator hat der 
auch.

von Johannes M. (johnny-m)


Lesenswert?

Läubi Mail@laeubi.de wrote:
>  in smd ist der mega48 aber doch kleiner? und analogkomperator hat der
> auch.
Mega48: 28-Pin-SOIC
Tiny2313: 20-Pin-SOIC
Preisfrage: Was ist kleiner?

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Meine Mega48 werden im TQFP32 geliefert...
Und der Tiny wird im SO(Wide) geliefert, ist größenmäßig dann etwas 
größer.
In SOIC gibts den (leider) nicht.

von Jadeclaw D. (jadeclaw)


Lesenswert?

Ok, dann den 2313 im MLF-Gehäuse, das ist dann noch kleiner.
Nur sollte das dann noch verarbeitbar bleiben.

@ Thomas Burkhart:
Nicht irre machen lassen, nimm den 2313 und gut is'.

Gruß
Jadeclaw.

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ich wollt ihn nicht "irre" machen. Aber der Größenunterschied TINY vs 
MEGA ist nicht sooo groß bei den beiden (egal welches Package) und da er 
ja nicht geschrieben hat was er werden soll...
Und der Mega hat z.B. nen Hardwaremultipliziere was für einige 
Anwendungen schon wichtig sein kann! Und da die beiden sich auch 
Preislich kaum unterscheiden, benutz ich persönlich meist den Mega48, 
wollte ihn aber auch niht "bekehren" sondern nur nen Vorschlag machen :)

von Thomas B. (escamoteur)


Lesenswert?

Ich nehme doch mal an, dass der 2313 vom Stromverbrauch auch besser sein 
sollte als die MEGAs oder?

@Peter: bezüglich des Spannungsteiler:

Wenn ich 2,8V als Schwelle haben will, passt das dann in etwas so?

     3,3V
       |
       |
      3M
       |
       |----- 1,12V -- Analog Comparator In
      2M
       |
       |
      ---

Gruß

Thomas

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Mega48:
1
Low Power Consumption
2
– Active Mode:
3
250 µA at 1 MHz, 1.8V
4
15 µA at 32 kHz, 1.8V (including Oscillator)
5
– Power-down Mode:
6
0.1µA at 1.8V

Tiny2313
1
Typical Power Consumption
2
– Active Mode
3
1 MHz, 1.8V: 230 µA
4
32 kHz, 1.8V: 20 µA (including oscillator)
5
– Power-down Mode
6
< 0.1 µA at 1.8V

Unterscheidet sich nur im uA Bereich der Mega48 ist halt noch etwas 
moderner, die Frage ist halt was/wieviel Funktionalität du in dem 
Handsender haben willst. Der Mega hat doppelt soviel Ram/Flash etc. muß 
man sich überlegen.

von Mikrofun R. (mikrofun)


Lesenswert?

Ich hatte bereits einmal eine ähnliche Lösung zu der von Johannes M. auf 
einem ATMega2560 implementiert, die sehr gut funktioniert:

- Externe Spannungsreferenz an einen ADC, z. B. mit dem LM 285-Z2,5
- Vcc als Referenzspannung für den ADC
- Berechnung der Batteriespannung anhand des Messwertes
  (und damit Kalibrierung möglicher weiterer ADCs)

Der Vorteil: Das Ganze ist simpel und es gibt nicht nur einen "Battery 
low"-Status, sondern eventuell sogar eine Füllstandsanzeige.

von Hannes L. (hannes)


Lesenswert?

<trollmode>
Warum nimmt man eigentlich keinen Einheits-AVR, der für alle 
Eventualitäten genügend Reserven bietet?
</trollmode>

Der Tiny2313 reicht völlig aus. Ob der Spannungsteiler so hochohmig 
geht, weiß ich nicht, mir wäre es zu riskant. Du kannst aber das obere 
Ende des Spannungsteilers an einen Portpin legen und den Spannungsteiler 
nur bei Bedarf an Spannung legen. Also in regelmäßigen Abständen 
Spannungsteiler einschalten, kurz warten, AC-Zustand abfragen, 
Spannungsteiler wieder aus. Aber auch AC ausschalten (ACD in ACSR), wenn 
er nicht gebraucht wird, der frisst nämlich auch Strom.

...

von Thomas B. (escamoteur)


Lesenswert?

Vom Verhältnis her passt der Spannungsteiler oder?

D.h. besser 300 : 200 kOhm?

Das mit dem Selectiven Einschalten ist natürlich rafiniert, danke für 
die Idee.

Gruß

Thomas

von Hannes L. (hannes)


Lesenswert?

Thomas Burkhart wrote:
> Vom Verhältnis her passt der Spannungsteiler oder?
>
> D.h. besser 300 : 200 kOhm?

Drei zu zwei, das macht 40% am Abgriff. Oder andersherum, die 
Eingangsspannung ist 2,5 mal so hoch wie die Spannung am Abgriff. Bei 
1,1 V Bandgap-Referenz beträgt die Schaltschwelle demnach 2,75 V. Die 
Bandgap-Referenz unterliegt zwar einer nicht zu knappen 
Exemplarstreuung, ist aber in sich sehr stabil. Du solltest den 
Spannungsteiler daher auf Dein Exemplar abgleichen. Du machst also nix 
falsch, wenn Du ein paar Lötpads für weitere Widerstände vorsiehst, mit 
denen Du den Spannungsteiler etwas trimmen kannst, denn die exakt 
passenden Widerstände wirst Du nicht (in einem Guss) bekommen.

>
> Das mit dem Selectiven Einschalten ist natürlich rafiniert, danke für
> die Idee.

Das hat sich bei einem Mega48 bewährt, der 6 Potis (Steuerknüppel) für 6 
Servokanäle (Impulserzeugung) auslesen muss. Da wird auch immer nur das 
Poti auf Plus gelegt, das gerade ausgemessen werden soll.

>
> Gruß
>
> Thomas

...

von Mikrofun R. (mikrofun)


Lesenswert?

Das mit dem selektiven Einschalten finde ich auch interessant. Weiss 
jemand zufällig, ob man die AVR IO-Ports auch hochohmig schalten kann, 
sodass weder Vcc noch 0V anliegt?

von Andreas K. (a-k)


Lesenswert?

Klar. Als Eingang.

von Mikrofun R. (mikrofun)


Lesenswert?

Danke! Muss ich die Pullups auch wegschalten?

von Andreas K. (a-k)


Lesenswert?

Kommt dir die Frage nicht selber etwas blöd vor?

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.