Hallo, ich versuche gerade einen ATMega8L über eine Solarzelle aus einem alten Taschenrechner zu betreiben. Diese liefert etwa 3V und 0.1 mA. Testweise habe ich das ganze jetzt mal mit einem 330uF Kondensator gepuffert, womit der uC auch läuft. Allerdings funktioniert das nur, wenn der uC erst angesteckt wird, wenn der Kondensator schon geladen ist. Andernfalls pendelt die Spannung um 1.4V herum. Brown-out detection habe ich auch schon probiert, dann geht garnichts mehr (auch hier wieder Spannung auf 1.4V). Gibt es eine Möglichkeit, den "Start" des uC ohne externe Hardware zu verzögern, bis die notwendige Spannung erreicht ist? Vielen Dank und beste Grüße, Bartl
Mit 0,1 mA läuft der ATMega eh nicht (außer im Sleep-Mode). Mal ins Datenblatt schauen!
Hallo, da die Solarzelle weniger Energie liefert als der Dauerbedarf des µC ist es nur eine Frage der Zeit bis der Kondensator leer ist und sich der µC wieder ausschaltet. Also entweder einen größeren Energiespeicher(2 Mignonzellen), das dauert halt ziemlich lange bis er voll ist oder ne Leistungsstärkere Stromquelle(anderes Solarmodul) aber trotzdem mit einem Elko um kurzfristige Spitzen abzufangen. Man kann die Resetbeschaltung ändern, so das hier ein Elko reinkommt der entsprechend lange braucht bis er voll ist dadurch steigt die Spannung am Reset sehr langsam über den erforderlichen Pegel und der µC schaltet verzögert ein. Musst dich mal im Netz umschauen glaube da muss dann noch eine Diode gegen VCC rein damit sich beim Abschalten der Elko nicht über den Resetpin entladen weil die Resetzspannung nur ein gewissen maß über VCC sein darf.
> weil die Resetzspannung nur ein gewissen maß über VCC sein darf.
Dieses "Gewisse Maß" ist recht hoch, weil der Reset-Pin auch zum
initieren des HV-Programmiermodus verwendet wird.
(Keine Diode nach VCC an dem Pin)
Nach den "Absolute Maximum Ratings" können da ruhig 13V anliegen.
Diode macht trozdem sinn, damit dieser Reset-Kondensator beim Absinken
der Betriebsspannung auch zur Spannungsversorgung beiträgt.
/Ernst
@johnny.m und Thomas: Der mittlere Leistungsbedarf der Schaltung liegt unterhalb dessen, was die Solarzelle liefert, weil der uC fast nur schläft, also langfristig läuft die Schaltung schon. Das Problem ist, das der Leistungsbedarf beim Anlaufen größer ist und deshalb sofort die Spannung einbricht. @Thomas und Ernst: Das mit dem Kondensator gegen Reset klingt sehr gut, werde ich baldmöglichst ausprobieren. Vielen Dank!
Das einfachste hier ist es das ganze mit einem Akku zu puffern und das ganze dann mit einer Z-Diode zu stabilisieren. Grüße jÜrgen
So könnte es gehen: Du versorgst von der Solarzelle einen Reset-Baustein (z.B.Maxim) mit sehr geringer Stromaufnahme. Mit dessen Ausgang versorgst Du den µC. Was passiert, wenn Du den µC im Reset hältst? Geht dann die Spannung über 1,4V? Wenn ja, könntest Du den Ausgang des Reset-ICs auch an µC-Reset anschließen. Wenn der Reset-Eingang ein Schmitt-Trigger hat, geht es evtl. auch mit einem C am Reset-Eingang und einem großen Ladewiderstand.
> Was passiert, wenn Du den µC im Reset hältst?
Hab ich noch nicht ausprobiert, aber der Aufbau mit einem Resetbaustein
am Resetpin der uC ist ja im Prinzip der gleiche wie bei Verwendung des
internen Brown-out Detektors, oder? Mit dem hat es nicht funktioniert,
also denke ich man müsste wenn den ganzen uC über den Resetbaustein
betreiben.
Vielen Dank für den Tipp!
Mach vor dem Sleep-Befehl alle Ports hochohmig, so daß sie während des Schlafens keine Ströme in angeschlossene Peripherie schicken können. Das spart etliches. Brown-Out gehört aus, ebenso der Watchdog und die interne Spannungsreferenz, wenn´s um´s Stromsparen geht. Der Takt sollte vom internen RC stammen und möglicht "langsam" sein. Der Prozessor läuft übrigens deswegen nicht an, weil der Spannungshub an der Solarzelle so langsam ist, daß der Taktgenerator nicht in die Gänge kommt. Das Einschalten an einem voll geladenen Puffer-C sollte indeß immer klappen. Darum wirst Du nicht herumkommen, also erst Laden, dann einschalten. Von externen Reset-Bausteinen darfst Du Dir aus dem Grund auch nichts erhoffen, außerdem ziehen diese dann noch zusätzlich Strom.
> Mach vor dem Sleep-Befehl alle Ports hochohmig, so daß sie während > des Schlafens keine Ströme in angeschlossene Peripherie schicken > können. Danke für den Tipp, mach ich noch. > Brown-Out gehört aus, ebenso der Watchdog und die > interne Spannungsreferenz, wenn´s um´s Stromsparen geht. Hab ich so. > Der Takt sollte vom internen RC stammen und möglicht "langsam" sein. Hab ihn momentan auf 1Mhz. Wenn ich 0x00 in OSCCAL schreibe sollte er den langsamsten Takt nehmen, oder? > Darum wirst Du nicht herumkommen, also erst Laden, dann > einschalten. Von externen Reset-Bausteinen darfst Du Dir aus dem > Grund auch nichts erhoffen, außerdem ziehen diese dann noch > zusätzlich Strom. Schade. Stellt sich nur die Frage: Wie kann ich das "erst Einschalten wenn Vcc>2.7V" am besten implementieren? Bin für alle Vorschläge offen!
>>Hab ihn momentan auf 1Mhz. Wenn ich 0x00 in OSCCAL schreibe sollte er den langsamsten Takt nehmen, oder? Würde ich nicht machen, weil dann das EEPROM nichtr mehr funzt. !Mhz ist schon ganz okay. >>Schade. Stellt sich nur die Frage: Wie kann ich das "erst Einschalten wenn Vcc>2.7V" am besten implementieren? Bin für alle Vorschläge offen! Prozessor nach dem Einschalten unmittelbar in den Sleep setzen. Mittels Analog-Komparator und sehr hochohmigen Spannungsteiler kann man dann einen Interrupt auslösen, der den Controller weckt. Geht aber nur im Idle-Mode und braucht durch den Komparator auch wieder Strom. Ein einfacher Schalter ist vielleicht doch besser, wenn Du weißt, daß der Ladeelko voll ist, einschalten. Vielleicht ist es doch besser, eine größere Solarzelle, einen Akku und einen ordentlichen Low-Drop (Low-Current) Spannungsregler zu spendieren...
Profi hat doch schon eine gute Idee gepostet! Das solltest Du auch so machen, da, wenn Brown-Out aus, kein vernünftiger Reset mehr zustande kommt. Ansonsten würde ich mit einem 32kHz-Uhren-Quartz starten und auch mal mit einem Labornetzteil den Strom bei undefiniert niedrigen Spannungen messen.
> Mittels Analog-Komparator und sehr hochohmigen Spannungsteiler kann > man dann einen Interrupt auslösen, der den Controller weckt. Geniale Idee, die probier ich aus! Danke. > Profi hat doch schon eine gute Idee gepostet! Ich dachte nur, weil Christian geschrieben hatte "Von externen Reset-Bausteinen darfst Du Dir aus dem Grund auch nichts erhoffen", aber das habe ich wohl falsch verstanden. Labornetzteil habe ich leider keins und mein Multimeter kann man bei diesen Strömen auch ziemlich vergessen. Ist wie gesagt alles recht "bastelmäßig" :)
Sorry, nochmal Nachtrag: Die Methode mit Analog Komparator wird wohl nicht gehen, weil der uC im Idle-Modus immernoch zu viel Strom braucht. Also mal wieder Samples ordern :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.