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
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.
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.
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?
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.
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.
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.
Gegebenenfalls hilft ein Schaltplan weiter.
Der Stromverbrauch kann auch einfachsterweise über die internen Dioden
nach Vss an den I/O-Ports herrühren.
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.
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.
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.
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.