Hallo,
ich ahbe versehentlich bei meinem AT90CAN128 ein Fusebit mit dem
AVRStudio verstellt. Es handelt sich um das Popupmenue, wo man die
Frequenzen einstellen kann. (STK500 => Fuse Tab => weit unten das
einzige Pullupmenue)
Seitdem kann ich weder die Devicenummer auslesen, noch irgendetwas
anderes machen. Beim durchklicken durch die oberen Tabs kommt immer eine
Messagebox, dass keine Verbindung möglich ist. Was kann ich machen?
weißt du noch was du eingestellt hast? wahrscheinlich will das ding
jetzt einen externen takt von dir haben. wenn du die SPI fuse geschossen
hast oder den reset-pin abgeschaltet hast hilft dir nur noch ein HV
progger. glaube das STK500 kann HV programmieren.
Ich weiß leider nicht genau, was ich da verstellt habe. Ich weiß nur,
dass es wahrscheinlic irgendetwas ist, was ich mit rot umrandet habe.
Ein externer Quarz ist ja angeschlossen (16 MHz)
Leider hast du aber nicht Quarz eingestellt (Crystal Oscillator) sondern
externen Takt (ext. Clock). Das heißt du musst an XTAL1 ein 50%
Dutycycle rechteckförmiges Signal anlegen.
yop, ext.clock heißt nicht ext. resonator... :)
naja. hast du das STK500 board? versuch doch mal den HV prog mode. ich
hab kein STK500 daher kann ich dir nicht sagen wie das geht.
alternativ kannst du schauen ob du in deiner bastelkiste einen
taktgenerator hast. das sind so kleine metallkästen mit vier
anschlüssen. einfach irgendwas mit ein paar MHz so an den xtal pin dran
und die fuses damit richtig einstellen.
>>Du kannst beim STK500 auch einfach einen Takt einspeisen lassen mit dem>>Oszillator der auf dem STK500 drauf ist.
Wie geht das? Muss ich dann den Crystal Sockel bestpcken, oder etwas
anderes brücken?
Soweit ich weiß musst du nur den entsprechenden Jumper stecken und beim
STK500 in dem Dialog den Takt auf dem Board entsprechend konfigurieren.
Siehe AVRStudio Hilfe.
OSCSEL Jumper nach rechts bzw. oben stecken (in Richtung der RSR232
Buchsen), XTAL1 stecken, im Dialogfenster vom AVR Studio die gewünschte
Frequenz einstellen, fertig.
Jetzt habe ich es so gemacht, wie sp1 es geschrieben hat, aber es
erscheint immernoch die Fehlermeldung, wenn ich den Fuse-Tab zum
Einstellen der Frequenz aufmachen will.
3.686 MHz funktioniert, anstelle con 250 kHz bei der ISP frequenz gehen
nur 115.2 kHz, aber das sollte doch auch ok sein.
Trotzdem immernoch das gleiche: Entering programming mode.. FAILED!
Wenn ich PP/HVSP als programming mode auswähle, kommt zumindest kein
Fehler zurück, wenn ich die Tabs aufmache (Entering programming mode ist
schinbar ok). Ich will da aber jetzt nichts ausprobieren und ggf. noch
mehr kaputt machen
Was mit bei dem screenshot weiter oben auffällt, ist es, dass SPIEN ohne
Häkchen ist.
Bei meinem STK500-Nachbau, an dem ich einen atmega8 flashe, ist bei
SPIEN ein Häkchen vorhanden, in dem Zustand geht das lesen/flashen über
ISP.
Prüf mal nach, denn damit hättest Du die ISP-Schnittstelle stillgelegt.
SPIEN lässt sich dann mit HV-programmieren reparieren.
@ Peter R.: Muss ich ausser SPIEN noch etwas setzen? Jetzt geht schon
viel mehr, aber (WARNING: Fuse bits verification.. FAILED) es kommt
immernoch eine Fehelrmeldung.
Dass sich die Reaktion auf das SPIEN-Häkchen zeigt, ist ja schon ein
Sternlein am Horizont.
Wie wärs mal damit, das Datenblatt des Kontrollers herunterzuladen und
die Grundeinstellung, bzw. den Auslieferungszustand für die fuses
herauszulesen?
Das sind die default-Werte der fuses.
Dann erst mal die Grundeinstellung wieder herstellen.
Wenn Du einen weiteren Kontroller hast, dessen fuses noch nicht gequält
wurden, kannst Du ja die Grundeinstellung aus dem herauslesen. (Im
Moment ist das halt riskant, da Du Dir ja noch nicht sicher bist, wie
die fuses verloren gingen.)
Ich selbst hab mit dem AT90CAN... Kontroller, um den es sich hier
handelt, noch nie etwas gemacht, kann also nur Tipps geben, wo man
suchen sollte.
Vielleicht kannn Dir irgendjemand die fuses sofort sagen, dann geht aber
ein Lerneffekt verloren : Wo findet man im Datenblatt die Einstellungen
der Fuses?
Viel Erfolg.
Die Default Fuses habe ich im Datenblatt gefunden, und JTAGEN,
SPIEN, CKDIV8 und CKOUT gesetzt. Der Fehler ist immernoch da.
Komischerweise ändert sich auch nix, wenn ich die Targetplatine
abklemme. Gleicher Fehler, gleiches Verhalten... Da mache ich mir doch
Sorgen, ob der µC defekt ist....
Wenn der Kontroller defekt oder security-aktiviert ist, kommt eigentlich
immer fffff oder 00000 als Leseergebnis für fuses oder die sogenannte
Signatur.
Da bei Dir SPIEN setzbar und löschbar ist, müsste der Kontroller noch in
Ordnung sein.
Da fällt mir ein : Vielleicht ist der Programm-Leseschutz
(security-bits) aktiviert worden. Versuche einmal, die Signatur des
Bausteins zu lesen.
Im ISP-Mode kommt 0x00 0x00 0x00 und im anderen Modus 0xFF 0xFF 0xFF.
D.h. es sieht nicht gut aus? Au Mann, dann habe ich den Controller wohl
irgendwie durch die Fuses geschrottet. So ein Mist!
FF oder 00 zeigt erst einmal nur, dass die Datenübertragung nicht
klappt.
Ich selbst habe in den letzten beiden Jahren erst zwei mega8 zerbraten,
obgleich ich fast kriminell mit denen umgehe. Falschpolung,
Kurzschlüsse, falsche fuses vertragen die Kontroller erstaunlich gut,
wie ich erfahren habe.
Man kann sich zwar leicht per fuse oder security-bit aussperren, aber
das wäre per STK500 zu beheben.
Zuerst mal prüfen, ob nicht irgendeine Verwechslung der Anschlüsse,
falscher Sockel usw. vorliegt. (Das HV-Programmieren + Target vertragen
sich m.E irgendwie nicht ?)
Auch die ISP-Geschwindigkeit ist ein Kandidat: es einmal mit sehr
langsamem Takt probieren. Und zuerst mal nur probieren, ob die Signatur
gelesen wird, das ist so ziemlich die einfachste Funktion der
Programmierschnittstelle.