Autor |
|
|
|
BID = 91132
Magni Gelegenheitsposter
Beiträge: 91 Wohnort: Edewecht
|
|
Hi,
wieso müssen z.B. bei einem UhrenQuarz (32768Hz) zwei anschlüsse zu einem µC (z.B. OSC1, OSC2) gehen?
Reicht da nicht eine Signalleitung? |
|
BID = 91150
alpha-ranger Schreibmaschine
Beiträge: 1517 Wohnort: Harz / Heide
|
|
Hallo,
hast Du schon die diskrete Variante dieses Oszillators gesehen ?
Der Quarz sitzt dann zwischen Eingang und Ausgang eines Inverters mit Schmitt-Trigger Funktion.
Der Quarz ist ja nur ein passives Bauteil, ähnlich einem Schwingkreis. Und bei Resonanzfrequenz hat er eine definierte Phasenlage zwischen den Anschlüßen.
Es gibt auch Quarzoszillatoren , die nur ein Anschluß des Quarzes belegen, der andere wird auf Masse geschaltet. Das findest Du bei modernen Farbdecodern in TV Geräten.
mfG.
_________________
Wie der alte Meister schon wußte: Der Fehler liegt meist zwischen Plus und Minus. :-)
Und wenn ich mir nicht mehr helfen kann, schließ ich Plus an Minus an. |
|
BID = 91178
Magni Gelegenheitsposter
Beiträge: 91 Wohnort: Edewecht
|
Danke für die Erklärung,
das Problem ist, dass ich einen Quarz an einem µC anschließen möchte, wobei er nur eine Signalleitung benutzen sollte.
Zur Erklärung habe ich einen Schaltplan beigefügt. Würde das so hinhauen?
gr
Magni
|
BID = 91206
alpha-ranger Schreibmaschine
Beiträge: 1517 Wohnort: Harz / Heide
|
Never !
Port B0 ist ein ganz normaler Ein/ Ausgang und kann auch für die Steuerung des Timer 0 benutzt werden.
Eine Leitung ist klar, beim Betrieb des Timers 0 mit einer externen Frequenz.
Bau dem Quarz einen schönen Oszillator, und speise dann auf Pb0 ein.
Was soll es denn werden ? Eine Uhr ? Uhren gehen aber einfacher. Da nimmt man einen Quarz mit einer schönen zweier-Potenz z.Bsp. 4,096 MHz, und der Rest ist Software per Interrupt.
mfG.
|
BID = 91270
Magni Gelegenheitsposter
Beiträge: 91 Wohnort: Edewecht
|
Jupp, will noch in meinem Bastelprojekt eine Uhranzeige integrieren.
Ich dachte ich steuer mit einem externen Quarz(32768Hz) über PB0 den Timer 0 und dann einen Vorteiler von 128 und ich hab dann ne Sekunde.
Ist das übern Interrupt besser? Bzw. ich dachte, dass solche Timer/Counter sich dafür sehr gut eignen würden. Denn ich habe schon viele BeispielUhren gesehen, die über diese Timer geesteuert werden.
Wie müsste ich denn das dann mit dem Oszi und dem Quarz machn?
Gr
Adrian
|
BID = 91273
Magni Gelegenheitsposter
Beiträge: 91 Wohnort: Edewecht
|
Zitat :
| Was soll es denn werden ? Eine Uhr ? Uhren gehen aber einfacher. Da nimmt man einen Quarz mit einer schönen zweier-Potenz z.Bsp. 4,096 MHz, und der Rest ist Software per Interrupt.
|
Der Atmega läuft mit 4Mhz und wenn ich jetzt mit einem 4,096Mhz Quarz Interrupts auslöse, müsste dann der µC nicht wahrnsinnig werden? Denn er bekommt öfter nen Interrupt rein als er es eigentlich verarbeiten kann, oder?
Dann wäre ja demnach je langsamer der Quarz, desto besser, oder? Denn dann hat der µC weniger zu tun und mehr Rechenleistung für anderes Zeug.
gr
Adrian
|
BID = 91288
tixiv Schreibmaschine
Beiträge: 1492 Wohnort: Gelsenkirchen
|
Nein, das hast Du falsch verstanden. Du sollst den 4,095MHz Quarz für den normalen Takt des Controllers verwenden. Dann Programmierst Du einen der Zähler/Timer des OCntorllers so, dass er seine Frequenz aus der Taktrate ableitet, programmierst einen überlauf Interrupt, und fertig ist das. Schau mal ins Datneblatt bei der Sektion über die Timer!
|
BID = 91322
Magni Gelegenheitsposter
Beiträge: 91 Wohnort: Edewecht
|
achso.... ;)
*g*
ok... so langweilig gehts natürlich auch ;)
Danke für die Tipps!
gr
Adrian
|
BID = 91324
alpha-ranger Schreibmaschine
Beiträge: 1517 Wohnort: Harz / Heide
|
Hallo,
das ganze Interupt getue und die Timer belasten den Prozessor überhaupt nicht. Der Timer wird skaliert und bringt ab und an einen Interrupt. Das sind absolut unwichtige Dinge. Der Proz ist so schnell, das die ganze Verarbeitung und Auswertung auch nur wenige Taktzyklen benötigt.
In den Beispiel Demos von Atmel ist so eine Uhr mit Fehlern beschrieben.
Aber wenn Du magst, schick ich Dir ein Grundgerüst für eine lauffähige Uhr mit so einem 4,096 MHz Quarz.
mfG.
_________________
Wie der alte Meister schon wußte: Der Fehler liegt meist zwischen Plus und Minus. :-)
Und wenn ich mir nicht mehr helfen kann, schließ ich Plus an Minus an.
|
BID = 91387
Magni Gelegenheitsposter
Beiträge: 91 Wohnort: Edewecht
|
Hallo alpha-ranger,
wenn der µC komplett mit einem 4,096 MHz Quarz läuft, dann würde ich einfach den Timer/Counter mit einem 128 Vorteiler anschmeißen und 125 Interrupts für ne Sekunde warten.
Denn: (4096000Hz/256)/128=125
Aber dann wäre vielleicht ein 4,194304 MHz Quarz noch praktischer, denn dann könnte man den Vorteiler mit 1024 betreiben und nur 16 Interrupts abwarten müssen.
Denn: (4194304Hz/256)/1024=16
Aber wie dem auch sein, es wäre super wenn du mir deinen Vorschlag schicken könntest!
Gr
Adrian
|
BID = 91708
herman Gelegenheitsposter
Beiträge: 65 Wohnort: Darmstadt
|
Wenn du jemanden hast, der dir einen Quarz mit genau dieser Frequenz herstellt, kannst du es so machen
_________________
greetz herman
|
BID = 91739
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Toller Hinweis !
4,19..MHz = 222Hz ist eine gebräuchliche Quarzfrequenz, die gern in Weckern eingesetzt wurde.
Quarze mit dieser Frequenz sind billig und arbeiten etwas stabiler als die 32kHz Stimmgabel-Quarze.
Wegen der höheren Arbeitsfrequenz ist aber der Stromverbrauch des Teilers höher, weshalb man sie nicht in Armbanduhren einsetzen kann.
Der CD4521B enthält einen Oszillator sowie eine Teilerkette für derartige Frequenzen, sodaß man direkt 1Hz entnehmen kann.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 91887
herman Gelegenheitsposter
Beiträge: 65 Wohnort: Darmstadt
|
Oh, danke für den Hinweis -> wieder was dazu gelernt.
Ich hab auch mal mit nem 4,096MHz-Quarz einen Atmel zum Sekunden-Zählen gebracht. Da wars aber nicht so tragisch, dass ich 125 Interrupts abwarten musste, weil der Mikrocontroller während des Zählens nichts anderes zu tun hatte...
_________________
greetz herman
|
BID = 92577
Jornbyte Moderator
Beiträge: 7178
|
Den Prescaler auf 64 stellen und in
TCNT1H auf 0x05
TCNT1L auf 0x5f stellen. Damit gibt der Timer aller 1 Sekunden einen Int von sich. Bei den Softwaretools befindet sich das Programm ACT, für alle die sich mit den Timer rumärgern müssen. Die Quarzfrquenz, Frequenz oder Sekunden angeben und auf Rechnen drücken
_________________
mfg Jornbyte
Es handelt sich bei dem Tipp nicht um eine Rechtsverbindliche Auskunft und
wer Tippfehler findet, kann sie behalten.
|