Hallo, ich habe da eine Frag zum Stromsparen mit dem atmega16. Entschuldigt bitte den nicht allzu schönen Schaltplan, aber dies ist mein erstes Projekt. Sinn der Schaltung: Sie soll einen Motor morgens und abends ansteuern um ein Türchen zu öffnen/schließen. Mein Problem ist nun, dass wenn ich in den Power-down Mode gehe, ich nur entweder mit den externen Interrupts INT0, INT1 oder mit dem WDT aufwachen kann. Das Problem mit dem WDT ist aber, dass er immer einen Reset durchfüht. Nun wollte ich fragen ob es eine bessere Lösung gibt für das Aufwachen. Externe Schaltung die einen Interrupt auslöst oder ähnliches? Das ganze natürlich Stromsparend, soll ja Batteriebetrieben sein das ganze. Oder eine Softwaretechnische Lösung. Ist es möglich lange Batterielaufzeiten mit dem Idle-Mode zu bekommen? Vielen Dank für eure Tipps!
Mathias G. schrieb: > Das Problem mit dem WDT ist aber, dass er immer einen Reset durchfüht. Also bei den AVRs die ich benutze ist dem nicht so, kann man auswählen ob es ein Reset oder ein normaler Interrupt sein soll. Aber keine Ahnung wie das beim Dino Atmega16 ist.
Ja ich weiß, dass das zB mit dem Atmega168 möglich wäre. Beim Atmega16 funktioniert das aber leider nicht so weit ich das gelesen habe...
Wie wärs mit einem RTC Modul das du einfach als Interrutquelle (z.b. jede Sekunden) nutzt? Die aktuellen RTCs brauchen so um die 200 nA.
Mathias G. schrieb: > Das Problem mit dem WDT ist aber, dass er immer einen Reset durchfüht. Das tut er, aber es gibt im MCR ein Bit, was dir sagt, das es der WD war. Frag das ab, checke kurz deine Sensoren und leg ihn wieder schlafen. Wenn das Bit nicht gesetzt ist, mach deinen normalen Reset.
Mathias G. schrieb: > atmega16. Wo hast du den denn ausgebuddelt? Mathias G. schrieb: > Das Problem mit dem WDT ist aber Den kannst du, wie schon gesagt wurde, auch als Timer benutzen. Verbraucht aber zuviel Strom. Günstiger ist ein Uhrenquarz am Timer 2. Und wenn du es ein bisschen moderner und richtug stromsparend möchtest nimmst du einen Atmega164pa: >>Power-save Mode: 0.6μA (Including 32kHz RTC) mfg.
Mathias G. schrieb: > Ja ich weiß, dass das zB mit dem Atmega168 möglich wäre. Beim Atmega16 > funktioniert das aber leider nicht so weit ich das gelesen habe... Warum hast Du denn überhaupt so einen alten Chip genommen? Ein Atmega164PA hat die gleiche Pinbelegung, ist aber von sich aus deutlich stromsparender, hat den erweiterten Watchdog, der auch einen Interrupt anstelle eines Resets auslösen kann, und noch etliche andere Vorteile. Es gibt keinen Grund, neue Projekte mit alten Chips anzufangen. Die sind noch nicht einmal billiger. So, fürs nächste Mal weißt Du das. fchk
Oke, danke für die raschen antworten. Den Atmega16 kenn ich aus der Schule und dachte mir zum Einstieg nicht schlecht :D Vielen Dank für die Tipps! Werde mir mal die verschiedenen Möglichkeiten zu gemüte führen.
Wenn es sparsam werden soll, ist der 7805 als Spannungsregler schon mal der erste Fehler - da gibt es deutlich sparsamere Ausführungen, und sei es nur ein 78L05. Deutlich sparsamer wäre z.B. ein MCP1703. Weniger als 5 V wären Stromsparender, machen aber die direkte Ansteuerung der H-Brücke noch schwieriger. Die H-Brücke für den Motor klappt so nicht, denn die P-Kanal Mosfets werden nie ausschalten. Dafür reicht die Spannung vom µC nicht. Da muss also noch was anderes hin, z.B. 2 extra stufen mit NPN Transistoren davor. Strom brauchen die nur wenn der Motor läuft, und das auch deutlich weniger als der Motor. Je nach Anforderungen des Programms könnte man den µC als Ganzes mit einem 32 kHz Quarz laufen lassen - das ist nicht optimal, aber relativ einfach. Eine andere Möglichkeit wäre es Timer2 mit einem externen 32 kHz Quarz laufen zu lassen und zum aufwecken zu nutzen. Der µC selbst wird dann z.B. mit dem internen RC Ttakt laufen. Wenn es wirklich sparsam sein soll, wäre ggf. noch ein anderer modernerer µC sinnvoll, z.B. ein Mega324P oder ähnliches. Der Teiler für die Messung der Batteriespannung darf viel hochohmiger (z.B. 4,7 M und 2,2 M || 100 nF) werden, wenn man einen Kondensator einplant. Der FET zum Abschalten funktioniert so ohnehin nicht - man müsste schon die High Side schalten, und das braucht 2 Transistoren.
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.