Forum: Mikrocontroller und Digitale Elektronik ATtiny85 mit Raspberry Pi flashen


von David S. (decipher)


Lesenswert?

Hallo,

ich habe mir letztens 50 WS2811 LED's bestellt, die ich über einen 
ATtiny85-20PU Mikrocontroller steuern wollte. Da ich einen Raspberry Pi 
besitze (Model B, Revision 2) und man über SPI und avrdude diesen AVR 
Chip flashen soll,habe ich das auch mal versucht ;) Dabei habe ich mich 
Schritt für Schritt an diese Anleitung gehalten: 
http://www.instructables.com/id/Programming-the-ATtiny85-from-Raspberry-Pi/?lang=de 
.Ich habe den Schaltkreis exakt nachgebaut, Software ist auf dem neusten 
Stand aber es tut sich nichts... Jedes mal wenn ich den µC flashen will, 
spuckt avrdude den Error aus:

avrdude: error : AVR device not responding
avrdude: initialization failed, rc=-1
         Double check connections and try again, or use -F to override 
this check.

Ich habe dann mal das OS neu installiert (Raspian), avrdude und 
zugehörige Software komplett neu installiert aber nie reagiert der µC 
(laut Avrdude). OK, dachte ich mir... muss ja am µC liegen. Die PINs 
haben ja schon aus der Verpackung geguckt, der ist sicher kaputt. Also 
neuen bestellt, angeschlossen -> Mosi an Mosi, Miso an Miso, 3,3v an 
VCC, GND an GND und den Reset an 22 bzw. GPIO25 des Raspberry's Avrdude 
drauf und schon wieder dieser Error -.-
Kann mir einer vielleicht helfen, das ich dieses Teil geflasht kriege? 
Avrdude war auf Version 6.1-svn-20130917. Ich habe gelesen, dass Avrdude 
nicht immer funktioniert aber das gleich bei 2 ATtinys? Ich bin übrigens 
noch ein Anfänger und ich hoffe ich habe keinen peinlichen Fehler 
gemacht ;)

von S. R. (svenska)


Lesenswert?

Wie rufst du avrdude auf?

Beachte, dass manche AVRs im Werkszustand sehr langsam laufen und du 
diese auch entsprechend langsam programmieren musst. Das musst du 
avrdude ebenfalls mitteilen.

Das OS neu zu installieren bringt in der Regel nichts außer Zeitverlust.

von David S. (decipher)


Lesenswert?

"sudo avrdude -p t85 -P /dev/spidev0.0 -c linuxspi" und die Baudrate 
hatte ich auf 10000 oder mal weggelassen, da bei den Tutorials immer 
unterschiedliche Werte benutzt wurden. Das Problem ist, dass ich ja noch 
nie auf einen der beiden AVR's gekommen bin :/ Avrdude sagt doch, dass 
der AVR nicht reagiert bzw. nicht mit ihm kommunizieren kann. Ja das das 
mit dem OS nichts gebracht hat war wirklich Zeitverschwendung :D

von S. R. (svenska)


Lesenswert?

Vorweg: Ich habe kein Raspberry und mein avrdude unterstützt kein 
Linux-SPI.

Laut Dokumentation für den Treiber musst du in 
/usr/local/etc/avrdude.conf (oder /etc/avrdude.conf) den GPIO-Pin für 
reset einstellen. Suchst du nach "linuxspi" und stellst sicher, dass der 
dort angegebene Pin für Reset auch der ist, an dem du deinen AVR 
angeschlossen hast. Wenn das nicht stimmt, wird der AVR nie in den 
Programmiermodus gehen.

Andere benutzen laut Kommentaren den CE0-Pin für Reset (was nicht 
funktionieren sollte?!?)

In jedem Fall hast du erstmal zwei Anregungen. ;-)

von David S. (decipher)


Lesenswert?

Vielen Dank schonmal für deine Bemühungen :) Jedoch habe ich auch dies 
bereits schon getan. In dem Tutorial wird zwar ein anderer Pin benutzt 
aber ich habe einmal die Konfigurationen umgeschrieben oder den Pin der 
in den Konfigurationen nach der Installation angegeben war benutzt. Was 
genau meinst du mit dem CE0-Pin? Bzw. wo befindet sich dieser?

: Bearbeitet durch User
von S. R. (svenska)


Lesenswert?

Bei I2C hat jedes Gerät eine Adresse, die zuerst gesendet wird, um das 
am Bus angeschlossene Gerät auszusuchen. Bei SPI hast du stattdessen 
einen Chip-Enable-Pin, der einem Gerät sagt, dass es sich jetzt gerade 
angesprochen fühlen soll.

Dein Raspberry hat für den SPI0 einen Chip-Enable-Pin CE0, der 
automatisch gesteuert wird. Ist dann sinnvoll, wenn nur ein Gerät am SPI 
hängt. Welcher das ist, weiß ich nicht.

von David S. (decipher)


Lesenswert?

Den Pin habe ich gefunden und als Resetpin gesetzt jedoch ohne Erfolg. 
Dabei musste ich feststellen, dass wiringPi ebenfalls nicht 
funktioniert! Sobald man die wiringPi-Pinvorgaben nutzen will, schalten 
sich die USB-Ports ab und ich muss den Pi neu starten... über die 
Konsole ohne wiringPi hab ich es aber auch versucht... vergeblich. Ich 
habe außerdem mal alles durchgemessen. Am Reset waren 3,3V, der Mosi Pin 
hatte ebenfalls 3,3 sowie VCC. Alle anderen waren auf null bzw. Miso so 
auf 0,22V. Jedenfalls habe ich den Reset auch mal auf 0 bekommen aber 
das hat auch nichts gebracht :(

von g457 (Gast)


Lesenswert?

>  Mosi an Mosi, Miso an Miso, 3,3v an VCC, GND an GND und den Reset
> an 22 [..]

Und SCK?

von David S. (decipher)


Lesenswert?

> Alle anderen waren auf null bzw. Miso so auf 0,22V

SCK war auf 0 V

von g457 (Gast)


Lesenswert?

> SCK war [..]

..wo angeschlossen? ∗War∗ er angeschlossen, darauf will ich raus.

von David S. (decipher)


Lesenswert?

Achso :) An CLK bzw. Gpio11 (Pin 23) und als Nachtrag: Die 
SPI-Schnittstelle ist natürlich auch "aktiviert" (Kann man mit 
raspi-config an- bzw. ausstellen)

: Bearbeitet durch User
von David S. (decipher)


Lesenswert?

-up-

von David S. (decipher)


Lesenswert?

Niemand eine Lösung? :/

von Frank K. (fchk)


Lesenswert?

Erster Grundsatz bei Digitalschaltungen: Benutze Abblockkondensatoren! 
100n keramisch an jedes VCC-GND-Pärchen unter Minimierung der 
Drahtlängen. Diagonal quer über den Chip ist elektrisch optimal. Am 
Besten besorge Dir gleich einen Sack voll davon. Für jeden WS2812 wirst 
Du übrigens auch einen brauchen.

http://www.reichelt.de/Vielschicht-bedrahtet-X7R-10-/X7R-2-5-100N/3//index.html?ACTION=3&GROUPID=3162&ARTICLE=22853&OFFSET=500&WKID=0&;

Dann: ist außer den Programmierleitungen für das ISP sonst noch etwas 
angeschlossen?

von David S. (decipher)


Lesenswert?

Danke schonmal für den Tipp :) Denken Sie, dass ein Spannungseinbruch 
der Fehler sein könnte? (Wegen den Blockkondensatoren)

Nein ich habe nur den ATtiny angeschlossen.

: Bearbeitet durch User
von Mark (Gast)


Lesenswert?

David Schmidt schrieb:
> Nein ich habe nur den ATtiny angeschlossen.
Was ist an VCC(+AVCC) und GND angeschlossen?

von David S. (decipher)


Lesenswert?

GND an Pin 4 und 3,3 V an Pin 8

von Mark (Gast)


Lesenswert?

Gab es da nicht eine spzielle Version von avrdude für den Raspi?
https://projects.drogon.net/raspberry-pi/gertboard/arduino-ide-installation-isp/

Oder hat avrdude inzwischen offizielle Unterstützung für die Raspi-IOs?

von David S. (decipher)


Lesenswert?

Also in dem Tutorial hat er meine ich die normale Version benutzt und 
sein Betriebssystem war (wie meins) Raspian. Ihr Link ist ja für das 
Gertboard. Mit der Software kann man dann wie auf einem Arduino 
programmieren und der Controller wird über ISP und dem Gertboard 
geflasht... ein Gertboard habe ich leider nicht.

von jz (Gast)


Lesenswert?

An Reset sollten beim flashen 0V bzw. GND anliegen und nicht 3V3. 
Scheint wohl ein Treiberproblem zu sein...

von David S. (decipher)


Lesenswert?

Ja das weis ich, dass eigentlich kein Strom fließen sollte :D Aber auch 
wenn GND angeschlossen wäre / der Pin keinen Strom bekommt tut sich 
überhaupt nichts :/

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.