Forum: Mikrocontroller und Digitale Elektronik Plötzlich erhöhter Stromverbrauch beim Raspberry


von Carsten (Gast)


Lesenswert?

Hallo,

Ich benutzte ein Raspberry Pi Zero mit dem ich auch mittels avrdude 
einen AVR über GPIO programmieren möchte. Das hatte ich versucht in 
Betrieb zu nehmen, doch leider den Pegelwandler vergessen (weswegen es 
im ersten Anlauf nicht geklappt hat).
Mein eigentliches Problem ist aber, dass der Stromverbrauch des 
Raspberry jetzt plötzlich im idle etwa 25 mA höher ist als vor dieser 
Inbetriebnahme (also fast 50 % höher). Liegt es daran, dass durch die 5 
V an einigen Pins etwas defekt ist (die Kanäle funktionieren scheinbar 
aber alle noch)? Wie könnte man dies überprüfen? Oder aber setzt der 
avrdude bestimmte Pins so, dass der Stromverbrauch höher ist? Auch im 
poweroff Zustand ist der Stromverbrauch um genau die 25 mA höher.
Wie kann ich das Problem eingrenzen und wieder zu dem alten 
Stromverbrauch gelangen? Jemand Ideen oder ähnliche Erfahrungen gehabt?

Danke und Gruß
Carsten

von Stefan F. (Gast)


Lesenswert?

Carsten schrieb:
> Liegt es daran, dass durch die 5
> V an einigen Pins etwas defekt ist

Wahrscheinlich.

Allerdings können 25mA mehr oder weniger beim Raspberry Pi auch durchaus 
durch eine geänderte Konfiguration oder Software verursacht werden. Das 
sind ja weniger als 5%.

Mein Laptop nimmt unter Linux rund 10% mehr Strom auf, als unter 
Windows. Da siehst du mal, wie viel Spielraum dort für fine-tuning ist.

von Carsten (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> sind ja weniger als 5%.

Wenn es so wäre, wäre es mir egal. Im Idle braucht der Pi Zero aber nur 
50-60 mA. Da machen 25 mA mehr schon viel aus. Deswegen habe ich auch 
dieses Modell ausgewählt, weil es batteriebetrieben werden soll.

von Stefan F. (Gast)


Lesenswert?

Carsten schrieb:
> Im Idle braucht der Pi Zero aber nur 50-60 mA.

Ach so, ich dachte an den normalen Raspberry Pi. 50% mehr ist natürlich 
schon heftig.

von Andreas B. (bitverdreher)


Lesenswert?

Carsten schrieb:
> Wie kann ich das Problem eingrenzen und wieder zu dem alten
> Stromverbrauch gelangen?
Testweise eine original Boot SD einlegen?

von Felix (Gast)


Lesenswert?

Carsten schrieb:
> Ich benutzte ein Raspberry Pi Zero mit dem ich auch mittels avrdude
> einen AVR über GPIO programmieren möchte. Das hatte ich versucht in
> Betrieb zu nehmen, doch leider den Pegelwandler vergessen (weswegen es
> im ersten Anlauf nicht geklappt hat).

Warum Pegelwandler? Die AVR-Chips kann man doch auch wunderbar mit 3.3V 
flashen. Ich betreibe meine Aufbauten grundsätzlich mit 3.3V und spare 
mir das Pegelwandlungsproblem dadurch.

Zum Mehrverbrauch kann ich nichts sagen, dafür zu Deinem eigentlichen 
Vorhaben.
Bei mir (ebenfalls Pi Zero) hat es nur mit der avrdude 6.1 Version von 
Kevin Kuzner geklappt, die ich extra für den Pi kompiliert habe. Mit 
allen anderen Versionen bin ich gescheitert. Trotzdem war es noch 
endloses Rumgefrickel mit den Einstellungen und Parametern. Jetzt läuft 
es einwandfrei, ich kann damit meine AVRs drahtlos über Wifi im Betrieb 
umprogrammieren. Bei Bedarf kann ich die Einstellungen hier gerne 
teilen.

Was mich interessieren würde: Läuft das auch mit anderen PIs? Hast Du 
eine neuere Version von avrdude auf dem Pi Zero zum Laufen gebracht?

von Carsten (Gast)


Lesenswert?

Felix schrieb:
> Was mich interessieren würde: Läuft das auch mit anderen PIs? Hast Du
> eine neuere Version von avrdude auf dem Pi Zero zum Laufen gebracht?

Ich versuche dies zum ersten Mal. Ich habe es mit der Version 6.2 
getestet. Mit der Version 6.3 habe ich Probleme gehabt (gpio busy...). 
Der avrdude läuft und ich sehe Signale auf den Pins. Ein Flashen konnte 
ich noch nicht testen.
Ich bin nach dieser Anleitung vorgegangen:
https://ozzmaker.com/program-avr-using-raspberry-pi-gpio/

Was muss denn noch konfiguriert werden? Ich hätte gedacht, jetzt wo ich 
auch Signale auf den Pins sehe, dürfte einem Programmieren nichts mehr 
im Wege stehen.
Die 5V brauche ich, weil die angeschlossene Peripherie des Controllers 
nicht mit niedrigeren Spannungen arbeitet. Und der Pegelwandler zwischen 
Raspberry und Controller ist einfacher als zwischen Controller und 
Peripherie.

von Stefan F. (Gast)


Lesenswert?

Felix schrieb:
> Warum Pegelwandler? Die AVR-Chips kann man doch auch wunderbar mit 3.3V
> flashen.

ISP heisst "In System Programming". Wenn sein System auf 5V läuft, dann 
ist das halt so.

von Felix (Gast)


Lesenswert?

Carsten schrieb:
> Ich bin nach dieser Anleitung vorgegangen:
> https://ozzmaker.com/program-avr-using-raspberry-pi-gpio/

Mit der Anleitung habe ich es versucht und nicht geschafft, 6.2 war 
nicht zum Laufen zu bringen. Die Pegel habe ich mir aber nicht 
angeschaut, deswegen kann ich dazu nichts sagen. Die Frage ist halt, ob 
vielleicht ein falsches Timing das Problem ist. Deswegen interessiert 
mich Dein Ergebnis mit 6.2


Kurz zu meinem erfolgreichen Versuch mit 6.1:
Anleitung hier im Forum: 
https://www.mikrocontroller.net/articles/Raspberry_Pi_als_Universalprogrammer

Mit Einstellungen meine ich die Konfiguration von avrdude.conf  und die 
Parametrisierung des eigentlichen avrdude Aufrufs:

sudo /usr/local/bin/avrdude -c linuxspi -p m328p -P /dev/spidev0.0 -U 
flash:w:<dateiname>:i

avrdude.conf
programmer
  id = "linuxspi";
  desc = "Use Linux SPI device in /dev/spidev*";
  type = "linuxspi";
  reset = 22;
  baudrate=115200;
;

Ein Knackpunkt war in meiner Erinnerung noch, dass es im System mehrere 
avrdude.conf Dateien gibt (wahrscheinlich durch die vielen Experimente) 
und man aufpassen musste, dass die Richtige gezogen wird.

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Gegebenenfalls hilft ein Schaltplan weiter.

Der Stromverbrauch kann auch einfachsterweise über die internen Dioden 
nach Vss an den I/O-Ports herrühren.

von Carsten (Gast)


Lesenswert?

Dieter D. schrieb:
> Der Stromverbrauch kann auch einfachsterweise über die internen Dioden
> nach Vss an den I/O-Ports herrühren.

Kannst du das bitte etwas näher erläutern?
Einen Schaltplan gibt es nicht (bzw. nur den vom Raspberry Pi Zero W). 
Den erhöhten Stromverbrauch messe ich ohne angeschlossene Peripherie.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Jeder I/O Pin hat zum Schutz gegen elektrostatische Ladung (z.B. durch 
Berühren mit dem Finger) intern sogenannte ESD Dioden. Die sind aber 
nicht unendlich hoch belastbar.

Es kann passieren, dass Dioden bei Überlastung einen dauerhaften 
Kurzschluss machen. Wenn z.B. die untere Diode einen Kurzschluss hat und 
der Ausgang auf HIGH geschaltet wird, dann fließt der maximal mögliche 
Strom, den der Ausgang liefern kann.

25mA liegen da mitten in dem Rahmen, den ich erwarten würde. Es ist 
meist ca. doppelt so viel, wie das Datenblatt als maximal zulässigen 
Strom nennt.

von Carsten (Gast)


Lesenswert?

Vielen Dank, Stefan. Wieder um eine Erkenntnis reicher :-)

von Dieter D. (Firma: Hobbytheoretiker) (dieter_1234)


Lesenswert?

Carsten schrieb:
> Vielen Dank, Stefan. Wieder um eine Erkenntnis reicher :-)

Carsten schrieb:
> Einen Schaltplan gibt es nicht

Oft reicht auch nur einer Verschaltungsskizze der Platinen, Pegelwandler 
mit den Spannungsangaben. Wenn Du mit der Antwort das selber findest, 
dann ist es nicht mehr unbedingt notwendig. Manchmal werden 
"Angstwiderstände" (1k) dazwischen geschaltet, damit der Strom klein 
bleibt.

von Carsten (Gast)


Lesenswert?

Es liegt offenbar wirklich an einem defekten Pin. Ein Pin kann nur noch 
high Pegel messen.

@Felix: avrdude mit linuxgpio hat bei mir ohne Probleme funktioniert. 
Nach der Anleitung, die ich oben verlinkt habe.

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
Noch kein Account? Hier anmelden.