Hallo, ich habe soeben versucht den Crumb128 von chip45.com mit TwinAVR zu programmieren. Und dabei ist wohl was schief gegangen. Da der auf dem Crumb128 Board verbaute Atmega128 standardmäßig den internen Oszillator verwqendet, wollte ich zunächst cksel0...3 neu einstellen. Die Kommunikation über ein selbstgebautes ISP-Kabel hat auf Anhieb geklappt. Ich konnte alle Lock-& Fuse Bits auslesen. Das chip45 Datenblatt hatte ich allerdings wohl zu flott gelesen. Dort steht: "...If you want to use the 14.7456MHz clock crystal instead of the internal oscillator (which is default) set CKSEL[0..3] fuse bits to 0xF." Ich hatte in der Eile ...set fuse bits to 'off' statt '0xF' gelesen und mal alle vier (0-3) auf 0 (unchecked) gestellt. Seitdem kann ich den Controller über TwinAVR nicht mehr ansprechen. Weiss jemand weiter? Aus dem original Atmega128 Datenblatt werde ich auch nicht so richtig schlau. Vielen Dank schonmal, Niklas
Mh schade um das Ding, sieht ganz nett aus ^^ Ne, jetzt mal ernsthaft wenn du die Fuses falsch eingestellt hast bleibt dir nur noch den Mega über nen parallelen Programmer wieder heile zu machen oder den passenden Takt anzuschließen, was bei dem fertigen Board ja eher kompliziert werden dürfte.
Da hast du den Prozessor auf externen Takt umprogrammiert! Lege vorübergehend einen externen Takt, 1MHz oder was du gerade hast, an XTAL1 an und programmiere das Teil wieder um. Leider sind die XTAL-Pins nicht rausgeführt...
Achja was der richtige Takt ist findest du im Datenblatt unter "System Cock and Clock Options"
Vielen Dank für die schnellen Nachrichten. Das Datenblatt hatte ich mir angesehen, allerdings habe ich den Unterschied zwischen External Clock und External Crystal bzw. Oscillator nicht verstanden. Soweit ich das Datenblatt begreife, habe ich den Controller auf 1111 umgestellt (alle Kästchen nicht abgehakt = alle unprogrammiert = 1111). Liege ich da richtig? Und wenn ja, habe ich damit den Controller jetzt nicht auf den externen Quarz (also auf den fest verdrahteten 14.7456MHz Quarz) umprogrammiert? Richtig oder Flasch? @Uwe: Was verstehst Du unter "externem Takt" - meinst Du damit einen Quarz oder was anderes (was Atmel als Clock bezeichnet) - und falls Du Clock meinst: wie sieht so ein Clock-Signal aus? Könnte ich die dafür 1MHz Kalibrierfrequenz aus dem Oszilloskop nehmen? Bin immer noch am Rätseln und würde mich über weitere Aufklärungen freuen! Aber vielen Dank schonmal. Niklas
Externer Quarz: Interner Oszillator, der einen extern angeschlossenen Quarz zum Schwingen braucht. Externer Takt: Der Takt kommt von aussen, also von einem externen Taktgenerator, zB. Quarzoszillator, oder vielleicht von einem anderen Prozessor, oder sonstwoher. XTAL1 ist ein Eingang. Das Oszilloskop hat vermutlich eine zu kleine Spannung, meins macht glaube ich 2V Amplitude. Besser wäre so knapp unter 5V, aber nicht mehr! Käme auf einen Versuch an. Alternativ ein kleiner RC-Oszillator mit Invertern aufgebaut. Die Frequenz ist ziemlich unkritisch und mit deinem Oszilloskop kannst du die ja prüfen. Oder so ein Quarzoszillator mit 4 Beinen. Das mit den Häkchen hängt anscheinend von der Programmiersoftware ab und führt immer wieder zu Verwirrungen. Alle 1 wäre ja 0xf wie gewünscht, in deinem ersten Posting hast du aber was von 0 geschrieben, das ist externer Takt.
@Uwe: Vielen Dank für die Aufklärung! Die Verwirrung bezüglich 0 und 1 bestand Anfangs, da ich das Atmega128 Datenblatt gar nicht angesehen habe, sondern mich auf das Crumb128 Infosheet verlassen hatte. Dort steht ja "...set CKSEL[0..3] fuse bits to 0xF" - ich hatte aber statt "0xF" "off" gelesen und deshalb mal alle ausgeschaltet. Erst später hatte ich bei der Lektüre des Atmega128 Datenblattes dann bemerkt, dass das Ganze aufgrund der inversen Logik (0=gesetzt, 1=nicht gesetzt) ziemlich verwirrend ist. Tatsache ist, ich habe die Häkchen in TwinAVR entfernt und weiss nicht, ob ich die Bits nun gesetzt habe oder nicht. Falls ich sie nicht gesetzt habe, hieße das ja, der Chip sollte sich auf den externen und schon verdrahteten 14.7456MHz Quarz takten. Tut er aber offenbar nicht. Falls ich sie doch gesetzt habe, müsste ich einen externen Takt anschließen. Das habe ich jetzt gemacht. Ich habe den 1MHz Takt aus dem Oszilloskop verwendet. Du hattest Recht mit den 2V, daher hängt da jetzt ein kleiner Verstärker dazwischen, der Das Taktsignal auf knapp unter 5V anhebt. Das sieht alles recht sauber aus, dennoch komme ich an den Controller nicht mehr ran. Falls noch jemand eine Idee hat, freue ich mich davon zu hören! Viele Grüße, Niklas
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.