Hallo zusammen, wer kann mir erklären, warum mein Atmel nicht mehr läuft und was ich dagegen tun kann? Aber erstmal im Detail: Ich habe einen Mega8 via ISP am Rechner, eine reine Testschaltung, nur eine serielle Schnittstelle und ein Quarz hängen noch am Mikrocontroller dran. Ich konnte auch völlig problemlos den Atmelprogrammieren und wollte dann durch setzen der Fusebits von internen Takt auf den 10MHz-Quarz umschalten (mit 2*18pF gg. GND). Dazu habe ich die entsprechende Anleitung unter s.huehn.de/elektronik/avr-prog/avr-prog.htm strikt befolgt. In Kurzform deren Inhalt: - SUT1 und SUT0 unchecken, also jeweils auf 1 - CKSEL3-CKSEL0 auf 1111 - CKOPT auf 1 - BODEN auf 0 - BODLEVEL auf 1 Der Rest sollte auf Werkseinstellung bleiben Muß wohl sagen, den marginalen Unterschied, daß diese Anleitung für den Anschluß eines 4MHz-Quarz an einen Mega8L gedacht (bei mir 10MHz an Mega8) ist habe ich erst übersehen. Nun kann ich weder den Atmel programmieren, noch auslesen, das aktuell geladenen Programm scheint aber noch richtig zu laufen. Seltsamerweise konnte ich irgendwann nach dem Auftreten des Problems ein einzelnes mal noch Programmdaten übertragen, aber was da war oder wieso es ging -- keine Ahnung. Aber vielleicht wißt Ihr weiter. Ich habe zwar noch einen Anderen, aber möchte natürlich wissen, was da schief ging, zumal ich den anderen eigentlich auch auf externen Quarz umschalten wollte. gruß Sternd
Hi, laut Datenblatt ist dein Mega8 jetzt auf 3-8 MHz eingestellt, versuch einfach ein Quarz in diesem Bereich anzuschliessen, dann sollte es gehen. Gruß, Feadi
Hallo, dass der Quarz nicht schwingt kann ich mir kaum vorstellen, er muesste zumindest laufen (auch wenn ungenau) nunja Wenn alles nciht hilft kannst du einen externen Takt an Xtal1 haenngen und versuchen auf ihn zuzugreifen. Evtl war es auch Xtal2
Womit Progst du, Ponyprog? Ich hoffe du hast dir dir Anleitung gut durchgelesen. Warscheinlich hast du auf externen Takt gestellt da im Ponyprog die Häckchen eine 0 bedeuten. Auf XTAL1 einen externen Takt anlegen und nochmal probieren. Sollte das nicht der Fall sein, richtige C am Quarz gegen Masse?, einen anderen Quarz probieren.
Ich weis auch noch was dazu zu sagen: Ich hatte eine AT90CAN128 in der Kur, bei dem ich aus Versehen auf externen Takt umgeschaltet hatte. Soweit so gut: Externen Takt angelegt und wie bei Dir keine Kommunikation mehr moeglich. Das Ding arbeitete sein letztes Programm aber noch korrekt ab. Der einzige Ausweg aus diesr Dilemma war die HighVoltage-Parallel-Programmierung. Somit war es mir wieder moeglich, die Fuses zu setzen, so dass ich auch letzendlich wieder ueber die SPI programmieren konnte. Natuerlich wollte ich der Sache auf den Grund gehen. Dabei stiess ich darauf, dass die Oszillator-Frequenz mindestens 4mal hoeher sein muss als die SPI-Taktung (beim AT90CAN128). Also, noch einmal auf externen Takt umgestellt und die SPI-Taktung von 1/4 bis auf 1/10 der Oszillator-Frequenz heruntergedreht. Jedoch kein Verbindugsaufbau moeglich. Erst als ich einen 32KHz-Signal als externen Takt verwendet hatte und die SPI sogar mit 57,6KHz bediente hatte ich teilweise wieder Zugriff auf den Controller. Mein Problem lag letztenendes beim serial clock SCK. Die High- und LOW-Phasen des SCK muessen deinem Oszillator angepasst sein. Schau doch mal im Data Sheet deines Controllers unter serial downloading nach, da findest Du Informationen darueber, wie lange die high- und low-Phase des SCK bei entsprechender Quarzeinstellung sein muss. Also, immer schoen vorsichtig sein, wenn man an Takt dreht und die SPI als Programmierschnittstelle verwendet. Gruss, Stefan
Danke für die Hinweise, ich werde denen nach dem WE nachgehen. Die Ideee, einen anderen Quarz zu verwenden oder eine RC-Schaltung aufzubauen kam mir schon, für erstere werde ich mir nächste Woche einen anderen Quarz holen, letztere muß ich zwar noch testen, aber ich glaube nicht, dass es mit dem RC funktionieren wird, weil die Fuses eigentlich nicht entsprechend eingestellt sein dürften. Einen externen Taktgenerator kann ich im moment leider nicht testen, der ist umzugsbedingt unzugänglich. Ich programmiere übrigens mit PonyProg, daß ich die Fuses falsch gesetzt habe, halte ich aber für relativ unwahrscheinlich, ich habe nicht nur alles mehrfach kontrolliert, sondern für MC-DAUs wie mich war die o.g. Anleitung auch mit Screenshots versorgt ;-). OK, ich werde also erstmal ausprobieren, was Ihr mir geraten habt. @Stefan: Deine Mail muß ich noch ein zweites mal lesen, bevor ich alles verstanden habe. Was ist denn HighVoltage-Parallel-Programmierung? 240 V parallel an alle Pins? Ne im Ernst, sagt mir noch nichts. Der Rest war natürlich verständlich, muß aber erstmal besagte Infos aus den Datenblättern rauslesen. so long und danke Sternd
Hmm, mit 4MHz und 8MHz Quarzen geht es auch nicht... Ich kann mir aber auch nicht vorstellen, daß das Umstellen der SPI-Taktung, wie Stefan vorschlug, funktionieren wird, denn ich bin mir halbwegs sicher, vor geraumer Zeit den Atmel mit externem Takt und sonst gleichem Versuchsaufbau programmiert zu haben. Gibt denn es eine Möglichkeit, die ClkFuses irgendwie zu reseten? gruß Sternd
Hallo,
>Gibt denn es eine Möglichkeit, die ClkFuses irgendwie zu reseten?<
ja die gibt es, man kann am Pin XTAL1 einen
externen Takt anlegen, dann kann man wieder
programmieren und die Fuses lesen und richtig
einstellen.
es grüsst,
Arno
Solange ich auf meinen externen Taktgeber warten muß frag ich noch mal nach, ob jemand eine Idee hat, woran es denn nun liegt, daß ich den Atmel nicht mehr per isp erreiche. Wie gesagt, ein externer Quarz liegt an, Cs entsprechend des Datenblattes und daß ich den ISP-Takt abändern muß, kann ich mir empirisch begründet auch nicht vorstellen. Nun habe ich ja auch den Brown dingsbums eingeschaltet, wenn auch mit einer Schaltschwelle von 2,7 Volt und mein Vcc liegt bei 5V+-0,05V. Mir ist absolut nicht klar, warum ich diesen Aussetzer habe. Und meinen zweiten und derzeit einzigen Atmel Mega8 mag ich nicht auf externen Takt umschalten, daß mir der nicht auch noch flöten geht.
> Solange ich auf meinen externen Taktgeber warten muß ... > Und meinen zweiten und derzeit einzigen Atmel Mega8 mag ich nicht Kleiner Tip. Du kannst Deinen zweiten und derzeit einzigen Mega8 als Taktgeber verwenden. Dann brauchst Du nicht auf irgendeine dubiose Lieferung warten. Einfach einen Pin toggeln lassen und an den 'toten' Mega8 haengen.
Danke Karl, da hätte ich eigentlich auch drauf kommen können. Aber wie du siehst, bin ich alles andere als routiniert im Umgang mit MCs. Aber, leider funkzt nicht. Der zweite Atmel - intern mit 1 MHz getaktet - toggelt einwandfrei, und den Ausgang habe ich direkt auf XTAL1 gelegt. XTAL2 hängt, wie auch im Datenblatt beschrieben, in der Luft. Ich habe verschiedene Takte probiert, aber Nr.1 gibt einfach keinen Pieps von sich. Ponyprog meldet konsequent, das Device wäre missing oder unknown...
Versuch mal den SPI-Takt so niedrig wie möglich einzustellen und mit externem Takt zu arbeiten. Clock(SPI)<Clock(XTAL1)/4, da der integrierte Microsequencer, der für das Flashen zuständig ist, sonst nicht nachkommt.
Da hatte ich neulich schon mal nach geguckt, aber nicht gefunden, wo ich den einstellen könnte. Ich vermute mal, daß sollte doch irgendwo in Ponyprog gehen...
Mit 'High voltage programming mode' meine ich die Programmierart, die bei ATMEL unter 'parallel programming' laeuft. High voltage deshalb, da man an den RESET Pin 12Volt anlegen muss, um in den Programmiermodus zu kommen. Diese Programmiererei ist etwas komplizierter, da man zusaetzlich noch die 12Volt braucht. Dafuer funktioniert sie aber so gut wie immer. Vorgehensweise findest Du im Datenblatt. Falls die serielle Programmierung gar nicht mehr funktionieren will, so koennte das die Lösung sein.
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.