Forum: Mikrocontroller und Digitale Elektronik mal wieder Fuses, Frage zur Start-Up Time


von Ch S. (spelli)


Angehängte Dateien:

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

von David Knoll (Gast)


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 ;-)

von Ch S. (spelli)


Lesenswert?

Hallo,

auf Seite 7 des Atmega8 Datenblattes gibt es die Table 4; Freuquency 
Range.

Demnach würde ich die o. g. Freuquenz bei CKSEL 1...3 = 111 als high 
verstehen... ???

Das ist jetzt aber für mich Kaffesatz lesen...

Ich habe keine Ahnung... ;-)

von N. Müller (Gast)


Angehängte Dateien:

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

von N. Müller (Gast)


Lesenswert?

Achso...lesen bildet ;-)

von Ch S. (spelli)


Lesenswert?

Hallo,

lesen bildet immer!

Dann habe ich ja alles richtig gemacht. Ich denke, jetzt weiß ich (so 
halb) mit den Fuses umzugehen.

Die 16K und 65 ms stören mich nicht.

Danke und Gruß

Christoph

von David Polch (Gast)


Lesenswert?

Ch Sp schrieb:
> Die 16K und 65 ms stören mich nicht.

Es sind 64ms XD. Du hast dich jetzt schon jedes Mal verschrieben =)

von Thomas E. (thomase)


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.

von Ch S. (spelli)


Lesenswert?

Danke für die auführlichen Infos!

Schönen Abend noch!

von Ch S. (spelli)


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

von Peter R. (pnu)


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?"

von Ch S. (spelli)


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

von Peter R. (pnu)


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.

von Ch S. (spelli)


Angehängte Dateien:

Lesenswert?

Anbei die Beschaltung.

Wenn ich mit einem Oszilloskopen an PB4 bzw. Miso messe kann ich keine 
Veränderung feststellen...

Ich kann aber auch nicht den Quarz messen...

von Ch S. (spelli)


Lesenswert?

Ich kann am ISP (USBasp) locker die 12 MHz messen. Messe ich am Quarz 
auf der Schaktung erhalte ich nicht die Frequenz von 3,6864 MHz...

Verbindungen sind soweit aber alle da...

von Peter R. (pnu)


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.

von Ch S. (spelli)


Lesenswert?

Also ein Prooblem seitens der Schaltung in diesem Bereich schliesse ich 
aus.

Ich habe Zugriff auf ein Oszilloskop.

Kennt jmd. einen Link/Thread, wo dass schonmal genau beschrieben wurde?

Danke!

von Peter R. (pnu)


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?

von Ch S. (spelli)


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

von Ch S. (spelli)


Angehängte Dateien:

Lesenswert?

So, heute muss das Forum leiden:

Ich komme jetzt mittels Oszilloskopen wieder drauf.

Anbei ein Bild der eingelesenen Fuses!

Ich dachte, dass das die richtigen Einstellungen für Quarz; 3,6864 MHz 
wären??

Gruß
Christoph

von Uwe (Gast)


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

von Peter R. (pnu)


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.

von Ch S. (spelli)


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

von Ch S. (spelli)


Lesenswert?

Guten Morgen!

Hier die

Device signature = 0x1e9307


Christoph

von Ch S. (spelli)


Lesenswert?

Achso, und es ist genau dieser AVR:

ATMega AVR 8-16 AU
Gehäuse: TQFP-32
MHz: 16
Flash: 8
EEProm: 512
RAM: 1K
I/O: 23
Hersteller : ATMEL
Artikelnummer des Herstellers : ATMEGA8-16AU

von Peter R. (pnu)


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.

von Ch S. (spelli)


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

von Peter R. (pnu)


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?

von Ch S. (spelli)


Lesenswert?

Hallo,

bei Umschalten auf externen Quarz geht nichts mehr.

Auf dem Steckbrett läuft es mit einem 4 MHz Quarzoszillator.

Mit der CK-opt Fuse werde ich es noch mal probieren. Die beiden 22 pF 
haben am Mittelpunkt gemeinsam Masse...

von Peter R. (pnu)


Lesenswert?

Kannst Du nicht den 4 MHz Quarz aus dem Steckbrett  anschließen?

von spelli (Gast)


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

von Peter R. (pnu)


Lesenswert?

Da gehts doch nur ums Ausprobieren, Wenn Du den Takt einspeist, gibts 
mehr Information, obs am Quarz liegt.

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.