Forum: Mikrocontroller und Digitale Elektronik ATMega2560 Fuses - ausgesperrt (internal clock)


von Daniel J. (Gast)


Angehängte Dateien:

Lesenswert?

Hallo liebes Forum,

ich bin seit langem schon stiller Mitleser und hab schon die ein oder 
anderen hilfreichen Tipps "bekommen" und hoffe, ihr könnt mir jetzt auch 
bei einem direktem Problem helfen:

Ausgangszustand:
Selbstbau Entwicklungsboard (ursprünglich als Radiowecker-Projekt mit 
LCD, 7-Seg, DCF, I²C-Radiomodul, mittlerweile Erweitert um Pinheader für 
alle Ports) auf Basis des ATMega2560. Programmieradapter MySmartUSB 
light, später Arduino IDE (ich weiß, ich geh jetzt lieber in Deckung und 
warte die Schläge ab) mit Bootloader.

Vorgehen:
Platine bei ITead in Auftrag gegeben, kontrolliert (passt) und alles 
zusammen gelötet. Spannung angelegt (5V über USB bzw. USB-Netzteil), 
SmartUSB angeschlossen und ich konnte den AVR ansprechen. Fuses konnten 
ausgelesen werden. Also gut, ran an den Speck und die benötigten Fuses 
für den Bootloader schreiben, wie es Arduino wünscht (lfE2, 
hfD8,efFD,LockFF).
Anmerkung noch: Aufgrund von einem Bestellfehler, ahbe ich den 
benötigten 16Mhz-Quarz noch nicht und hab das Lowfuse auf Internem Clock 
ohne Prescaler gestellt. Daher E2.

Problem:
Seitdem lässt sich der Atmel nicht mehr ansprechen :( AVRDude kann die 
Signatur nicht auslesen. Ich habe es über die Arduino-Oberfläche und 
über den BurnOMat probiert.

C:\Users\Projekte\arduino-1.0.1-windows\arduino-1.0.1\hardware\tools\avr 
\bin\avrdude.exe  -C 
C:\Users\Projekte\arduino-1.0.1-windows\arduino-1.0.1\hardware\tools\avr 
\etc\avrdude.conf  -p m2560 -P com5 -c stk500v2  -U 
efuse:r:C:\TEMP\efuse8565881303580513025.hex:r -U 
hfuse:r:C:\TEMP\hfuse6180739087379018774.hex:r -U 
lfuse:r:C:\TEMP\lfuse6350084628723673676.hex:r

avrdude.exe: stk500v2_command(): command failed
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to 
override
             this check.

Ich habe ja eigentlich weder die falsche Clockfuse gesetzt (intern und 
ohne Vorteiler...sollte doch gehen?) noch SPI disabled. Einzig die 
Lockfuse macht mich stutzig. In der Standardconfig lautet sie 3F, wird 
aber als FF angegeben. Wobei die letzten beiden Bits nicht verwendet 
werden. Oder doch?

Könnt ihr mal meine Fusesettings überprüfen ob ich hier irgend einen 
doofen Denkfehler habe? An der Schaltung kanns ja nicht liegen, nachdem 
ich Problemlos die Fuses lesen und auch einmal schreiben konnte.

Vielen Dank schon im Voraus.

Achja...das ist nicht meine erste Arduino-Mega2560 Platine im Selbstbau. 
Einziger Unterschied ist der nicht verwendete Quarz diesmal. Bisher 
liefen alle.

Grüße
Daniel

von Stefan W. (dl6dx)


Lesenswert?

Daniel J. schrieb:
> Problem:
> Seitdem lässt sich der Atmel nicht mehr ansprechen :( AVRDude kann die
> Signatur nicht auslesen. Ich habe es über die Arduino-Oberfläche und
> über den BurnOMat probiert.

Du sprichst also den Arduino-Bootloader über die serielle Schnittstelle 
an, ja?

> Anmerkung noch: Aufgrund von einem Bestellfehler, habe ich den
> benötigten 16Mhz-Quarz noch nicht und hab das Lowfuse auf Internem Clock
> ohne Prescaler gestellt. Daher E2.

Damit ist die Taktfrequenz (ca.) 8 MHz statt 16 MHz. Was bedeutet das 
wohl für die serielle Schnittstelle?

Schau doch mal, ob du (vorübergehend) die Baudrate im PC halbiert 
bekommst.

Grüße

Stefan

von Daniel J. (Gast)


Lesenswert?

Hallo Stefan,

Nein, bisher läuft alles über die ISP Schnittstelle. Wie gesagt, den 
Bootloader zu installieren, war mir, wegen besagtem Fehler noch nicht 
möglich. Die Ausgabe von Arduino kannst du meinen Anhang im 
Eröffnungspost entnehmen.

Über ISP sollte ich, meiner Meinung nach, mit den gewählten Fuses immer 
noch mit dem Atmel kommunizieren können.

Ich verwende den mySmart USB light mit der STK500v2 Firmware und dem 
dazugehörigen Progtool. Bisher hat das auch immer geklappt.

Gruß
Daniel

von Stefan W. (dl6dx)


Lesenswert?

Daniel J. schrieb:
> Über ISP sollte ich, meiner Meinung nach, mit den gewählten Fuses immer
> noch mit dem Atmel kommunizieren können.

Eigentlich schon. Passt der ISP-Takt?

Grüße

Stefan

von Daniel J. (Gast)


Lesenswert?

Siehe 
http://shop.myavr.de/Topseller/mySmartUSB%20light.htm?sp=article.sp.php&artID=200006

"Hinweis zur Taktfrequenz: im Gegensatz zu den anderen myAVR Programmern 
hat der mySmartUSB light einen automatischen Teiler integriert. Durch 
den Teiler wird die Taktfrequenz durch eine dreimalige Abfrage so lange 
geteilt, bis die Taktfrequenz mit dem Prozessor übereinstimmt. Der 
mySmartUSB light kann nur bis auf 52910 Baud (~211 kHz) herunter gehen 
während der mySmartUSB MK2 und der mySmartUSB MK3 ~128 kHz problemlos 
erreichen können. "

Ich habe keine Möglichkeit den ISP-Takt zu beeinflussen, das macht der 
Programmer selbst.

Außerdem hab ich ja die Prescale-Fuse weggenommen, somit läuft er nicht 
mehr mit 1Mhz (Auslieferzustand) sondern sollte mit 8Mhz intern laufen, 
also sogar schneller. Im Auslieferzustand hat er sich auch noch 
wunderbar ansprechen lassen. Ich versteh jetzt einfach nicht, wo der 
Fehler liegt. Soweit sollten die Fuses nicht kritisch sein.

von S. Landolt (Gast)


Lesenswert?

> Double check connections
Der Vorschlag war doch ganz gut, schon befolgt?

von Daniel J. (Gast)


Lesenswert?

Japp, man kann sagen Triplechecked ;) Aber ich klingel jetzt nochmal die 
Leitungen zum AVR durch, nicht das sich doch eine kalte Lötstelle oder 
so versteckt.

von Joachim B. (jar)


Lesenswert?

Daniel J. schrieb:
> Nein, bisher läuft alles über die ISP Schnittstelle. Wie gesagt, den
> Bootloader zu installieren, war mir, wegen besagtem Fehler noch nicht
> möglich. Die Ausgabe von Arduino kannst du meinen Anhang im
> Eröffnungspost entnehmen.

so ein scheinbar ähnliches Problem habe ich aktuell auch, ich vergass an 
den ISP Leitungen den obligatorischen Serien 470 Ohm oder besser 1k Ohm 
wenn die MOSI MISO Ports als Ports gebraucht werden. Da verhindert die 
angeschlossene Schaltung das eine vernünftige Kommunikation zustande 
kommt.

Früher habe ich diese Ports nur als Eingang genutzt und mit dem 
Widerstand von 470 Ohm trotzdem low oder high feststellen können, 
gleichwohl störte die angeschlossene Schaltung nicht bei der ISP 
Benutzung weil sie über 470 Ohm getrennt war.

: Bearbeitet durch User
von Daniel J. (Gast)


Lesenswert?

Die einzige Schaltung, die noch auf die ISP-Pins geht, ist ein Bereich 
für ein RFM-Modul, welches aber noch nicht bestückt ist. Somit sind die 
ISP-Pins nur mit dem Programmer verbunden. Serienwiderstände habe ich 
bisher nicht vorgesehen und auch noch nie benötigt.

Ohmsche Verbindung zwischen Anschlussleiste und µC ist in Ordnung. Hab 
auch alle Lötstellen nochmal nachgelötet. Die Resetschaltung besteht aus 
einem C gegen GND (22pF) und einem R gegen VCC (10k). So erpropt und 
ohne Auffälligkeiten bisher.

Sind die Fuses soweit in Ordnung? Hab ich was übersehen?

Vielen Dank schonmal für die bisherigen Tipps.

Daniel

von S. Landolt (Gast)


Lesenswert?

Vielleicht mal auf gut Glück einen externen Takt zuführen, sagen wir 1 
MHz, per Schutzwiderstand, paar hundert Ohm, an XTAL1 oder XTAL2.

von Charly B. (charly)


Lesenswert?

22Pf nach gnd iss nix, ich hab 100nF drin, unter 10nF wuerd
i nicht gehen und mach noch eine Diode ueber den 10K (K an vcc)

weis nicht ob die cpu noch ein clk/8 hat und dann ist sie event.
jetzt zu langsam f. deinen isp Programmer


viel erfolg
Charly

von Daniel J. (Gast)


Lesenswert?

Guten Morgen zusammen,

so... Problem gelöst. Tut mir leid, dass ich eure Zeit gestohlen habe. 
Der Fehler war eigentlich ganz leicht lösbar ... Löte einen Quarz ein 
und alles wird gut. Ich hab wohl ausversehen doch die Clockfuse auf 
externen Quarz gestellt.
Hab jetzt einen 16Mhz-Quarz auftreiben können und eingelötet. Jetzt 
läuft die Schaltung und der Bootloader ist auch drauf.

Vielen Dank an euch alle für die Hilfestellungen.

Gruß
Daniel

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
Noch kein Account? Hier anmelden.