Hallo
Die Testplatine ist ohne Spannungsregler bestückt, weil ich sie nur für 4*1,2V konzipiert habe. Ein Diode in Reihe habe ich auch schon erwogen und werde ich einbauen. Da es mein erstes ISP-Projekt ist, habe ich noch keine weiteren Schaltungen zum Testen. Mein mysmartusb ist über ein normales USB-Kabel mit dem PC verbunden. Die Programmierleitung zur Testplatine ist ca. 30cm lang. Nach dem Wechseln der ATtinys funktioniert ja auch wieder alles für ein paar Tage.
AVRdude kontrolliert deshalb nach jedem Programmieren noch mal die Fuses und stellt sie ggf wieder her.
Wenn durch einen Übertragungsfehler ein fuse umgeschaltet wird und ich deshalb nicht mehr flashen kann, kann avrdude doch auch nicht mehr drauf zugreifen und es nach dem fehlerhaften Flashen automatisch korrigieren, oder?
Ich habe inzwischen ein 50cm Adapterkabel zwischen RP6 und Testplatine gelötet. Nun werden die (stabilisierten) 5V vom RP6 eingespeist und ein Takt erzeugt. Bei eingeschaltetem Takt habe ich dann 2,5V am Attiny13-Pin2, scheinbar das erwartete Recktecksignal, allerdings weiß ich ohne Oszi nichts über die genaue Kurvenform.
Und leider funktioniert es auch nicht. Vielleicht ist mein Takt falsch oder die Kurvenform zu schlecht. Mein Code:
Code:
DDRA |= 16; // E_INT1 als Ausgang
cli();
while(1) PORTA ^= 16;
Schneller wirds wohl auch mit reinem Assembler nicht gehen, es wurde so übersetzt:
Code:
DDRA |= 16; // E_INT1 als Ausgang
1bc: d4 9a sbi 0x1a, 4 ; 26
cli();
1be: f8 94 cli
1c0: 90 e1 ldi r25, 0x10 ; 16
while(1) PORTA ^= 16;
1c2: 8b b3 in r24, 0x1b ; 27
1c4: 89 27 eor r24, r25
1c6: 8b bb out 0x1b, r24 ; 27
1c8: fc cf rjmp .-8 ; 0x1c2 <main+0xe>
Ich hab's mal nachgerechnet: Ein-/Ausgabe und das exclusive Oder je ein Zyklus, der relative Sprung zwei Zyklen ergibt 5 Takte je Toggle und 10 pro Periode, also einen externen Takt von 8MHz/10=800kHz.
Scheinbar haben die Tinys unterschiedliche Defekte: Bei zweien werden von avrdude die fehlerhaften Signature-Bytes meist mit 0xFF, aber gelegentlich auch mit anderen Werten gemeldet. Einer wird aber immer mit 0X00 in allen Bytes angemotzt. Hat vielleicht auch nichts zu bedeuten.
Für wenig Geld gibt's bei myavr.de noch einen passenden Programmierer für meinen USB-Adapter. Kennt den jemand und könnte ich meine Tinys damit wiederbeleben, wenn nur die Fuses verstellt sind. Vielleicht bietet auch mein Programmieradapter noch weitere Möglichkeiten. Ich muss mich da mal einlesen, was nervig ist, wenn man mitten im Projekt steckt und keine funktionierenden Tinys mehr hat.
Ich will ja echt nicht meckern, aber (Billig-)ISP ist schon recht zickig.
Gruß
mic
Lesezeichen