Atmega 2560 verfused - Was tun?

Moderator Persönliche Seite #4344315
Lesenswert?

Nico .. schrieb:
> Ich dachte SPI kann man garnicht per SPI deaktivieren oder?

Allerdings hat ein ATmega2560 auch JTAG, damit kann man SPI sehr wohl
abklemmen, und man könnte sich auch ins Knie schießen und JTAG selbst
zugleich mit abklemmen …  SPIEN hat er aber noch drin.

Sein Problem dürfte sein, dass er den low-frequency crystal oscillator
aktiviert hat, dieser aber den 16-MHz-Quarz nicht bedienen mag.

Also entweder (vorübergehend) einen anderen Quarz dranhängen oder
einen externen Takt einspeisen.  (Würde man komplett auf JTAG gehen,
wäre das alles egal gewesen, da JTAG mit seinem eigenen Takt arbeitet.)
Moderator Persönliche Seite #4344351
Lesenswert?

Nicht einfach blind irgendwas eintippen.  Da oben in der Ausschrift
sind ganz offensichtlich die Namen für efuse und hfuse vertauscht.
hfuse = 0xD1 bedeutet:
1
8 4 2 1 8 4 2 1
2
---------------
3
1.................. OCDEN:   disabled
4
  1................ JTAGEN:  disabled
5
    0.............. SPIEN:   enabled
6
      1............ WDTON:   disabled
7
        0.......... EESAVE:  enabled
8
          0........ BOOTSZ:  max
9
            0......  "        "
10
              1.... BOOTRST: disabled
Moderator Persönliche Seite #4344364
Lesenswert?

Nico .. schrieb:
> Woher weißt Du dass das vertauscht wurde?

Weil eine efuse von 0xD1 gar nicht existieren kann.

Weil die Reihenfolge so herum sinnvoller aussieht.

Weil die Fusewerte so herum zumindest ansatzweise sinnvoll sind
und eben klar wird, dass nur die lfuse nicht zum tatsächlich
angeklemmten Quarz passt.

Weil offenbar nach wie vor trotz einer seit 1,5 Jahren existierenden
Version 6.1 an allen Ecken und Enden noch mit AVRDUDE 6.0.1 gearbeitet
wird, die eben genau diesen Bug hatte, dass die Ausgabe der Fusenamen
vertauscht worden war.
Moderator Persönliche Seite #4344383
Lesenswert?

Jonas Wühr schrieb:
> wie groß müsste das quarz für meine low-frequenz einstellung lauten und
> wie müsste diese richtig lauten?

Hast du denn kein Datenblatt?  Da steht doch als erster Satz unter
“Low-frequency crystal oscillator”:
1
The device can utilize a 32.768 kHz watch crystal as clock source by 
2
a dedicated Low Frequency Crystal Oscillator. […]

Ich würde an deiner Stelle lieber ein 1-MHz-Rechtecksignal an XTAL1
einspeisen.  Den 16-MHz-Quarz kannst du dabei dran lassen, der sollte
nicht stören.

Richtige Einstellung wäre:

Full-Swing Crystal Oscillator => CKSEL[3:0] = 0111 - 0110 (Vorauswahl)

Tabelle 15:

Crystal Oscillator, fast
rising power => CKSEL[0] = 1, SUT[1:0] = 10
1
8 4 2 1 8 4 2 1
2
---------------
3
1.................. CKDIV8: disabled
4
  1................ CKOUT:  disabled
5
    1.............. SUT:    10
6
      0............ 
7
        0.......... CKSEL:  0111
8
          1........ 
9
            1...... 
10
              1....

Also 0xe7.  Falls du anderen Randbedingungen in Tabelle 15 hast, dann
entsprechend modifizieren.
Moderator Persönliche Seite #4344400
Lesenswert?

Peter D. schrieb:
> Man nehme einen 2. AVR (z.B. ATtiny13), programmiere ihn als 32kHz
> Taktgenerator und schließe ihn an XTAL2 an.

Ich würde ihn lieber auf 1 MHz programmieren, sonst muss man einen
extrem langsamen ISP-Takt benutzen.

Die Eingangsstufe des LF-Quarzoszillators wird schon irgendwie mit
1 MHz zurecht kommen.

Nur, wenn das gar nicht geht, würde ich dann noch auf 32 kHz gehen.

Ähem, an XTAL1 anschließen.  XTAL2 ist ein Ausgang.

> Und als erste Programmieraktion die Signatur lesen, ob die stimmt.

Macht AVRDUDE ohnehin.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren