Hallo, ich suche nach einer Lösung, den ATMega128 noch weiter im Stromverbrauch herunterzubekommen. Zur Zeit läuft dieser mit 3,3V und 3,68MHz. Spannung muß bleiben, und Frequenz auch, sonst schaffe ich die Abarbeitung nicht. Hat jemand noch Ideen? Kann ich einzelne Hardwaremodule abschalten, damit ich noch Strom spare? Zur Zeit läuft das Board mit ca. 7mA.
Algorithmen nochmal überdenken / ASM verwenden-> schnellere Abarbeitung, dann µC sleepen lassen. Spannung weiter reduzieren (2,7V) und 128L verwenden. Warum muss die Spannung bleiben? An die PullUps denken, ob Du sie wirklich brauchst. Alle unbelegten Pins auf definierten Pegel (Gnd oder Vcc, zur Sicherheit über Rs). Ohne Schaltplan und ohne nähere Angaben (Software) eher ein Rätselraten.
Abschalten kannst du eigentlich alles. Aber muß denn der µC permanent rechnen? Sonst könntest du noch zusätzlich einen 32kHz Takt benutzen, dies würde den Stromverbrauch nochmal deutlich senken.
Spannung brauche ich wegen Anschluß SD-Karte. Datenblatt will 3,3V haben. Bringt der 128L was? Ich habe gehört, dass das der gleiche Kern ist, nur hat nicht so hoch getaktet werden darf. Ich will Daten von einer seriellen Schnittstelle aufzeichnen. Wenn nichts kommt, könnte der ja sleepen gehen. Wird ja durch seriellen Empfangsinterrupt wieder aufgeweckt. Ich weiß aber nicht, wie sich die angeschlossene SD-Karte verhält, wenn man der µC schlafen schickt. Die Karte ist an sich sehr sparsam. Programmieren immer noch alles in C, weil einfacher. Vielleicht sollte ich überlegen, ob ich auf Assembler umsteige, wie oben beschrieben. Da kenne ich mich aber nicht so sehr aus. Ich komme von der 8051 Schiene. Die restlichen Eingänge sind noch offen, aber kann ich bestimmt auf GND oder + legen. Was hat das mit dem 32KHz zu tun? Ich habe, 3,68 MHz dran. Ich kann doch nicht umschalten. Wie gesagt, ich bin noch neu auf dem ABR Gebiet.
so wie deine Beschreibung klingt, kann der doch fast die ganze Zeit schlafen: -Byte empfangen, in den internen RAM speichern, wieder schlafen legen. Wenn du ne ordentliche Portion Bytes zusammenhast, ab auf die Karte damit. Welche Baudrate? Nehmen wir mal beispielsweise 19200. Ein Byte dauert also ca. 0,5ms, bei deinen 3,68MHz also knappe 2000 Takte. Für Interrupt, Byte lesen und speichern brauchst du grosszügig gerechnet 50 Takte, also gerade mal 2-3% der zur Verfügung stehenden Zeit. 98% kannst du pennen gehen. Bei höheren Baudraten wirds natürlich weniger. Analogkomperator und Referenz abgeschaltet?
Baudrate 19200, da ich mit Xon/Xoff arbeite, doch etwas mehr Aufwand. Ich werde versuchen, das Programm zu optimieren. Bis jetzt wird immer 1 Byte gelesen und an die Schreibroutine gegeben. Diese verwaltet dann intern, ob der Puffer gefüllt wird, oder doch dann auf die Karte geschrieben wird. Werde versuchen, einen extra Puffer zu verwalten und dann mehr Bytes an die Routinen der SD-Karte zu geben. Wird wahrscheinlich was bringen. Analogkomperator habe ich noch nicht abgeschaltet. Dazu schaue ich mal im Datenblatt nach, wie das geht. Das Stromsparen sol dazu dienen, den Strom für den Mega128 direkt aus der RS232 zu bekommen. Dazu ist jeder mA, den ich sparen kann, sehr hilfreich. Ich habe dazu schon einen Schaltregler getestet, der mir aus einem Statussignal der seriellen Schnittstelle die Spannung auf 3,3V wandelt. Das Problem ist nur, das die Polarität nicht stimmt (-12V) und ich aber an der Schnittstelle des Gerätes nichts ändern kann. Ansonsten könnte ich die Polarität wandeln und dann wäre das soweit OK. Einen Schaltregler, der auch gleich potentialfrei ist, habe ich noch nicht gefunden. Eine nachgeschaltete Potentialtrennung bringt nur 50-60% Effektivität. Vielleicht hat schon jemand mal in dieser Richtung was gebaut.
Du weisst aber hoffentlich, dass eine SD-Karte zum Lesen und insbesondere zum Schreiben gut und gerne 50mA ziehen kann, oder?
Ich hoffe, dass über den Zeitraum, wo nicht geschrieben wird, sich die Leistung ausgleicht. Bis jetzt sind das nur Tests. Wenn es nicht klappt, wäre halt ein externes Netzteil nötig, aber versuchen wollte ich es schon, um das Netzteil und die Mobilität nicht einzuschränken.
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.