mal wieder Fuses, Frage zur Start-Up Time

#2282928
Lesenswert?

Hallo,

ich denke, dass ich die Bewertung der Fuses fast richtig einschätzen 
kann...

Ich möchte einen Atmega8 mit einem (ext.) Quarz mit 3,686400 MHz 
betreiben.

Hierzu habe ich wie auf dem Screenshot zu sehen (Engbedded Fuse 
Calculator Copyright © 2006-2011 Mark Hämmerling) die Fuses eingestellt.

Ich habe aber die Start-Up Time und das Delay noch nicht verstanden. Ich 
erkläre mir das Delay von 65 ms so, dass der Quarz langsam anschwingt!?

Es wird hier im Forum immer weider auf 16k CK und 65 ms hingewiesen, 
aber ich weiß nicht warum.

16K CK = 16.000 Clock's ???

Das und die 65 ms würden bedeuten:

a) warten aus reset
b) aud den Power-Modi entsprechend viele Clocks/Takte warten?

Danke und schönen Tag,
Christoph
Angehängte Dateien:
Gast #2282975
Lesenswert?

Hallo,

Ch Sp schrieb:
> Ich möchte einen Atmega8 mit einem (ext.) Quarz mit 3,686400 MHz
> betreiben.

-> Low Freq Start-Up time 16K 64ms

Ch Sp schrieb:
> Ich habe aber die Start-Up Time und das Delay noch nicht verstanden. Ich
> erkläre mir das Delay von 65 ms so, dass der Quarz langsam anschwingt!?

Richtig. Die 64ms beziehen sich auf die Einschwingzeit deines Quarzes.
Bei 64ms kannst du dir dann sicher gehen, dass der Quarz auch richtig 
"eingeschwingt" ist. Also am Besten immmer 64ms nehmen.

Mich würde auch mal interessieren welche Quarzfrequenzen man unter 
Low,Med. und High Frequency versteht.
Ich habe das so interpretiert:

 1Mhz - 8Mhz Quarze -> Low Freq.
 8Mhz - 12Mhz Quarze -> Med. Freq.
 12Mhz - 16Mhz Quarze -> High Freq.

Gruß David Knoll ;-)
Gast #2283026
Lesenswert?

Habe jetzt gerade nur ein DB vom ATMEGA16 zur Hand, aber das ist ja 
alles das Gleiche.

Da findet man dann ab Seite~24 das Kapitel *System Clock and Clock 
Options* .
Blättert man dann eine Seite weiter, dann steht da Crystal Oscillator 
.

Ich hänge mal 2 Tabellen mit an, dann sollte es eigentlich klar sein.

Für einen 3,6...MHz Quarz müsste man also laut Datenblatt folgendes 
einstellen:
CKOPT=1 + CKSEL=111 --> 3-8MHz

Bei der Risetime kommt es dann auf die Art des Resonators 
(Quarz/Ceramic) und der Risetime der Betriebsspannung an.

Aus der 2. Tabelle ist dann ersichtlich, dass wenn man auf Nummer sicher 
gehen will man einfach die 16k und 65ms nimmt (Crystal Oscillator).

Man kann da natürlich (abhängig von der Risetime der Betriebsspannung) 
auch noch weiter runter gehen auf 16k und 4,1ms oder man schaltet die 
Brownout-Detection mit ein und kommt auf 16k!

Die Frage ist doch, stört einen die 16k und 65ms?

Grüße
Angehängte Dateien:
#2283300
Lesenswert?

David Knoll schrieb:
> Mich würde auch mal interessieren welche Quarzfrequenzen man unter
> Low,Med. und High Frequency versteht.
> Ich habe das so interpretiert:
>  1Mhz - 8Mhz Quarze -> Low Freq.
>  8Mhz - 12Mhz Quarze -> Med. Freq.
>  12Mhz - 16Mhz Quarze -> High Freq.

Das ist alles "High".


"Low Frequenzy" sind z.B. 32,768 KHz Uhrenquarze. Oder die 128KHz, mit 
denen der Watchdog intern versorgt wird.

"High Frequency" sind die "normalen" >= 1MHz.

"Medium" liegt irgendwo dazwischen.
Ich kann mich allerdings nicht entsinnen, sowas mal gesehen zu haben.
Wenn man seinen AVR mit 500KHz betreiben möchte, nimmt man einen 4MHz 
Quarz und teilt den Takt /8.

Eigentlich unterscheidet man bei Quarzen nur zwischen "Crystal Osc." und 
"Low Frequ. Crystal Osc.".
Oder einfach Quarz(=High) und Uhrenquarz(=Low).

mfg.
#2305765
Lesenswert?

Also, irgendwas habe ich falsch gemacht/verstanden:

Habe hier einen Atmega8. Der soll durch einen Quarz mit 3,6864 MHz 
getaktet werden.

Habe die Fuses gelesen und so, wie auf dem oben angehängten Screenshot 
gesetzt. Jetzt erhalte ich den Hinweis: "Error reading fuses..."

Den Artikel bzgl. Fuses zurücksetzen habe ich nicht verstanden. Zugriff 
auf ein Oszilloskop hätte ich...

Danke,
Christoph
#2305780
Lesenswert?

Wenn Du Pech hast, ist das jetzt eine fuse-Einstellung mit der Du Dich 
momentan ausgesperrt hast.

Erste Kontrolle: geht das Lesen der Signatur noch?

So wie ich das lese, wurde der interne RC Oszillator ausgeschaltet und 
der Oszillator für den externen Quarz eingeschaltet.
Wenn dann extern die Beschaltung nicht stimmt, ( Quarz oder die beiden 
Kondensatoren mit so ca 10pF bis 30pF) gibts halt kein Schwingen und 
damit keinen Takt, der für die ISP-Verbindung gebraucht wird.

Abhilfe dazu, siehe viele Beiträge hier im Forum: "ausgesperrt?"
#2305784
Lesenswert?

Das erhalte ich zurück:

avrdude.exe: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude.exe: error: programm enable: target doesn't answer. 1
avrdude.exe: initialization failed, rc=-1
             Double check connections and try again, or use -F to 
override
             this check.


avrdude.exe done.  Thank you.


Beide Kondensatoren haben 22pF. Quarz liegt an XTAL 1 und XTAL 2 dann 
die Kondensatoren gegen GND und je einen Pin des Quarzes...
#2305789
Lesenswert?

Mit dem Scope kann man nachsehen, ob reset , SCK, MISO und MOSI Signale 
führen, wenn ISP-Tätigkeit herrscht.
Reset, SCK und MOSI werden vom PC bzw progger erzeugt.
Wenn die ISP-Verbindung ausgefallen ist, antwortet der Kontroller nicht 
und MISO bleibt ohne Signal.
#2305904
Lesenswert?

Na, ja da geht die ISP-Verbindung nicht richtig: Der PC liefert zwar 
Signale aber der Kontroller antwortet nicht.
Die Signatur lässt sich wohl auch nicht lesen

Beim Quarz KANN es sein, dass schon die Berührung mit dem Tastkopf die 
Schwingung abreißen lässt, also liefert hier das Scope keine sichere 
Information.

Und wenn es vor dem Schreiben der fuses ging und danach nicht, lässt das 
darauf schließen, dass irgendetwas mit den fuses danebenging.

Retten lässt sich dieser "verfuste" Chip, indem man extern einen Takt 
anlegt und die Standard-Einstellung der fuses wieder einschreibt. Dazu 
Näheres im Tutorial usw.
#2305937
Lesenswert?

Die Frequenz vom USBAsp (12MHz) sind für die USB-Verbindung wichtig, die 
geht ja.

Da fällt mir ein:

Damit ISP funktioniert muss die Taktfrequenz des Kontrollers mehr als 
viermal so hoch sein wie die die ISP-Frequenz (Frequenz von SCK)
Intern arbeitet der atmega8 mit etwa 8MHz. Jetzt wurde auf 3,8..MHz 
gewechselt. Da noch ein Teiler mod8 im Kontroller mitarbeitet, ist der 
echte Takt jetzt etwa 475 kHz, ISP darf also nicht schneller als ca. 100 
kHz arbeiten. Das lässt sich in der Software des Proggers einstellen.
Ist das der Fall?
#2305946
Lesenswert?

Hallo,

die 3,6864 MHz wurden für 9600 Baud/Max232 gewählt.

Ich habe die ganze Schaltung auf einem Steckbrett mit einem 4 MHz 
Quarzoszillator. Da läuft das alles.

Wenn ich am 3,6864 MHz Quarz auf der Schaltung messe, springt die 
Frequenz mal auf 30 mal auf 300 Hz, dann auf einen KHz Wert etc...
Gast #2306007
Lesenswert?

> Ich komme jetzt mittels Oszilloskopen wieder drauf.
Das heißt dann wohl das deine Beschlatung des Quarzes nicht OK ist und 
er nicht anschwingt bzw. schwingt wenn kein Oszi dran ist. Also bau ein 
Virtuelles Oszi dran ;-). Datenblatt vom Quarz lesen !-) Hoffe mal das 
hast du bereitliegen  oder weißt du den Hersteller und das Model deines 
Quarzes etwa nicht ? ;-o
#2306017
Lesenswert?

Ja verdammt nochmal, ist es wirklich zuviel, die Signatur des 
Kontrollers zu lesen?

Wenn die nicht richtig herauskommt, braucht man garnicht erst an den 
fuses herumzupfuschen. Was Du da als screenshot zeigst, ist 
wahrscheinlich ein default-Wert und garnicht gelesen.

Also, versuch erst einmal die Signatur zu lesen und berichte, was sich 
dabei ergibt.


BTW: wer bei Arbeit auf einem Steckbrett Hardwarefehler ausschließt, ist 
ziemlich optimistisch.
#2306250
Lesenswert?

Hallo,

eine Schaltung habe ich auf einem Steckbrett (mit 4 MHz Quarzoszillator) 
als Versuch. Um die es sich hier dreht ist eine auf einer Platine 
verlötete!

So wie ich die Fuses "ausgelesen" hatte, hatte ich sie auch gesetzt.

Leider habe ich nicht auf die Signatur geachtet - sondern nur auf die 
Meldung der erfolgreich gelesenen Fuses! Schon wider dazu gelernt - auf 
die Signatur achten...

Weiterhin ist die Hardware-Beschaltung so, wie sie in der 
Schaltzeichnung ausgeführt ist.


Fuses sind ja richtig für die 3,6864 MHz Quarz. Folglich müsste nach 
Umprogrammierung der ext. Quarz verwendet werden müssen!

Aber ab da kam ich nicht mehr drauf. Einen Screenshot der Beschaltung 
habe ich oben angehängt. Als ich gemessen hatte, konnte ich keine 3,6864 
MHz messen!

gruß
Christoph
#2307178
Lesenswert?

Na, also. Dann ist die ISP-Verbindung anscheinend in Ordnung.
Die Fuses stimmen auch (wenn sie echt gelesen sind).

Wenn sich die Signatur lesen lässt, muss auch das Programmieren der 
fuses funktionieren.

Dann müsste doch das Rück-Programmieren des atmega8 in die 
Grundeinstellung gehen.( siehe Datenblatt, dass er wieder mit internem 
RC-Oszillator läuft.)
Das engt dann die Fehlermöglichkeiten beträchtlich ein.
#2307207
Lesenswert?

Hallo,

ich konnte zurückprogrammieren, ein Dummy-Programm laden und anhand von 
zwei LEDs feststellen, dass ich problemlos (mit entsprechenden Fuses) 
den INTERNEN Takt ändern kann.

Ich habe dann nochmals alles auf (Hardware-)Fehler überprüft. Mir fiel 
aber nichts auf.

Ich habe es dann nochmals mit Fuses für den ext. Quarz probiert, aber 
dann war weider Feierabend. Also wieder per Oszilloskopen an XTAL 1 (ich 
glaube es war 1) neu gesetzt.

Jetzt arbeite ich mit 4 MHz intern. Meine Schaltung (Empfangen von RS232 
Bytes und ausführen von entsprechenden Funktionen) funktioniert.

Ich werde mal den 3,6864 MHz Quarz wechseln, vielleicht ist der defekt - 
dann müssten aber gleich zwei die ich bestellt hatte defekt sein...

Leider gibts die hier beim Conrad nicht im Laden...
#2307233
Lesenswert?

Fällt nur die Rs-232-Funktion beim Wechsel von intern4MHz auf Quarz 
3,8... aus? oder auch andere Funktionen wie z.B. LED

Wenn auch die LED-Funktion ausfällt, CK-opt fuse aktivieren, das  macht 
den Oszillator schwingfreudiger. Bei "lahmem" Quarz oder bei falscher 
Beschaltung kriegt man da noch ein Schwingen hin. Die beiden 
Kondensatoren prüfen, ob im Bereich 10pF bis 30pF, ist der Mittelpunkt 
der beiden C's wirklich an Masse,...

BTW: Läuft die Schaltung mit dem 4MHz-Oszillator aus dem Steckboard?
Gast #2307550
Lesenswert?

Ist ein Quarzoszillator und der passt nicht auf die Platine. Ich kann 
stabil mit dem internen arbeiten. Der Atmega8 wartet eh nur auf ein 
einziges Byte...

Ich werde das aber mit dem Quarzoszillator überdenken!

Gruß
Christoph

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