Atmega8 und externer Quarz

OP #4391629
Lesenswert?

Hallo

Ich bin absoluter Anfänger in Sachen µC. Habe mir nun erstmals einen 
Atmega8 im DIL28 und die Demo von BASCOM AVR (2.0.5.0) besorgt.
Als Programmer verwende ich den "mySmartUSB light"
http://www.conrad.at/ce/de/product/191406/

Soweit alles installiert und meine erste LED Blinkt.

Nun möchte ich eine Uhr in Angriff nehmen. Dazu habe ich mir schon ein 
paar Beispiele angesehen, so halb verstanden und auf meinen Atmega8 
gebrannt. Leider ist die Genauigkeit für eine Uhr nicht gegeben. 
Abweichungen von 1 Sekunde pro Stunde sind keine Seltenheit.

Nach weiteren Recherchen im Netz habe erfahren, dass ein brauchbarer 
Sekundentakt nur durch einen externen Quarz mit passender Frequenz 
erreicht werden kann. Um einen externen Quarz zu verwenden müssen aber 
in der Software sogenannte "Fusebits" festgelegt/umgestellt werden oder 
wie auch immer. Leider habe ich bisher keine brauchbaren Hinweise finden 
können, die mir diese "Fusebits" erklären können. Es gibt zwar ein paar 
Screenshots, aber die sehen alle ganz anders aus als in meiner Version 
der Software.

Nun würde ich gerne (mangels Englischkenntnissen) auf DEUTSCH erfahren, 
wie oder was ich hier einstellen/ändern muss, damit ich einen externen 
Quarz verwenden kann.
Ich hoffe ihr habt einen Link für mich, oder es kann mir jemand die 
ganze Sache verständlich machen.

Vielen Dank
OP #4391671
Lesenswert?

Frederik H. schrieb:
> Du musst die Fusebits CKSEL3 - CKSEL0 verstellen.

Wo finde ich den diese CKSEL3 und CKSEL0 in meiner Software und was muss 
ich hier verstellen? Ich habe keine Ahnung was ich wo/wie machen soll. 
Brauche eine Erklärung für Dummis ... :-|


> Steht im Datenblatt aus Seite 26-28. Zusätzlich kann es sein das noch
> das CKOPT eingeschalter werden muss.

Mein Datenblatt hat nur 24 Seiten - bitte um Link - Danke !
Gast #4391679
Lesenswert?

Um das englische Datenblatt wirst du nicht umherkommen.
Selbst wenn du einen Uhrenquarz vor Frequenzteiler vor µC ( 
Interruptroutine ) verwendest, wirst du immer ungenauigkeiten 
feststellen.

Mein Vorschlag wäre DCF77 Signal einfangen.
#4391720
Lesenswert?

#4391790
Lesenswert?

Dann will ich dir mal weiter helfen.

Also wenn du den ATMega8-PU hast und einen Quarz dann machste folgendes:

Den Quarz schließt du an XTAL1 (PB6) und XTAL2 (PB7) an. Zusätzlich 
einen 22pF gegen GND.

Wenn du das gemacht hast nimmst du avrdude und flasht die Fusebits im 
ATMega8.

Das geht wie folgt:

Für einen Quarz BIS 8 Mhz:

avrdude -c {dein_programmer} -P {port_deines_programmers} -p 
{atmega_typ} -U lfuse:w:0xea:m -U hfuse:w:0xd9:m

Für einen Quarz BIS 12 Mhz:

avrdude -c {dein_programmer} -P {port_deines_programmers} -p 
{atmega_typ} -U lfuse:w:0xec:m -U hfuse:w:0xd9:m

Für einen Quarz AB 12 Mhz:

avrdude -c {dein_programmer} -P {port_deines_programmers} -p 
{atmega_typ} -U lfuse:w:0xee:m -U hfuse:w:0xd9:m


Bedenke jedoch das sich das ganze NUR auf einen QUARZ nicht auf einen 
OSZILATOR bezieht. Ebenfalls funktioniert der ATMega dann NUR NOCH MIT 
QUARZ sobald du den Quarz entfernst funktioniert er nicht mehr. Dafür 
musst du dann erstmal wieder die Fusebits setzen das er mit dem internen 
Oszilator funktioniert.

Ich nutze z.b. den avrispv2 am usb post, dann sieht das bei mir wie 
folgt für den ATMega8 aus

avrdude -c avrispc2 -P usb -p m8 -U lfuse:w:0xee:m -U hfuse:w:0xd9:m

Danach läuft der ATMega8 dann mit einem Quarz ab 12Mhz.

Eigentlich ganz einfach. Du kannst dich aber aussperren, den ATMega 
töten oder ähnliches wenn du an den Fusebits was falsch machst. Daher tu 
es nur wenn es wirklich notwendig ist.

Die angaben natürlich ohne jegliche Haftung.
Gast #4391806
Lesenswert?

BASCOM AVR - Oh wie gruselig, die Befehle sind ja auch an's
Englische angelehnt.

Wenn dir das bissel Fach-Englisch zuviel ist, dann versuch doch,
dir ein Hobby in einer dir bekannten Fremdsprache anzueignen:
Ikebana, oder Salsa...

Gar keine Fremdsprache?
Dann geht ja nicht mal Kartoffel-Bauer: Die Dinger kommen aus
Mittelamerika.
OP #4392453
Lesenswert?

Winavr ist eine Anwendung (exe). Da meckert mein Betriebssystem 
(Herausgeber konnte nicht ermittelt werden, etc.)

Ich möchte eigentlich auch keine weitere Software installieren. Mit der 
Bascom IDE komme ich mittlerweile zurecht.

Und "C" nein Danke! Mit geschwungenen Klammern und Semikolon - das tue 
ich mir nicht an!

Ich will ja blos meinen Atmega8 mit einem externen Quarz betreiben um 
einen brauchbaren Sekundentakt für eine Uhr zu erzeugen.

Wenn mein Vorhaben so kompliziert ist, muss ich mir eben eine andere 
Möglichkeit suchen um einen brauchbaren Sekundentakt zu erzeugen. Mit 
CMOS 4521 zB.
Oder gibt es die Möglichkeit einen brauchbaren Sekundentakt mit dem 
internen Oszillator zu erzeugen? Abweichungen von mehreren Sekunden/Tag 
kann ich aber nicht gebrauchen. Und NEIN, das DCF77-Signal möchte ich 
nicht verwenden.
#4392458
Lesenswert?

Ich will keine andere Software, ich will kein C aber "programmieren" 
wollen und das dann noch unter "Windoof". Wie die Software, so ...

Naja, ich bin dann mal raus.

Hinzu kommt "Er mekkert der Herausgeber ist unbekannt". Naund? Ganz 
ehrlich? Such dir nen anderes Hobby, wie Angeln oder so, da kannste dann 
da am Teich sitzen und nachdenken und ggf. nebenbei ein paar µC Bücher 
lesen.

Danach kannst dich ja nochmal melden. So in 4 - 5 - 6 Jahren plus.
#4392460
Lesenswert?

Jonny S. schrieb:
> Wo gibt es den hier einen Chat?

Da, für blinde ganz Groß. siehe Anhang.

Jonny S. schrieb:
> Ich möchte eigentlich auch keine weitere Software installieren. Mit der
> Bascom IDE komme ich mittlerweile zurecht.


Ja, kommste so gut mit zurecht das du es nicht einmal auf die Reihe 
bekommst die Fusebits zu setzen. So kommste damit zurecht.


Menschen gibts, die gibts garnicht. -.-
Angehängte Dateien:
#4392492
Lesenswert?

Du mußt in Bascom erst einmal den Programmer, den Du benutzt, richtig 
einstellen. Das ist ist laut Deinem Bildschirmfoto nämlich noch nicht 
der Fall. So, wie es hier steht:
https://www.mikrocontroller.net/attachment/277578/Lock_and_Fuse_bits.JPG

kannst Du den Kontroller nicht programmiert haben, weil der gar nicht 
erkannt wurde.

Wenn der Programmer richtig eingerichtet ist, dann kannst Du die 
Fusebits auch aus Bascom heraus brennen:
http://www.roboternetz.de/bilder/bascom/bascomquarz550_f.gif

und brauchst kein anderes, separates Programm.

MfG Paul
OP #4392741
Lesenswert?

Georg G. schrieb:
> Und nun nur noch in die Zeile, in der "Int. RC Osc. 1MHz" steht, gehen
> und den Pfeil rechts anklicken. Schon geht ein Fenster auf und man kann
> das Passende auswählen.


Leider steht nichts Passendes drinnen :-|

Der Eintrag "1111:Ceramic resonator/Crystal, BOD enabled", so wie von 
Paul im Screenshot gezeigt, ist nicht vorhanden.
Also was soll ich nun auswählen?
#4392768
Lesenswert?

Hi, such nach 'ext.' also 'zusätzlich angeschlossen' und 'crystal' wie 
'Quarz' und 'high frequenz' für 16MHz. Für niedrigere Frequenzen 
entsprechend 'mid' oder für 4MHz 'low'. Dann auf das Feld 'WriteFS' 
klicken. Die Bezeichnungen sind von Kontroller zu Kontroller 
verschieden, deswegen so wage Formulierungen. Vorher aber unbedingt auch 
ein Quarz nach Vorschrift dran bauen, sonst hast du ein Problem.
Wenn du weiterhin hier Fragen postest, die 'Bascom' enthalten, wirst du 
immer befremdliche Antworten erhalten. Such dir dafür ein angenehmeres 
Forum! Für Fragen in anderen Richtungen ist dieses Forum durchaus 
brauchbar.
Gast #4392917
Lesenswert?

Es gibt keinen Grund den TO zu beleidigen! Punkt!
Wie er was machen will ist sein Ding. Sein Rechner ist auch sein Ding. 
Die Auswahl der Programmiersprache als auch Betriebssystem ebenfalls.

Und begonnen haben wir alle mal, nicht?

Grüsse,
René
Gast #4393039
Lesenswert?

Jonny S. schrieb:
> Nach weiteren Recherchen im Netz habe erfahren, dass ein brauchbarer
> Sekundentakt nur durch einen externen Quarz mit passender Frequenz
> erreicht werden kann.

Nachdem Du den Ratschlag mit dem Buch ja wohl ignoriert hast ...

Auch ein externer Quarz wird Dir (ohne weitere "Justierung") nicht zur 
gewünschten genauen Uhr verhelfen. Selbst dann hast Du noch nicht die 
Genauigkeit einer Funkuhr.

Wenn es denn wirklich genau sein soll wirst Du zusätzlich um einen 
DCF77-Empfänger nicht herumkommen. Da wird es dann auch nochmal 
spannend.

Ehrlich gesagt schätze ich, Du hast eine Vorlage genommen, kopiert - und 
funktioniert nicht wie gewünscht. Zumindest schließe ich das aus Deinen 
Äußerungen hier.

Macht ja auch nichts - jeder fängt mal an. Aber Du wirst um das Lesen 
nicht herumkommen - und wenn Du Englisch nicht verstehst musst Du Dir 
halt deutschsprachige Quellen suchen. Glaube mal nicht, dass Dir hier 
alles mögliche (wenn Du denn weiter machst) übersetzt oder erklärt wird. 
Du musst schon selbst auch etwas tun.

Gruß
Dieter
Moderator (Firma: Titel) Persönliche Seite #4393364
Lesenswert?

Teilnahme an einem Thread nur mit ein und dem selben Namen
Ist es sooooo unglaublich schwer, diese Nutzungsbedingung zu verstehen?
https://www.mikrocontroller.net/articles/Hilfe:Forum_Nutzungsbedingungen

Rene H. schrieb:
> Wie er was machen will ist sein Ding. Sein Rechner ist auch sein Ding.
> Die Auswahl der Programmiersprache als auch Betriebssystem ebenfalls.
Mag sein, nur sollte sich ein Abeteuerer, der sich abseits geteerter 
Straßen durch den Dschungel kämpfen will, nicht über die vielen Wurzeln 
beschweren. Und Datenblätter sind heutzutage schlicht & einfach alle 
Englisch...

Jonny S. schrieb:
> Leider ist die Genauigkeit für eine Uhr nicht gegeben. Abweichungen von
> 1 Sekunde pro Stunde sind keine Seltenheit.
Mit welcher Beschaltung des uC?

> Leider ist die Genauigkeit für eine Uhr nicht gegeben. Abweichungen von
> 1 Sekunde pro Stunde sind keine Seltenheit.
Könnte ja am Programm liegen, oder?

> Leider ist die Genauigkeit für eine Uhr nicht gegeben. Abweichungen von
> 1 Sekunde pro Stunde sind keine Seltenheit.
1 Sekunde pro 3600 Sekunden sind gerade mal 277ppm. Da kann es durchaus 
passieren, dass du es auch mit Quarz nicht viel besser hast...
#4393476
Lesenswert?

Lothar M. schrieb:
>> Leider ist die Genauigkeit für eine Uhr nicht gegeben. Abweichungen von
>> 1 Sekunde pro Stunde sind keine Seltenheit.
> Mit welcher Beschaltung des uC?

Ohne Quarz draußen dran. Das schrieb er.

Jonny S. schrieb:
> Nach weiteren Recherchen im Netz habe erfahren, dass ein brauchbarer
> Sekundentakt nur durch einen externen Quarz mit passender Frequenz
> erreicht werden kann.



Ich habe hier eine Uhr mit Attiny2313 und 4MHz-Quarz. Die ist so genau, 
daß ich sie nur zum Wechsel von Sommer/Winterzeit (oder weiß der Fuchs, 
wie dieser Rotz heißt)stellen muß.

Dieter F. schrieb:
> Nachdem Du den Ratschlag mit dem Buch ja wohl ignoriert hast ...

Sicher: Er kann sich innerhalb von einer halben Stunde das Buch 
beschaffen und durcharbeiten. Zumal es dort nur 99 Euro kostet. (Was 
darauf schließen läßt, daß es ausverkauft ist und man die Leute von 
Bestellungen abhalten will)

MfG Paul
Gast #4393495
Lesenswert?

Paul B. schrieb:
> Sicher: Er kann sich innerhalb von einer halben Stunde das Buch
> beschaffen und durcharbeiten. Zumal es dort nur 99 Euro kostet. (Was
> darauf schließen läßt, daß es ausverkauft ist und man die Leute von
> Bestellungen abhalten will)

Nein, das geht selbst bei Amazon noch nicht. Erst, wenn die die 
Drohnen-Zustellung aktiviert haben :-)

Aber wenn ich kein Englisch lesen kann oder mag, dann muss ich halt in 
den sauren Apfel beißen und mir deutschsprachige Literatur besorgen (die 
Übersetzung durch Übersetzungs-Programme /  -Seiten schließe ich aktuell 
mal aus).

Das Buch war ein Beispiel - es gibt wahrscheinlich auch andere. Außerdem 
gibt es einen Markt für gebrauchte Bücher etc.
Moderator (Firma: Titel) Persönliche Seite #4393503
Lesenswert?

Paul B. schrieb:
> Lothar M. schrieb:
>>> Leider ist die Genauigkeit für eine Uhr nicht gegeben. Abweichungen von
>>> 1 Sekunde pro Stunde sind keine Seltenheit.
>> Mit welcher Beschaltung des uC?
> Ohne Quarz draußen dran. Das schrieb er.
Dann kann man sich die Schulter klopfen und gratulieren. Denn dass der 
interne Oszillator eher zum Temperatur- oder Spannungsmessen als für 
eine Uhr geeignet ist, kann man dem Datenblatt sogar ohne 
Englischkennnisse entnehmen...
Angehängte Dateien:
OP #4393662
Lesenswert?

Die einfache Uhr mit dem internen Oszillator war ein erster Versuch, um 
herauszufinden wie 'schief' die Uhr läuft. Nach weiteren Recherchen im 
Netz habe ich erfahren, dass man mit dem internen Osz. auf keine 
brauchbare Genauigkeit kommt. Es wird nur mit einem außenliegenden, 
passenden Quarz funktionieren.
Den außenliegenden Quarz kann man aber nicht so einfach verwenden. Es 
müssen Einstellungen (Fusebits) in der IDE erfolgen. Man wird überall 
gewarnt, dass man dabei auch viele Fehler machen kann. Um diese Fehler 
nicht zu machen, wende ich mich hilfesuchend an dieses Forum. Das ein 
paar Trotteln daraus Quatsch machen - dafür kann ich nichts. Zum Glück 
gibt es auch viele nette Leute hier, die mir helfen wollten und konnten.

Ach ja zum Buch: http://www.conrad.at/ce/de/product/191514/
Natürlich habe ich mir vor einigen Wochen schon ein Buch gekauft. Es 
wird auch im Buch darauf hingewiesen, dass man bei den Änderungen der 
Fusebits aufpassen muss. Es wird aber nur ansatzweise darauf hingewiesen 
wie man es richtig macht. Die Beschreibungen werden in einer 
Vorgängerversion beschrieben, die mit meiner aktuellen Version (2.0.5.0) 
nicht mehr übereinstimmt. Somit kann ich daraus nicht entnehmen, was ich 
nun genau machen soll/muss.
Fast alle Beispiele im Buch werden mit einem 16MHz Quarz durchgeführt. 
Wenn man den Quarz also nicht ranbekommt, kann man die meisten Beispiele 
aus dem Buch vergessen.
Bin im übrigen auch sehr unzufrieden mit diesem Buch, da es zwar für den 
Einstieg gedacht ist, aber Grundwissen voraussetzt. Es gibt zB 3 Seiten 
im Buch mit 'Reservierte Worte in Bascom'. Welche 
Bedeutung/Aufgabe/Funktion diese Worte haben kann man sich aus den 
Fingern saugen oder eben in Foren oder sonstwo im Netz suchen.
Man kann die Beispiele ausprobieren, aber im Quellcode sind nur sehr 
selten (grüne) Bemerkungen dazu angeführt. Warum der Quellcode nun 
Funktioniert wird nicht wirklich erklärt.

Es ist eben nicht leicht einen Einstieg ohne Englischkenntnisse zu 
finden. In meinem bisherigen Leben brauchte ich kein Englisch. Und in 
meinem Alter bin ich nicht mehr gewillt es zu lernen.
Ich möchte mir blos die kommenden Wintermonate mit dem Atmega8 
vertreiben und ein paar kleine Erfolge feiern :-)
#4393679
Lesenswert?

Jonny S. schrieb:
> Fast alle Beispiele im Buch werden mit einem 16MHz Quarz durchgeführt.
> Wenn man den Quarz also nicht ranbekommt, kann man die meisten Beispiele
> aus dem Buch vergessen.

Dann kaufe Dir doch ein paar verschiedene Quarze -evtl. kannst Du welche 
mit passenden Frequenzen auf alten Platinen finden. Es ist oft eine 
Quarzfrequenz erforderlich, aus der sich eine sog. Baudrate (fast) 
fehlerfrei erzeugen läßt. Das brauchst Du z.B., wenn Du Daten seriell an 
den Rechner senden willst.

Jonny S. schrieb:
> Es gibt zB 3 Seiten
> im Buch mit 'Reservierte Worte in Bascom'. Welche
> Bedeutung/Aufgabe/Funktion diese Worte haben kann man sich aus den
> Fingern saugen oder eben in Foren oder sonstwo im Netz suchen.

Ja, das muß man dann machen: Ein Buchautor kann nicht jeden x-beliebigen 
Fall berücksichtigen. Das ist kein Kochbuch -man MUSS ein wenig 
mitdenken.

Jonny S. schrieb:
> Es ist eben nicht leicht einen Einstieg ohne Englischkenntnisse zu
> finden. In meinem bisherigen Leben brauchte ich kein Englisch. Und in
> meinem Alter bin ich nicht mehr gewillt es zu lernen.

Ich hatte auch keinen Englischunterricht -es nützt aber Alles nichts:
Wenn man die Datenblätter nur in englischer Sprache hat, dann MUSS man 
sich mit Hilfe von Wörterbuch und Übersetzungsprogramm oder auch durch 
Ausprobieren in kurzen selbstgeschriebenen Programmen vergewissern, ob 
man das so verstanden hat, wie es gemeint war.

Ein Stolperstein: "Should"
Wenn das dasteht, dann sollte man nicht, -dann muss man, sonst 
geht's nicht.


MfG Paul
OP #4398619
Lesenswert?

Hallo nochmal ihr lieben Leute

Habe nun den externen Quarz am Atmega8 dran, und die Uhr läuft bislang 
wunderbar 'geradeaus'. Innerhalb von 24 Stunden konnte ich keinerlei 
Abweichung im Vergleich mit einer DCF77-Funkuhr erkennen. Damit bin ich 
sehr zufrieden! Das mit dem Fusebits hat also geklappt - Danke nochmal !

Da sich bei längerem Betrieb vielleicht doch noch geringfügige 
Abweichungen ergeben könnten, hätte ich noch 2 Fragen, die die 
Genauigkeit der Uhr betreffen.

1)
Hängt die Quarzfrequenz von der Betriebsspannung ab?
Ein Standard 7805 hat ja nicht genau 5,00V sondern auch mal 4,98V o.ä. 
Es könnte auch sein, dass die Betriebsspannung auch um ein paar 10mV 
während des Betriebs schwankt. Hat dies Auswirkungen auf die 
Quarzfrequenz und somit auf die Genauigkeit der Uhr?

2)
Kann man die Quarzfrequenz 'ziehen'?
Der Quarz wird am Atmega8 an Pin9 und Pin10 angeschlossen. Jeweils 22pF 
gehen dabei noch an GND. Macht es Sinn, an einem der beiden Pins 
parallel zum 22pF-Kondensator, noch einen 10pF-Trimmkondensator 
einzusetzen, um die Quarzfrequenz zu 'ziehen' um damit eine 
Feineinstellung der Uhr zu erreichen? Wenn ja, an welchen Pin?

Vielen Dank schon mal für´s lesen ;-)
Gast #4398745
Lesenswert?

Also ich habe mich im Knast 12 Jahre mit den Atmegas beschäftigt und 
komm zu dem Schluss das man dieser Prozessor keine Antigravitationische 
Effekte verarbeiten kann. Aber ich bin noch dran ...

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