Guten Abend, an meinem ATMega1284 hängt ein 12,288 Mhz Quarz. Nachdem ich die Fuses verändert habe, funktioniert die Kommunikation gar nicht mehr. >avrdude: stk500v2_command(): command failed >avrdude: stk500v2_program_enable(): bad AVRISPmkII connection status: >Unknown status 0x00 >avrdude: initialization failed, rc=-1 > Double check connections and try again, or use -F to override > this check. > > >avrdude done. Thank you. Die Fuses hatte ich auf folgende Werte gesetzt: -U lfuse:w:0x7f:m -U hfuse:w:0x99:m -U efuse:w:0xff:m was eigentlich "Ext. Crystal Osc.; Frequency 8.0- MHz; Start-up time: 16K CK + 65 ms; [CKSEL=1111 SUT=11]" entsprechen sollte. Was habe ich falsch gemacht und wie komme ich da am besten wieder raus? Beste Grüße.
An den Fuses liegt es nicht. Beschaltung des externen Quarzoszillators? Oder hast Du tatsächlich nur einen Quarz angeschlossen? Dann hilft nur noch einen richtigen Takt anzulegen.
:
Bearbeitet durch User
Tom schrieb: > was eigentlich "Ext. Crystal Osc.; Frequency 8.0- MHz; Start-up time: > 16K CK + 65 ms; [CKSEL=1111 SUT=11]" entsprechen sollte. Tut es, aber das willst Du garnicht haben. Tom schrieb: > Was habe ich falsch gemacht Du willst den 'Full Swing Oscillator' 0x7F 0x99 0xF7 Tom schrieb: > wie komme ich da am besten wieder raus? Externen Takt anlegen und Fuses neu setzen.
Nur für das Verständnis: Warum muss ein externer Takt angelegt werden, wenn der Quarz diesen schon liefern sollte? Externer Takt wäre doch wohl eher notwendig, wenn die Einstellung ext. Clock gewesen wäre? Welche Frequenz soll der zu anliegende Takt haben? Rechteck?
Ein Quarz liefert keinen Takt, sondern ist Bestandteil eines Quarzoszillators. Du hast Ext. Crystal Osc gefust. Das meint einen Quarzoszillator. Für einen Quarz mußt Du etwas mit Crystal full swing osc. fusen. 1MHz Rechteck sollte es tun. Bei kleineren Frequenzen mußt Du mit den ISP Takt des STK500 runtergehen.
Ein Quarz benötigt eine Schaltung, die ihn zum Schwingen anregt. In einem Quarz-Oszillator ist diese Schaltung integriert. Deswegen hat der auch zwei Anschlüsse mehr, für die Stromversorgung.
Tom schrieb: > Nur für das Verständnis: Warum muss ein externer Takt angelegt werden, > wenn der Quarz diesen schon liefern sollte? Weil er ihn halt offensichtlich nicht liefert. Das Problem ist eine Fehlanpassung, sprich: die verwendeten Bürdekondensatoren passen nicht wirklich zum Quarz. Der LP-Oszillator, den du da gefused hast, reagiert sehr empfindlich auf so eine Fehlanpassung. Er schwingt dann einfach nicht. Ein Weg wäre, auf FullSwing umzufusen, denn der ist deutlich toleranter gegenüber nicht optimal angepassten Quarzen. Bloß brauchst du halt erst mal einen Takt, um das tun zu können. Dazu kannst du temporär von außen einen Takt einspeisen, der Quarz und die Bürdekondensatoren brauchen dazu nicht entfernt zu werden. Der richtige Weg ist aber: die Bürdekondensatoren zu tauschen, bis die Sache auch als LP-Oszillator anschwingt. Dann ist der Quarz deutlich besser angepasst, was immer sinnvoll ist. Ganz egal, ob dann letztlich FullSwing oder LP gewählt wird.
c-hater hat Recht. Die Fuses wurden für einen Quarz eingestellt. Die meisten Beiträge darüber sind davon ausgegangen, dass "External Clock" eingestellt wurde, das ist aber nicht der Fall. WIe dem auch sei, du kannst den Chip wieder beleben, indem du einen Takt (z.B. von einem fix und fertigen Quarz-Oszillator) an den Pin XTAL1 anlegst.
Okay. Nur um sicher zu gehen, dass ich das Problem genau verstanden habe: Die Kapazitäten am Quarz wurden so schlecht gewählt, dass der MCU diesen nicht zu schwingen bekommt. Hätte ich nun aber genau die richtige Kapazität gewählt, dann hätte das ganze auch funktioniert? Was macht Full Swing jetzt anders, dass dieser fehlertoleranter ist?
Tom schrieb: > Okay. Nur um sicher zu gehen, .......... Nur um sicher zu gehen, mal so am Rande: nachdem du dich bereits beim Quarz-Takt nicht besonders professionell angestellt hast muss man auch die Frage stellen ob du deinem Controller ausreichend Abblock-Kondensatoren nach Hersteller-Empfehlung spendiert hast .... das hat nämlich massiven Einfluss auf die zuverlässige Funktionsweise .... auch beim Flashen. Was? Abblock-Kondensatoren? Was ist das? Braucht es bei mir nicht, bei mir geht's auch ohne.
Tom schrieb: > Okay. Nur um sicher zu gehen, dass ich das Problem genau verstanden > habe: > Die Kapazitäten am Quarz wurden so schlecht gewählt, dass der MCU diesen > nicht zu schwingen bekommt. Hätte ich nun aber genau die richtige > Kapazität gewählt, dann hätte das ganze auch funktioniert? So isses (unter der Annahme, das keine grundsätzlichen Schaltungsfehler vorliegen). > Was macht Full Swing jetzt anders, dass dieser fehlertoleranter ist? Der packt schlicht mehr Energie rein. Der Vorteil ist: der Oszillator läuft auch in stark störungsverseuchter Umgebung stabil (aber auch nur dann, wenn der Quarz korrekt angepasst ist!). Der Nachteil: er braucht deutlich mehr Strom als der LowPower-Oszillator.
Beitrag #5876347 wurde von einem Moderator gelöscht.
Arduino Fanboy D. schrieb im Beitrag #5876347: > Also gefust für Oszillator und Quarz dran gebaut. > Das läuft nicht. Bitte sieh dir die vom TO genannten Fuse Werte an. Er hat nicht auf externen Takt gefused sondern auf Quarz. Insoweit ist alles in Ordnung. Er wäre aber nicht der Erste, der sich bei den Bürde-Kondensatoren geirrt hat - wobei 10pF Abweichung nicht tödlich sind. Meist hat man um Zehnerpotenzen falsch gewählt / gelesen.
Arduino Fanboy D. schrieb im Beitrag #5876347: > Du sagst, du hast einen Quarz montiert. > Du sagst, du hast für einen externen Oszilator gefust. Nö, hat er nicht. Im Ausgangspost steht > -U lfuse:w:0x7f:m -U hfuse:w:0x99:m -U efuse:w:0xff:m d.h. CKSEL3..0 = 1111, was lt. DB "Low Power Crystal Oscillator 8.0 - 16.0MHz" heißt, also Quarz. Für Quarzoszillator müsste "external Clock CKSEL3..0 = 0000" programmiert sein, oder übersehe ich da was? Warum der Quarz nicht schwingt, ist vielleicht eine Frage der Schaltung, des Aufbaus oder anderer Faktoren, über die wir allerdings -wie leider oft üblich- im Unklaren gelassen werden. Übrigens ist CKDIV8 unprogrammiert, d.h. der Takt -wenn er denn Läuft- wird noch durch 8 geteilt, der TO hat also 1,536 Mhz Takt zur Verfügung. Reinhard
:
Bearbeitet durch User
Georg G. schrieb: > Er wäre aber nicht der Erste, der sich bei den Bürde-Kondensatoren > geirrt hat - wobei 10pF Abweichung nicht tödlich sind. Für den LowPower-Oszillator SIND 10pF daneben i.d.R. tödlich. Genau das ist wohl das Problem des TO...
Tom schrieb: > Was macht Full Swing jetzt anders, dass dieser fehlertoleranter ist? Drückt mehr Energie in den Schwingkreis. Falls du das ganze auf einem Steckbrett aufgebaut hast, unterschätze nicht die Kapazitäten der Steck-Kontakte.
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.