Hallo liebe Forum community, als elektronik Anfänger habe ich eine Frage zur Programmierung des ATtiny 13A mikrochips. Die Problematik ist folgende: Ich möchte eine Hexadezimaldatei über einen Arduino Uno (als ISP) auf einen ATtiny 13A laden. Dabei muss ich, da für diese Anwendung notwendig, die Fuses des ATtiny auf folgende werte sezten: High byte: 0xFF, Low byte: 0x7B. Nachdem ich den Arduino as ISP-Sketch erfolgreich auf den Arduino Uno hochgeladen habe und die Funktion überprüft habe, wurde der ATtiny laut den im Netz kursierenden Schaltplänen angeschlossen und der Ground und Reset Pin am Arduino mit einem 10uF Elko verbunden. Danach habe ich mit einem Avrdude befehl die Fuses gebrannt, laut Rückmeldung mit erfolg (Siehe unten). Dann wollte ich die Hexadezimaldatei hochladen, bekomme aber die Fehlermeldung: "avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check." Hier nochmal die gesamten eingaben: C:\Users\[Mein Name]>avrdude -v -v -pattiny13 -cstk500v1 -PCOM5 -b19200 -U lfuse:w:0x7B:m -U hfuse:w:0xFF:m avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf" Using Port : COM5 Using Programmer : stk500v1 Overriding Baud Rate : 19200 AVR Part : ATtiny13 Chip Erase delay : 4000 us PAGEL : P00 BS2 : P00 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 5 4 0 no 64 4 0 4000 4000 0xff 0xff flash 65 6 32 0 yes 1024 32 32 4500 4500 0xff 0xff signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 calibration 0 0 0 0 no 2 0 0 0 0 0x00 0x00 lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Programmer Type : STK500 Description : Atmel STK500 Version 1.x firmware Hardware Version: 2 Firmware Version: 1.18 Topcard : Unknown Vtarget : 0.0 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.05s avrdude: Device signature = 0x1e9007 avrdude: safemode: lfuse reads as 6A avrdude: safemode: hfuse reads as FF avrdude: reading input file "0x7B" avrdude: writing lfuse (1 bytes): Writing | ################################################## | 100% 0.03s avrdude: 1 bytes of lfuse written avrdude: verifying lfuse memory against 0x7B: avrdude: load data lfuse data from input file 0x7B: avrdude: input file 0x7B contains 1 bytes avrdude: reading on-chip lfuse data: Reading | ################################################## | 100% 0.01s avrdude: verifying ... avrdude: 1 bytes of lfuse verified avrdude: reading input file "0xFF" avrdude: writing hfuse (1 bytes): Writing | ################################################## | 100% 0.01s avrdude: 1 bytes of hfuse written avrdude: verifying hfuse memory against 0xFF: avrdude: load data hfuse data from input file 0xFF: avrdude: input file 0xFF contains 1 bytes avrdude: reading on-chip hfuse data: Reading | ################################################## | 100% 0.01s avrdude: verifying ... avrdude: 1 bytes of hfuse verified avrdude: safemode: lfuse reads as 7B avrdude: safemode: hfuse reads as FF avrdude: safemode: Fuses OK avrdude done. Thank you. C:\Users\[Mein Name]>avrdude -v -v -pattiny13 -cstk500v1 -PCOM5 -b19200 -Uflash:w:Ebike_ATtiny13A_final.hex avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf" Using Port : COM5 Using Programmer : stk500v1 Overriding Baud Rate : 19200 AVR Part : ATtiny13 Chip Erase delay : 4000 us PAGEL : P00 BS2 : P00 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 5 4 0 no 64 4 0 4000 4000 0xff 0xff flash 65 6 32 0 yes 1024 32 32 4500 4500 0xff 0xff signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 calibration 0 0 0 0 no 2 0 0 0 0 0x00 0x00 lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 Programmer Type : STK500 Description : Atmel STK500 Version 1.x firmware Hardware Version: 2 Firmware Version: 1.18 Topcard : Unknown Vtarget : 0.0 V Varef : 0.0 V Oscillator : Off SCK period : 0.1 us avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny13 avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.03s avrdude: Device signature = 0x000000 avrdude: Yikes! Invalid device signature. Double check connections and try again, or use -F to override this check. avrdude done. Thank you. Nachdem ich so bereits 3 Chips "zerstört" habe und ca. 1 Woche zeit investiert habe, bin ich mehr oder weniger am verzweifeln... Ich wäre extrem dankbar über eure Hilfe! :) Liebe Grüße, Timo
Wenn du zuerst das Programm geladen hättest und dann die Fuses umgestellt, dann würde es funktionieren. Vorausgesetzt das Programm ist OK. Du hast den Oszillator auf 128kHz gestellt. Der Programmiertakt muss daher geringer als ein viertel des Oszillatortakts sein.
Hallo, ich hatte mal einen versehentliche Programmierung der Fuse-Bits auf Oszillator auf 128kHz. Da war dann nichts mehr zu machen, <=1/4 Takt war nicht machbar. Also lieber den Taktgenerator über das Programm einstellen, ob das beim tn13a geht, muss im Datenblatt stehen.
Timo T. schrieb: > C:\Users\[Mein Name]>avrdude -v -v -pattiny13 -cstk500v1 -PCOM5 -b19200 > -U lfuse:w:0x7B:m -U hfuse:w:0xFF:m Du setzt den AVRDUDE auf attiny13 und benutzt attiny13a, zwei komplett unterschiedliche Controller.
Hoppla. Lag ich wohl etwas daneben. Versuche trotzdem mal -pattiny13a
>der Ground und >Reset Pin am Arduino mit einem 10uF Elko verbunden. oha...
dupdidu schrieb: >>der Ground und >>Reset Pin am Arduino mit einem 10uF Elko verbunden. > > oha... Wieso "oha" ? Das ist voll korrekt. Dürfen auch ruhig 100µF sein Timo T. schrieb: > Nachdem ich so bereits 3 Chips "zerstört" habe Ein HV Programmer kanns wieder richten.
Liebe Alle, vielen Dank für eure schnelle Hilfe, ich hebe gerade zuerst die Datei hochgeladen und dann die Fuses geändert und es hat funktioniert :)) Vielen Dank auf jeden Fall nochmals an Alle Liebe Grüße, Timo
> Wieso "oha" ? > Das ist voll korrekt. > Dürfen auch ruhig 100µF sein Weil der Reset Ausgang des Programmers mit dem Reset Eingang des µC verbunden ist. Der AUsgang des Programmer wird durch den dicken Kondensator quasi kurzgeschlossen. Das tut dem Programmer nicht gut. Wenn der Kondensator zu groß ist, schafft der Reset-Ausgang es nicht schnell genug, den Pin auf Low zu ziehen. Und dann bricht die Software mit einer Kommunikationsstörung ab. Wenn der Kondensator größer als 100nF ist, rate ich dazu, einen 220 Ohm Widerstand in Reihe zu schalten, damit der Programmer den Pin zuverlässig schnell genug runter ziehen kann. Manche Leute verwenden an dieser Stelle einen Jumper, um den Kondensator abzuklemmen.
Stefan U. schrieb: > Wenn der Kondensator zu groß ist, schafft der Reset-Ausgang es nicht > schnell genug, den Pin auf Low zu ziehen. Und dann bricht die Software > mit einer Kommunikationsstörung ab. Wenn der Kondensator zu KLEIN ist bricht die Software mit einer Kommunikationsstörung ab. 1. Der Reset, des als ISP Programmer laufenden UNO, soll unterbunden werden. Da gibt es 3 Möglichkeiten: A. Den Reset mit dem 10µF bis 100µF Kondensator zwischen GND und Reset unterbinden. B: Einen niederohmigen Widerstand zwischen Vcc und Reset C: Die RST-EN Lötbrücke auf dem UNO auftrennen. Vorsicht bei A und B, diese belasten den Resettaster über Gebühr. Bitte in dem Zustand nicht betätigen. > Wenn der Kondensator größer als 100nF ist, rate ich dazu, einen 220 Ohm > Widerstand in Reihe zu schalten, damit der Programmer den Pin > zuverlässig schnell genug runter ziehen kann. Ein 100nF Kondensator ist fehl am Platze. Als Abblockkondensator an der Versorgung, ok, aber sonst, nööö.
> Wenn der Kondensator zu KLEIN ist bricht die Software mit einer > Kommunikationsstörung ab. Das ist nicht richtig. Die ISP Schnittstelle funktioniert ganz ohne Konensator am Reste Pin. > Der Reset, des als ISP Programmer laufenden UNO, soll > unterbunden werden. Wie kommst du jetzt darauf? Es soll ein ATTiny13 programmiert werden. Um den geht es. Am Arduino UNO braucht niemand herum zu basteln, der funktioniert so wie er verkauft wurde.
Stefan U. schrieb: > Am Arduino UNO braucht niemand herum zu basteln, der > funktioniert so wie er verkauft wurde. Blödsinn! Der UNO soll als ISP Programmieradapter genutzt werden. Dazu bedarf es dieser/einer Anpassung. Und das genau mit einer der 3 von mir genannten Methoden. Bitte lesen: https://www.arduino.cc/en/Tutorial/ArduinoISP > Note for the Arduino Uno: you'll need to add a > 10 uF capacitor between reset and ground. Jetzt alle Klarheiten beseitigt?
Ich denke schon. Du bist beim Reset Pin des Arduinos, der als ISP Programmer fungiert. Ich bin beim Reset Pin des Targets.
Stefan U. schrieb: > Du bist beim Reset Pin des Arduinos, der als ISP Programmer fungiert. Genau! Timo T. schrieb: > und der Ground und > Reset Pin am Arduino mit einem 10uF Elko verbunden. Und das hat er richtig gemacht. Worauf dann: dupdidu schrieb: > oha... Sich geirrt und damit diese Verwirrung angestiftet hat. Stefan U. schrieb: > Ich denke schon. Ich auch.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.