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
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
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
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
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.
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.
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.
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
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
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