ATtiny 13A, Problem mit Digital Input Disable Register

Gast #5789069
Lesenswert?

Nabend,

hab aktuell ein komisches Problem mit dem Digital Input Disable Register 
der ATtiny13A:

Um noch etwas Strom zu sparen wollte ich für alle ungenutzten Pins die 
Input Buffer abschalten. In meinem Projekt nutze ich PB0 und PB1 für 
eine PWM, sind also Ausgänge, PB2 ist unbenutzt und floating, PB3 und 
PB4 sind Eingänge mit aktivierten Pullups, PB5 ist als Reset mit 10k auf 
Vcc gelegt.
Wenn ich jetzt die Inputbuffer für PB0 (AIN0D), PB1 (AIN1D), PB2 (ADC1D) 
und PB5 (ADC0D) deaktiviere, ist es als ob die Pullups für PB3 und PB4 
nicht mehr aktiv sind und es reicht ein Tippen mit dem Finger an einem 
der beiden Pins um den Zustand der Pins zu verändern. Schalte ich die 
Inputbuffer wieder ein (kommentiere die DIDR0 Zeile aus) ist alles 
absolut stabil.

Jemand ne Idee woran es liegt?
1
 DDRB = (1 << DDB1) | (1 << DDB0);
2
 PORTB = (1 << PB4) | (1 << PB3);
3
 DIDR0 = (1 << ADC0D) | (1 << ADC1D) | (1 << AIN1D) | (1 << AIN0D);
Gast #5789090
Lesenswert?

Ich glaube nicht, dass du damit großartig Strom sparen kannst.

Die Input Buffer fressen nur Strom, wenn der Eingangspegel nicht 
eindeutig High oder Low ist. Solange du für eindeutige Pegel sorgst, 
hast du schon den geringsten Stromverbrauch.

Ich habe einen ATtiny13A seit 8 Jahren in der Schublade liegen, der 
immer noch mit seiner ersten CR2032 versorgt wird.

Zu Strom sparen mache ich das:

- ADC aus schalten
- Watchdog deaktivieren
- Verzicht auf Brown-Out Detektor
- Alle Pins auf saubere Pegel bringen
Gast #5789123
Lesenswert?

Kasbohr schrieb:
> @ Tim T.
>
> Warum ignorierst du das Datenblatt des ATTiny13a?

Was davon genau, hab da nichts passendes gefunden und ich kenn das 
eigentlich ziemlich gut.

Oder bezieht sich das darauf das man Pins nicht floaten lassen soll? 
Dafür gibts genug Möglichkeiten es zu verhindern aber ich sehe keinen 
Grund es nicht über deaktivierte Inputbuffer zu machen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren