Forum: Mikrocontroller und Digitale Elektronik AVR ISP bei hoher Quartzfrequenz fehlgeschlagen


von Tim (Gast)


Lesenswert?

Hallo!
Ich beschäftige mich seit kurzem mit AVR Mikrocontrollern und möchte nun 
einen externen Quarz nutzen. Ich arbeite mit einem Mega 32 und WinAVR.

Mein Problem ist dass wenn ich den Mega32 mit einem 14,7456MHz Quarz 
takte ihn nicht mehr Programmieren kann (Fehlermeldung: avrdude: 
verification error, first mismatch at byte 0x0000 0x0c != 0x00) Nutze 
ich einen 8MHz Quarz oder den internen RC Oszillator funktioniert alles 
einwandfrei. Um das Programmieren langsamer zu machen habe ich erfolglos 
versuche AVRDude mit -i 10000 auszubremsen.
Liegt es vielleicht an den Fuses?
Die habe ich für den 14,7456Mhz Quarz mit Ponyprog folgendermaßen 
eingestellt :
[v]JTAG
[v]CKOPT
[v]BOOTSZ1
[v]BOOTSZ0
[v]SUT1
[ ]SUT0
[ ]CKSEL3
[v]CKSEL2
[ ]CKSEL1
[ ]CKSEL0

Bitte helft mir. So langsam bin ich am verzweifeln:-/

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Darf ich also annehmen, daß CKOPT nicht programmiert ist? Dann mach das 
mal. Ist über 8Mhz notwendig.

von Tim (Gast)


Lesenswert?

CKOPT ist doch programmiert

Im allgemeinen gilt doch:

Status       | Ponyprog | AVR Datenplatt
programmed   =   [v]    =   0
unprogrammed =   [ ]    =   1

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Datenplatt ist gut! :-D

Passen die Kondensatoren am Quarz (20-27pF) ?

von Michael U. (amiga)


Lesenswert?

Hallo,

CKSEL2 muß 1 sein! Also in Pony alle Haken bei CKSEL raus.

CKSEL3...0 1011 ist Ceramic-Resonator 0,4-0,9Mhz.
Datenblatt Tabelle 4 Seite 24

Gruß aus Berlin
Michael

von Tim (Gast)


Lesenswert?

Ich habe 22pF Kondensatoren verwendet. Fuses habe ich auch verändert. 
Aber das selbe Problem besteht immernoch. Es liegt definitiv nicht an 
den Fuses. Wenn ich den internen Oszillator nutze funktioniert das 
flashen problemlos. Ich habe gerade im Pollinboard Quarz mit meinem 
14,...MHz  Quarz getauscht und ich kann den Mega32 erfolgreich flashen.
Es muss also an meiner Schaltung liegen.
Was kann ich denn da falsch gemacht haben? Quarz an XTAL1 und 2 und über 
zweimal 22pF  an GND. Mit internem Takt funktioniert alles wie es soll 
genauso wenn ich den Mega32 im Pollinboard programmiere und zurück in 
meine Schaltung setze. Nur das Flashen geht nicht:-(

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Kondensatoren vielleicht kaputt, unsichtbare Kurzschlußbrücken, 
Leitungen zum Quarz zu lang (>10cm?). Mach doch mal ein Foto von Deiner 
Schaltung (oder einen Scan).

von Tim (Gast)


Angehängte Dateien:

Lesenswert?

Ich sitze schon so einige Stunden an dem Problem und bin der Meinung, 
dass keine Kurzschlussbrücken oder fehlende Verbindungen gibt. Im Anhang 
der Schaltplan.

von Michael U. (amiga)


Lesenswert?

Hallo,

hast Du das mit den Fusebits (CKSEL2) überprüft?

PS: bei Deinem Schaltplan bekomme ich ja Augenschmerzen, warum legst Du 
denn die Verdrahtung so durch die Bauteile???

Den "Bildformate"-Kommentar überlasse ich anderen. ;)

Gruß aus Berlin
Michael

von Tim (Gast)


Lesenswert?

Ja das habe ich getan Michael.
Die Leitungen vom Mikrocontroller zum Quarz und den Kondensatoren sind 
kürzer als 20mm. Einzig die ISP Leitungen sind recht lang(150mm) aber 
ich denke daran liegts nicht, denn mein Flashkabel ist recht kurz.

von Rene (Gast)


Lesenswert?

wieder jemand der an pony verzweifelt :-/ ... probiers mal damit:

http://www.myavr.de/download/myAVR_WorkpadPLUS_Demo.exe

unter Extras hast ne nette Oberfläche um die Fuses ordentlich zu 
setzen...

von Tim (Gast)


Lesenswert?

Ich verzweifel doch nich an den Fuses. Die passen doch mein aktuelles 
Problem:
Mit internem Takt funktioniert alles wie es soll
genauso wenn ich den Mega32 im Pollinboard programmiere und zurück in
meine Schaltung setze. Nur das Flashen geht nicht mit externem Takt:-(

von Michael U. (amiga)


Lesenswert?

Hallo,

mich hätte ja das Ergebnis interessiert...
CKSEL3...0 in Pony ALLE haken aus?
Sonst ist es falsch!

Ab 8MHz ändert sich da nichts mehr. Wenn der Quarz nicht Schrott ist 
(meine Ausbauquarze gehen komischweise immer ;)), dann muß es schwingen.
Auch mit 16MHz auf einem Steckbrett mit Mega8/16/162 hatte ich noch nie 
Probleme, meist sogar CKOPT vergessen und lief trotzdem stabil bei 5V.

Wenn ich Dich richtig verstanden habe, ist der Stand doch so: mit einem 
8MHz Quarz spielt der Kram, mit einem 14,7456MHz in der GLEICHEN 
Schaltung OHNE WEITERE Änderung dagegen nicht?

Gruß aus Berlin
Michael

von Tim (Gast)


Lesenswert?

Hallo Michael,
ich habe doch die Fuses schon so gesetzt wie du gemeint hast. Ich habe 
jetzt den Quarz in meiner Platine gewechselt. Es funktioniert auch nich 
mit 8MHz. :-( Nur mit internem Takt gehts:-(((

von Tim (Gast)


Lesenswert?

hier nochmal die komplette Fehlermeldung:

> "make.exe" program
avrdude -p atmega32 -P com1     -c ponyser    -i 10000 -U 
flash:w:main.hex

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.00s

avrdude: Device signature = 0x1e9502
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be 
performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "main.hex"
avrdude: input file main.hex auto detected as Intel Hex
avrdude: writing flash (204 bytes):

Writing | ################################################## | 100% 
0.19s

avrdude: 204 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex auto detected as Intel Hex
avrdude: input file main.hex contains 204 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 
0.19s

avrdude: verifying ...
avrdude: verification error, first mismatch at byte 0x0000
         0x0c != 0x00
avrdude: verification error; content mismatch

avrdude done.  Thank you.

make.exe: *** [program] Error 1

> Process Exit Code: 2
> Time Taken: 00:01

von Michael U. (amiga)


Lesenswert?

Hallo,

der ULN2803 ist ja ein Transistortreiber, vermutlich ist Deinem passiven 
Programmieradapter die Last zu hoch und die Flanken von MOSI/MISO/SCK 
sind irgendwie versaut. Da Du den Chip ja prinzipiell bei 8/16MHz 
ansprechen kannst, sollte der Quarz auch schwingen und ich würde jetzt 
sowas vermuten.

Falls der Kram alles gelötet ist, sicher ein Problem: sonst mal den 2803 
rausnehmen.

Gruß aus Berlin
Michael

von Tim (Gast)


Lesenswert?

Der ULN2803 ist eigentlich garnicht mit den SPI verbunden und die 
meisten aktiven Komponenten wie auch der ULN befinden sich noch garnicht 
auf der Platine um solche Probleme auszuschliessen.

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.