ATtiny85 mit Raspberry Pi flashen

OP #3775790
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 ;)
OP #3775807
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
#3775839
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. ;-)
OP #3775842
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?
#3775876
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.
OP #3775977
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 :(
#3778383
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?
OP #3793720
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.

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