Hallo zusammen
Ich versuche schon einige Abende mit Hilfe eines Arduino einen ATtiny84
zu programmieren. Bis jetzt leider erfolglos.
Ich verwende die neuste Arduino IDE 1.6.7 und das mitgelieferte
ArduinoISP Sketch.
Ich kann das Sketch auf den Arduino übertragen und die Heartbeat LED
pulsiert brav vor sich hin.
Dann habe ich die IDE wie folgt eingestellt
Board: ATtiny
Processor: ATtiny84
Clock: 1 MHz (internal)
Jetzt versuche ich das Blink Sketch auf den ATtiny zu übertragen. Als
Fehlermeldung bekommen ich
1
avrdude: Yikes! Invalid device signature.
2
Double check connections and try again, or use -F to override
3
this check.
Die Verkabelung könnt ihr der Fritzing Zeichnung entnehmen. Ich habe
alle Kabel mehrfach kontrolliert und bin mir sicher das alles so
angeschlossen ist wie in der Zeichnung.
Beim Kontrollieren der Schaltung ist mir aufgefallen, das zwischen dem
5V und GND Pin des Arduino nur 4V sind. Ist das normal? Die Beispiele
aus dem Starterkit haben bis jetzt alle problemlos funktioniert.
Ich habe auch gelesen, das man den avrdude auf verbose stellen kann,
damit er mehr Informationen liefert. Wie mache ich das mit der Arduino
IDE?
Ich habe einen ATTiny84A. Spielt das eine Rolle?
Woran könnte es sonst noch liegen?
Viele Grüsse
Fredy
Ernst P. schrieb:> Ich habe einen ATTiny84A. Spielt das eine Rolle?
Es ist möglich, daß der eine andere Signatur als der "blanke" Attiny84
hat.
Das spricht er ja auch: avrdude: Yikes! Invalid device signature.
Guck mal in die Datenblätter der beiden Kontroller, da steht die
Signatur irgendwo drin.
mfG Paul
Ernst P. schrieb:> avrdude: Yikes! Invalid device signature.> Double check connections and try again, or use -F to override> this check.
Da gibt es wirklich nur 2 möglichkeiten..
1. Falsch angeschlossen bzw. Wackler aufm Steckbrett.
2. Irgendwie dumm angefuset das der nen Externen Takt an XTal benötigt
Eventuell noch nen 100uF an die Versorgung.
Paul B. schrieb:> Es ist möglich, daß der eine andere Signatur als der "blanke" Attiny84> hat.
Dann würde er aber beide IDs als vergleich melden.
Hallo Ernst,
wie schnell ist der ISP Takt ?
Wo ist der 100nF Kondensator direkt am attiny ?
Natürlich steht das alles in den Application Notes von Atmel, man muss
nur lesen können.
Uwe S. schrieb:> Hallo Ernst,>> wie schnell ist der ISP Takt ?
Ich habe einfach das ArduinoISP Sketch auf dem Arduino installiert. Den
einzigen Takt, den ich einstellen kann sind die 1MHz (internal) im Tools
Menü.
> Wo ist der 100nF Kondensator direkt am attiny ?
Wie du aus obigen Schaltplan ersehen kannst, ist der Kondensator
zwischen Reset und GND des Arduino.
Ernst P. schrieb:> Uwe S. schrieb:>> Hallo Ernst,>>>> wie schnell ist der ISP Takt ?> Ich habe einfach das ArduinoISP Sketch auf dem Arduino installiert. Den> einzigen Takt, den ich einstellen kann sind die 1MHz (internal) im Tools> Menü.
Na dann liess mal im Datenblatt nach, wie hoch der sein darf !
Es gilt nicht, sich hinter Arduino zu verstecken.
Was man darf oder nicht steht im Datenblatt, damit kann man selbst eine
Fehleranalyse durchführen.
>> Wo ist der 100nF Kondensator direkt am attiny ?> Wie du aus obigen Schaltplan ersehen kannst, ist der Kondensator> zwischen Reset und GND des Arduino.
Sorry hier war ich ungenau, es fehlt eine 100nF Kondensator zwischen Vcc
und GND.
Am Restet Anschluß gehört kein 100nF hin!, sondern eher 10k Ohm nach Vcc
und - evtl. in einem EMV Umfeld - einen sehr viel kleinere Kondensator
nach Masse: 1nF-10nF würden reichen.
Steht auch alles in den Application Notes.
Laut dem Schaltplan vom Uno ist der ISP Header mit dem ISP des Mega 8
verbunden. Der ist dafür um den Mega 8 zu programmieren und nicht um
damit andere AVRs zu programmieren.
https://www.arduino.cc/en/Tutorial/ArduinoISP Hier ist das anders
Verkabelt. Schau in dem Sketch welcher Pin des Mega8 mit dem Tiny84
verbunden werden muss
Gruß JackFrost
Bastian W. schrieb:> Der ist dafür um den Mega 8 zu programmieren und nicht um> damit andere AVRs zu programmieren.
passt normalerweise schon, die sind gebrückt.
Vielleicht mal miso mosi vertauschen als Test.
Die gleiche Fehlermeldung kommt auch wenn du keinen AVR ansteckst
richtig?
Das hat mich auch 2 Abende gequält.
Du benutzt ein Arduino UNO mit Mega328?
Im Sketch müssen die Pins für MOSI,MISO,SCK richtig definiert sein, da
ansonsten keine Antwort vom Tiny erkannt wird.
Die IDE ist leider nicht intelligent genug das für dich zu machen.
Hier die Pinbelegung:
http://jobs.arduinoexperts.com/wp-content/uploads/2013/03/ARDUINO_V2.png
Laut deinem Anschlussplan verwendest du die PINS 11 bis 13 dafür, aber
im Sketch sind standardmäßig Hardware PINS definiert.
Entferne im ArduinoISP Sketch in Zeile 81 mal die beien //
von // #define USE_OLD_STYLE_WIRING
in #define USE_OLD_STYLE_WIRING
Dann laden den Sketch neu auf den Arduino und probiere es nochmal.
Gerald R. schrieb:> Die gleiche Fehlermeldung kommt auch wenn du keinen AVR ansteckst> richtig?>> Das hat mich auch 2 Abende gequält.> Du benutzt ein Arduino UNO mit Mega328?
Jeder der die IDE installiert und einen Uno hat, wählt einfach nur
ArduinoISP als Beispielsketch und ab gehts mit den im Sketch angegebenen
Pins. Auch wenn es der Uno mit Sockel ist kann man da vom alten Atmega8
bis 328p alles raufpampen und den Sketch aufspielen.
Ich brauchte da noch nie für einen Tiny und andere Chips was ändern.,
Gerald R. schrieb:> Laut deinem Anschlussplan verwendest du die PINS 11 bis 13 dafür,
Nein, ich verwende den rechten ICSP Header, so wie es in der Anleitung
des Sketches beschrieben ist.
> Entferne im ArduinoISP Sketch in Zeile 81 mal die beien //> von // #define USE_OLD_STYLE_WIRING> in #define USE_OLD_STYLE_WIRING> Dann laden den Sketch neu auf den Arduino und probiere es nochmal.
Wäre noch ein Versuch wert. Man weiss ja nie...
Philipp K. schrieb:> Bastian W. schrieb:>> Der ist dafür um den Mega 8 zu programmieren und nicht um>> damit andere AVRs zu programmieren.>> passt normalerweise schon, die sind gebrückt.
Laut Kommentar im Sketch muss mann den ICSP header und nicht PIN11-13
verwenden. Ich habe mich auch gewundert, das es so viele Anleitungen im
Netz gibt, die auf PIN11-13 verweisen, obwohl das Sketch seit 2011 den
ICSP Header verwendet.
>> Vielleicht mal miso mosi vertauschen als Test.
Das habe ich schon versucht. Leider mit dem gleichen Ergebnis :-(.
Wie sieht es mit den Eingangs erwähnten 4V zwischen 5VC und GND am
Arsuino aus? Muss das sein?
Ich habe auch mal alles wieder abgestöpselt und am nakten Arduino
gemessen, da sind definitiv nur 4V.
Ernst P. schrieb:> Ich habe auch mal alles wieder abgestöpselt und am nakten Arduino> gemessen, da sind definitiv nur 4V.
Wie speist du den Arduino? Wenn du über den Hohlstecker ein 9V DC
Netzteil anschliesst und an den 5V misst, sollten da auch 5V sein,
ansonsten ist der Onboard Spannungsregler evtl. beschädigt.
Ernst P. schrieb:> Laut Kommentar im Sketch muss mann den ICSP header und nicht PIN11-13> verwenden. Ich habe mich auch gewundert, das es so viele Anleitungen im> Netz gibt, die auf PIN11-13 verweisen, obwohl das Sketch seit 2011 den> ICSP Header verwendet.
Die sind gebrückt laut Schaltplan, damit wäre das egal.. wenn Du nen
Klon mit zwei ISP Headern hast dann funktioniert nur einer dsavon.
zweitens wäre nach deinem Schaltplan der Reset falsch angeschlossen..
der Reset auf dem ICSP ist nen Eingang und kein Ausgang. Poste mal bitte
was zum anschluß im Sketch steht.
EDIT: Laut meinem Sketch kommt Reset des Attiny84 auf SS und der liegt
leider auf dem ganzen Board nur an Pin10.. die anderen Pins liegen an
der Pinleiste und am Header.
Ich finde die Hinweise auf den Header in meinen Anleitungen und Sketches
nirgends!
Im Sketch steht doch dass reset PIN10 ist und nicht 1 wie dein Bild
zeigt.
Vermutlich ist das dein Problem.
Alternativ kannst du folgendes testen:
7,8,9 für die LEDs
10 für Reset
11,12,13 für MISO MOSI SCK in Verbindung mit #define
USE_OLD_STYLE_WIRING
Steht auch so im Sketch:
1
// On some Arduinos (Uno,...), pins MOSI, MISO and SCK are the same pins
2
// as digital pin 11, 12 and 13, respectively. That is why many tutorials
3
// instruct you to hook up the target to these pins. If you find this wiring
4
// more practical, have a define USE_OLD_STYLE_WIRING. This will work even
5
// even when not using an Uno. (On an Uno this is not needed).
Ernst P. schrieb:> Yikes! Invalid device signature.
Warum schneidest du die wichtigste Information aus der Fehlermeldung
raus?
Weil du sie als unwichtig ansiehst...?
Wie m,an sich doch irren kann....
Oder muss die geheim gehalten werden?
Dann würde mich mal das "warum" interessieren.
Gerald R. schrieb:> have a define USE_OLD_STYLE_WIRING.
Ich habe eine 3 Wochen alte neu installierte IDE und kann davon nix
finden..
Hab mal im Github gesucht.
// By default, use hardware SPI pins
Der Absatz drüber, brauch man garnix machen solang man MOSI MISO und SCK
nicht selbst per Hand gesetzt hat.. kann man übrigens in den ersten C
Zeilen des Sketches selbst feststellen.
Dann nehm einfach 10-13 wie beschrieben, das passt schon.. das ist nur
ein Hinweis das fast alle Pins auf dem Header sind, Vortiel könnte sein
das alles beschriftet ist.
Gerald R. schrieb:> Ich hänge mal den originalen Sketch an, habe meine IDE am Freitag> installiert.
Okay für versteher:
// On some Arduinos (Uno,...), pins MOSI, MISO and SCK are the same pins
// as digital pin 11, 12 and 13, respectively.
An vielen Arduinos wie zB. dem Uno sind 11-13 gleichzeitig Hardware SPI
miso mosi sck.
//That is why many tutorials instruct you to hook up the target to these
pins.
Deswegen benutzen viele Tutorials diese Pins.
//If you find this wiring more practical, have a define
USE_OLD_STYLE_WIRING.
Wenn du keinen Uno hast kannst Du diese mit Oldstyle Wiring setzen.
//This will work even when not using an Uno. (On an Uno this is not
needed).
Das funktioniert nur bei Nicht-Unos, bei einem Uno ist dies unnötig.
Ernst P. schrieb:> Dann habe ich die IDE wie folgt eingestellt> Board: ATtiny> Processor: ATtiny84> Clock: 1 MHz (internal)
Was hast du eigentlich unter Programmer ausgewählt?
Unter Tools->Programmer->Arduino as ISP
Philipp K. schrieb:> Laut meinem Sketch kommt Reset des Attiny84 auf SS und der liegt> leider auf dem ganzen Board nur an Pin10.. die anderen Pins liegen an> der Pinleiste und am Header.Gerald R. schrieb:> Im Sketch steht doch dass reset PIN10 ist und nicht 1 wie dein> Bild> zeigt.> Vermutlich ist das dein Problem.
So ist es. Pin10 des Arduino mit Pin4 am ATtiny verbunden und schon
komme ich ein Stück weiter. Zumindest wird jetzt etwas auf den ATtiny
geschrieben und die IDE hat keine Fehlermeldung. Wenn ich die LED am
ATtiny anschliesse blinkt sie! Toll :-)!
Irgendetwas geht aber immer noch schief. Wie ihr dem angehängten Log
entnehmen könnt, vermeldet die IDE zwar alles ok. Leider brennt nach dem
Schreiben aber die LED an Port 8 des Arduino. Laut Sketchbeschreibung
ist das die Error LED.
Ich hätte erwartet, das nach dem Schreiben wieder die Heartbeat LED
pulsiert.
Gerald R. schrieb:> Was?>> Da kommt nicht mehr Information wenn man die falsche Pinbelegung hat.> Sketch uses 296 bytes (3%) of program storage space. Maximum is 8,192> bytes.> Global variables use 9 bytes of dynamic memory.> avrdude: Yikes! Invalid device signature.> Double check connections and try again, or use -F to override> this check.
In den Arduino Voreinstellungen die ausführlichen Meldungen beim
Hochladen aktivieren.
Das mit dem verdrahteten ISCP halte ich für unübersichtlich, anstatt
einfach 10-13 direkt rüberzuziehen wird aufwendig am 6Pin Header
rumgefummelt und noch einer von Pin10 rübergeholt, genauso GND und VCC.
Der Icsp ist eher von Vorteil wenn man verschiedene Header Adapter
rumliegen hat.. dann kann man ganz einfach mit 2 Adaptern 6Pin-6Pin oder
6Pin-10Pin programmieren.
VCC und GND sind doch auch auf dem 6Pin Header, na wenn schon denn schon
könnte das nen bisschen schicker aussehen wenn ein Adapter mit 6er
Pfostenbuchse auf 6 Steckpins geht. ;)