.. Jetzt habe ich es mal auf 1MHz-Takt abgesehen .. Damit sollte der Verbrauch auch runter gehen - hatte vor langer Zeit mal so was gelesen ..
Lesen bildet, stimmt ja, aber ich mach solche Dinge lieber selber. Und da hast Du heute Glück, dass ich mit nem Riesenschnupfen bei bestem Wetter (hmm, na ja, Sonne pur aber Minusgrade) daheim hängen muss .. siehe unten.
.. Falls das noch nicht ausreicht, nehme ich mal noch einen Spannungsteiler, um aus den 5V vom Regler 3.3V zu machen ..
Na ich weiß nicht, da kräuselts mir die Nackenhaare und ein Männlein flüstert mir: wer im Controller sparen will, kann den Strom im Spannungsteiler verheizen. Oder ? Liege ich da soo daneben?
Mal zu meiner Nachmittagsbeschäftigung:
Aufbau: alte Experimentierplatine für mega8/168/328, alle vermeidbaren Teile abgebaut,
......Bild hier
......© oberallgeier; größeres Bild im Bild verlinkt
Aktiv/mit den Controllerpinns verbunden sind die Stromversorgung - ohne Spannungswandler, direkt von der Schraubklemme - und die beiden Kondensatoren für den fallweise steckbaren Quarz. Alle sonstigen Leitungen hängen "im Freien", die Kondensatoren für den MAX232 sind ja nur für den Chip - wenn der drauf steckt, die Leitungen zum seriellen Stecker sind ebenfalls unbeschaltet.
Controller: ATmega328 PDIP28. ATMega328P habe ich nicht in PDIP (na ja, die beiden hier sind defekt), aber die Daten vom 328 sind sicher ausreichend vertrauenswürdig.
Programm: Ein lausiges Zeit-Schindeprogramm. Nach der Initialisierung eine while(1)-Schleife, die für wenige Controllertakte einen Pin hoch- und danach wieder runterzieht. Die Pausen dazwischen dauern etwa eine Mikrosekunde bei 20 MHz, Code siehe unten.
Labornetzteil zur Spannungsversorgung KORAD KA3005D, DMM MetraHit 12S, Spannungsangaben nur laut Labornetzteil, Strommessung mit DMM.
Geschätzte Messgenauigkeit beim Aufbau sicher deutlich besser als 10 %
Messwerte:
Code:
ATmega328
@3V 20 MHz Quarz 6,14 mA
8 MHz intOsz. 2,94 mA
1 MHz intO(DIV8) 0,58 mA
128 kHz intOsz. 0,11 mA
128 kHz intOsz-DIV8 0,06 mA
@5V 20 MHz Quarz 13,09 mA
8 MHz intOsz. 6,46 mA
1 MHz intO(DIV8) 1,85 mA
128 kHz intOsz. 0,95 mA
128 kHz intOsz-DIV8 0,85 mA
Code:
// ============================================================================= =
//### Programm 1 µs MIKROsekunde pausieren lassen !! Pausenwert EXerimentell !
void wmus (uint16_t us) // Wait in Mikrosekunden
{
for(; us>0; us--)
{
uint16_t __c = 4;
__asm__ volatile (
"1: sbiw %0,1" "\n\t"
"brne 1b"
: "=w" (__c)
: "0" (__c)
);
}
}
// ============================================================================= =
Ich konnte es ja nicht lassen. Hatte noch nen nanoClone genommen (meine sind grad ALLE auf 20 MHz umgequarzt) und den direkt mit 7,5V bestromt. Der frisst (mit der ganzen Peripherie, Spannunswandler, on-board-LED-Spannungskontrolle, on-board-user-LED etc etc: bei 20 MHz ext. Quarz 21 mA und bei 1 MHz (int.Osz-8MHz und DIV.8.) noch 9 mA. 3V hatte ich hier nicht getestet, den Strom von "hinten" in die Platine und den Spannungswandler . . . da war ich mir zu unsicher.
Fazit: Bei 3V ist der Stromhunger, grob, nur halb so groß, die Frequenz schlägt deutlich zu. Wussten wir schon aus dem Datenblatt - nur nicht so.
NACHTRAG : Zum Messen war der ISP-Stecker stets abgezogen wegen Resetleitung mit LED. Auch wenn deren Einfluss nicht wirklich merkbar war.
Lesezeichen