Forum: Mikrocontroller und Digitale Elektronik Batterie-Sensor mit MCP1640


von Sebastian S. (roamer)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

Ich bin vor kurzem durch die Arduino-Plattform in die Elektronik 
"gerutscht" und versuche im Selbststudium mir immer wieder neues Wissen 
anzueignen um von fertigen Bausätzen zu eigenen Platinen zu wechseln. 
Mein aktuelles Projekt ist die obligatorische Wetterstation mit 
Funk-Sendern. Da ich wie gesagt erst wenig Erfahrung habe würde ich mich 
sehr freuen, wenn sich jemand Erfahrenes aus dem Forum meine angehängte 
Schaltung angucken und mir konstruktive Kritik geben könnte. Wenn ich im 
falschen Forum gelandet sein sollte bitte ich dies zu entschuldigen.

Der Aufbau (nur die Sendereinheit der Wetterstation):
Ein ATmega328P-PU (8Mhz intern) wird direkt über 2 AA Batterien 
betrieben und seine Funktionsfähigkeit durch Setzten der entsprechenden 
Fuses zum Brown Out sichergestellt. Angeschlossen an den µC sind 
SPI-Schnittstelle zur Programmierung, nRF24L01+ (Funkmodul), DHT22 
(Luftfeuchtigkeitssensor), DS18B20 (Temperatursensor), Voltage Divider 
(zur Spannungsmessung der Batterien), Enabler-Pin eines MCP1640 (Version 
T bzw. B mit True Disconnect als Step-Up Regler). Mit Ausnahme des µC 
und des Voltage Dividers (und natürlich auch des MCPs) sind alle 
weiteren Bauteile mit Vout des MCP1640 verbunden. Alle Bauteile teilen 
sich eine Masse.
Der MCP1640 soll zweierlei bewirken: Einerseits die angehängten Bauteile 
von der Stromquelle kappen, wenn der Enabler auf Low ist (Verlängerung 
der Batterielebensdauer). Andererseits benötigt der DHT22 3,3V und der 
nRF24L01+ freut sich auch über eine konstante "rauscharme" Spannung.

Meine Fragen:
- Habe ich eklatante Fehler in der Schaltung? (zumindest funktioniert 
sie bei mir auf dem Breadboard...)
- Laut Datenblatt soll der MCP eigentlich erst durch einen High-Pegel am 
Enabler Vout erzeugen, tut dieses jedoch bereits ohne mein Zutun, 
weshalb ich ihn mit 10k Ohm gegen Masse gezogen habe - geht das ggf. 
eleganter?
- Würde ein Kondensator zwischen analog-Pin23 und GND (beim Voltage 
Divider) die Spannungsmessung verbessern?
- Was wäre grundsätzlich besser zu machen? (wie gesagt, ich möchte 
dazulernen)

Vielen Dank für Eure Hilfe! :-)
Gruß,
Sebastian

von Oldie (Gast)


Lesenswert?

Enable:
Beim Start ist der µC-Ausgang zum Enable-Pin hochohmig,
undefiniertes Signal -> undefinierte Funktion
Der Leckstrom des EN-Inputs wird mit typ. 0,005 μA angegeben.
Damit sollte 1 MOhm nach bevorzugtem Potential (GND) auch OK
sein.

Pin23:
Bei einer hochohmigen Quelle (> 10 kOhm) MUSS da ein Kondensator
hin: Der interne Sample-C hat (meine ich mich zu erinnern)
vielleicht 50 pF. Bei einem C = 47 nF verliert der etwa 1/1000
der Ladung (Spannung) im Sample-Takt. Fehler ca. 0,1%.
Die internen Referenzspannung sind aber nur < +/-10% genau.
Muss also kalibriert werden:
Z.B. in einer Kal-Routine bei extern gemessener Nennspannung
(3 V, oder 2,4 V ?) den Messwert als Referenz ins EEPROM
schreiben.

Mal sehen, was anderen noch auffällt...

von Sebastian S. (roamer)


Lesenswert?

Hallo Oldie,

vielen Dank für deinen Kommentar! Die Thematik zum Voltage Divider war 
mir so noch nicht bekannt also erweitere ich meine Schaltung 
entsprechend.
Weiterhin ist mir aufgefallen, dass der Reset-Pin des µC mit Battery VCC 
(statt mit VCC) verbunden werden sollte (sonst macht das bei 
ausgeschaltetem MCP wenig Sinn). Darüber hinaus muss auch der VCC-Pin 
des AVR SPI nicht mit VCC sondern direkt mit Battery VCC verbunden 
werden (sonst läuft der externe Programmer ins Leere). Beides habe ich 
wohl falsch vom Breadboard auf die Schaltung übertragen.

Beste Grüße,
Sebastian

von Oldie (Gast)


Lesenswert?

Was sind das nun für AA-Zellen?
Na gut, ich geh mal von 2 * 1,5 V aus, weil Stromsparen für
Dauerbetrieb mit Ni??-Zellen wegen der Selbstentladung eher
uneffektiv ist.

Bei 3,0 V wird es kein Problem sein, aber vielleicht wirst du
eher abschalten müssen, wenn die externen ICs nicht mehr
ansprechbar sind, als bei der üblichen Entladeschlussspannung
von 1,0...1,2 V/Zelle. Dann wäre ein µC-High nur noch 61%...73%
der 3,3 V.

Damit nutzt du aber nur 50%, oder weniger der Batterien.

Habe mich da noch nicht so sachkundig gemacht, aber wäre es
nicht effektiver, die Batterien komplett auf 1,0 V/Zelle
leerzusaugen indem du den Prozessor auch an die 3,3 V hängst?

Was hat der µC noch zu tun, wenn die Peripherie abgeschaltet
ist?

von Michael U. (amiga)


Lesenswert?

Hallo,

ich habe jetzt nicht alle Komponenten angeschaut, der nRF24L01 hat z.B. 
im PowerDown einen Verbrauch von knapp 1µA. Er spielt ab 1,9V, das wäre 
bei 2x 1,5V Zelle also bis unter 1V pro Zelle. Da ist die sowieso leer.

Ich habe bei mir FOST02 laufen, das sind China-Abkömmlinge des SHT11.
Die laufen ab 2,4V. Temperatur liefert doch der Feutesensor sowieso mit, 
wozu der DS18B20?

Unter http://www.avr.roehres-home.de/sensoren/index.html ist mein Kram, 
leider nicht so ganz aktuell gehalten...
Das läuft so seit 2009, Batterein sind 3,6V Lithiumzellen aus Pollin 
Sonderangeboten. Laufzeit ca. 1 Jahr je nach Zustand der Restposten.

Stromaufnahme in Ruhe irgendwo um 4µA, im Betrieb ca. 12mA wenn der RFM 
sendet.

Eine CR2032 im Gefrierfachsensor hält ca. 6 Monate.

Gruß aus Berlin
Michael

von Sebastian S. (roamer)


Angehängte Dateien:

Lesenswert?

Ich verwende aktuell zwei AA Ni-MH (1,2V min. 1900mAh; Amazon Hausmarke; 
gibt mir voll aufgeladen ca. 3V). Von der Problematik mit der höheren 
Selbstentladung habe ich schon mal gelesen und möchte einmal einen 
eigenen Versuch starten – eine dauerhafte Lösung wird das wohl nicht 
werden jedoch habe ich mich damit auch noch nicht wirklich beschäftigt.
Der Grund, warum ich den µC nicht direkt an 3,3V des MCP lege ist 
schlicht der im Vergleich hohe Ruhestrom im Betrieb vs. Shutdown Modus 
des MCP. Weiterhin sehe ich die Gefahr, dass es bei Ni-MH-Akkus zur 
Tiefenentladung kommen könnte.

Der µC soll hauptsächlich schlafen, in regelmäßigen Zyklen aufwachen, 
den MCP aufwecken, Luftfeuchtigkeit und Temperatur messen und diese an 
eine Basisstation senden.

Zwei neue Fragen sind bei mir noch aufgetaucht:
- Macht es Sinn den Battery VCC-Kreis einerseits Richtung MCP und 
andererseits Richtung µC, Voltage Divider und AVR SPI mittels einer 
Diode (z.B. 1N4004) zu „trennen“, um ungewollte Rückflüsse z.B. durch 
die 5V eines externen Programmers (USBTinyISP) vom AVR SPI zu 
verhindern? Ich denke da insbesondere an dn Fall, wenn man vergessen 
sollte die Batterien abzuklemmen und der Programmer auch als 
„Stromversorger“ auftritt. (die angehängte Board-Darstellung sollte die 
Frage besser verständlich machen)
- Ich habe in den „AVR Hardware Design Considerations“ gelesen, dass 
wenn neben der ISP-Schnittstelle (in meiner Schaltung nenne ich das AVR 
SPI) weitere Bauteile über die relevanten ISP-Pins angeschlossen sind, 
sollte der Programmer vor diesen geschützt werden. Dies sei insbesondere 
wichtig mit Blick auf den SPI-Bus (MISO, MOSI, SCK), welcher ähnliche 
Pins verwendet. Der benötigte Schutz erfolgt z.B. mit Hilfe von 
Widerständen (Chip > ISP-Konnektor > Widerstand > weitere Bauteile). In 
meiner Schaltung verwendet der nRF25L01+ ja noch die gleichen Pins. Auf 
meinem Breadboard konnte ich jedoch noch nie Probleme feststellen. Hat 
jemand mit der Thematik Erfahrung?

Beste Grüße,
Sebastian

von Sebastian S. (roamer)


Lesenswert?

Hallo Michael,
ja, der DHT22 kann auch Temperatur. Der zusätzliche DS18B20 soll nur 
optional anschließbar sein, wenn z.B. eine höhere Messgenauigkeit 
benötigt wird, oder ich z.B. neben der Luft- auch die Wandtemperatur 
messen möchte.
Deinen Link schaue ich mir mal genauer an.

Gruß,
Sebastian

von Michael U. (amiga)


Lesenswert?

Hallo,

zum ISP: eigentlich braucht es keinen Schutz beim Programmieren.
Bedingung ist, daß der Programmer die Pegel auf die Tagetspannung 
einstellt (machen die Atmel-Programmer, z.B. mein Dragon) und das 
angeschlossene SPI-Peripheriebausteine beim Progrmmieren abgeschaltet 
sind. Die CS-Eingänge  müssen also per externem PullUp/PullDown auf den 
inaktiven Pegel gezogen werden.
Man sollte an den SPI/ISP-Pins natürlich auch keine Ausgänge anderer ICs 
dranhaben, die sich nicht TriState schalten lasssen und diese auch nicht 
als Ausgang zu Sachen benutzen, die Ärger machen können (Relaistreiber 
die rumklappern können u.ä.).

Akkus würde ich da ohnehin nicht nehmen, die Bauteile oder die 
Betriebsspannung so auswählen, daß man im Betriebsbereich bleibt.
3x 1,5V Alkali und z.B. ein MCP1702 als Regler und alles mit 3,3V 
betrieben.
Natürlich kann man auch alles aus einer ZElle mit passendem StepUp 
versorgen, nur wozu bei einer Wetterstation? Muß die Super-Miniformat 
haben?

Meine Sensoren sind in diesem Gehäuse verstaut:
http://www.segor.de/#Q=PP42ws&M=1

Das hängt seit 6 Jahren auf dem Balkon, Lochraster, einfach 
reingeworfen, Platine mit Plastikspray eingesprüht. Ist auch schonmal 
bei einem Unwetter abgesoffen, mußte ich erst trockenfönen und dann ging 
alles wieder.
Gerade die Belüftung verhindert, daß sich Feuchtuigkeit absetzt, das 
Ding ist ja immer auf Umgebungstemperatur und wirklich schnelle größere 
Temperaturwechsel gibt es drußen nicht.

Sind aber alles nur meine Überlegungen dazu.

Gruß aus Berlin
Michael

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.