Hallo, ich starte gerade meinen ersten Versuch eine eigene Leiterplatte mit einem Atmeag32 zu machen. Ist die Grundschaltung so richtig? Was sollte ich verbessern? Ich brauche einen später genauen Takt. Ich muss auf 0.1 Sekunden genau einen Pin Toggeln. Für was einen Quarz, OCXO würdet ihr mir denn Raten? Vielen Dank! Ikarus
Hi
>Was sollte ich verbessern?
An jedes VCC-GND-Paar einen Kondensator.
MfG Spess
0,1 Sek genau sollte kein Problem sein mit den Standard-Quarzen ... Ich würde vielleicht noch ein paar 100nF Kondensatoren zwischen VCC und GND einplanen, sicher ist sicher.
Soll ich dann einen Quarz oder einen TCXO / OCQO nehmen? Welche Frequenz nimmt man für solche Dinge? Danke
Die Frage ist, wie oft du den Pin toggeln willst. Wenn du ihnbeispielsweise einmal pro Tag toggeln willst und dann auf 0.1s genauigkeit ist das schwieriger, als jede Sekunde mit einer genauigkeit von 0,1s ... für eine richtige antwort brauchen wir mehr infos ;)
achja die Temperatur spiel eine wichtige Rolle, bei großen Schwankungen sind TCXOs sinnvoll ...
Sorry, dann liefere ich mal Infos nach. Also ich muss auf 0.1 Sekunden genau Toggeln. Genauer, Ich muss einen Pin jede Sekunde entweder 0.1 oder o.5 Sekunden auf High nehmen. Das dauert das ca. 10 Minuten lange und dann darf der uC in Sleepmodus gehen. Wenn der Passende interupt kommt das selbe von vorne. Jede Sekunde entweder ein 0.1 Sek. oder ein 0.5 Sek. High. Nach ca. 10 min -> sleep... Temperatur ist 25°C +- 15 °C. Also Theoretisch alles was in einem Zimmer so vorkommen kann... Vielen Dank
So bin zwischenzeitlich bei Version 3. Habe noch ein HD44780-LCD vorgesehen. Was geht mir denn wichtiges verloren wenn ich das LCD an PCx anschließe? Vielen Dank
Hi >Was geht mir denn wichtiges verloren wenn ich das LCD an PCx anschließe? I2C und JTAG. Und damit dein LCD funktioniert, muss JTAG deaktiviert sein. MfG Spess
I2C ist nicht so schlimm und JTAG auch nicht. Ich habe nur einen AVRISP MKII. Lässt sich JTAG vie ISP deaktivieren? Wird vermutlich eine FUSE sein?
Zum Quarz ... was du beschreibst wäre 10% genauigkeit ... ich denke das ist selbst mit dem internen RC-Glied machbar, wenn du auf Nummer sicher gehn willst nimmst du halt einen stink normalen Quarz oder Resonator mit 100ppm und das ganze hat sich gegessen ...
Verrätst du mir wie man auf die Genauigkeit kommt? Dennoch vielen Dank
Misst ich muss mich echt anmelden. Dann kann ich wenigstens bearbeiten... Welche Frequenz sollte man für so eine Anwendung nehmen?
jede Sekunde entweder 0.1 oder o.5 macht 10% bzw 50% ... ;) aber solange es nicht um ms geht ist das alles eigentlich ungefährlich, zumal du mit den Timern ja noch rumspielen kannst ... soll heißen, wenn du einen 4Mhz-Quarz verwendest kannst du den Timer ja so verstellen, dass es auf 0,1s genau ist ... ist das ein Batteriebetrieb, also kommt es auf den Verbrauch an? Ich würde wahrscheinlich 4 ofer 8Mhz nehmen wenn du den "L" hast sogar 16Mhz ... umso höher die Frequenz umso besser am Ende deine "Messung" ... denn 100ppm bei 4Mhz machen sich mehr bemerkbar als 100ppm bei 16Mhz ... leider hab ich aber bei den Atmegas keine so große Ahnung ... beim MSP430 ist es so, dass man einen Quarz mit 16Mhz anschließt und ihn dann trotzdem auf 1Mhz laufen lässt ... damit bekommt man dann eine höhere Genauigkeit ... Wenn es auf den Energieverbrauch ankommt könnten für dich Uhrenquarze in Frage kommen ... also mit 32768kHz
Der Verbrauch ist völlig egal. Die Versorgungsspannung kommt aus einem gekauften Schaltnetzteil bzw. Steckdose.
8 bzw 16Mhz Quarz mit den entsprechenden Kondensatoren und dann sollte es für dich völlig in Ordnung sein ;)!
Mathias H. schrieb: > jede Sekunde entweder 0.1 oder o.5 macht 10% bzw 50% ... ;) Das ist aber nicht die Genauigkeit, sondern das Tastverhältnis. Das sind zwei völlig verschiedene Dinge. Um die richtige Taktquelle auszuwählen, ist weniger die Pulsdauer entscheidend, als wie genau diese Dauer eingehalten werden muß (sowohl die 0,1 bzw. 0,5 Sekunden Pulsdauer, als auch die 1 Sekunde Periodendauer). > aber solange es nicht um ms geht ist das alles eigentlich ungefährlich, > zumal du mit den Timern ja noch rumspielen kannst ... soll heißen, wenn > du einen> 4Mhz-Quarz verwendest kannst du den Timer ja so verstellen, > dass es auf 0,1s genau ist ... Wenn du einen 0,1-Sekunden-Puls auf 0,1 Sekunden genau ausgeben willst, ist es besonders einfach, denn dann ist es auch ok, wenn der Puls gar nicht kommt. ;-) > denn 100ppm bei 4Mhz machen sich mehr bemerkbar als 100ppm bei 16Mhz ... Wie kommst du denn darauf?
Rolf Magnus schrieb: > Mathias H. schrieb: >> jede Sekunde entweder 0.1 oder o.5 macht 10% bzw 50% ... ;) > > Das ist aber nicht die Genauigkeit, sondern das Tastverhältnis. Das sind > zwei völlig verschiedene Dinge. Um die richtige Taktquelle auszuwählen, > ist weniger die Pulsdauer entscheidend, als wie genau diese Dauer > eingehalten werden muß (sowohl die 0,1 bzw. 0,5 Sekunden Pulsdauer, als > auch die 1 Sekunde Periodendauer). > schon klar, aber im ersten Beitrag hieß es noch "0,1s genau" und jetzt jede 0,1s einen Wechsel ... >> aber solange es nicht um ms geht ist das alles eigentlich ungefährlich, >> zumal du mit den Timern ja noch rumspielen kannst ... soll heißen, wenn >> du einen> 4Mhz-Quarz verwendest kannst du den Timer ja so verstellen, >> dass es auf 0,1s genau ist ... > > Wenn du einen 0,1-Sekunden-Puls auf 0,1 Sekunden genau ausgeben willst, > ist es besonders einfach, denn dann ist es auch ok, wenn der Puls gar > nicht kommt. ;-) das mein ich auch ;)! deshalb hab ich ja gesagt, dass es auch mit dem internen RC-Glied geht! ... > >> denn 100ppm bei 4Mhz machen sich mehr bemerkbar als 100ppm bei 16Mhz ... schon, beim MSP430 istes wie gesagt so, dass wenn ich einen 16Mhz Quarz verwende den µC aber nur auf 1Mhz laufen lasse bleibt von der Ungenauigkeit nurnoch 1/16 übrig ... also besser als bei einem 1Mhz Quarz mit 100ppm oder hab ich da jetzt einen Denkfehler? *Taschenrechner raushol* ... okay vergesst dieses Statement ... ;) ... Egal welcher Quarz egal welche Geschwindigkeit ... aber was Festhalten ist ... wenn ein Quarz mit einer höheren Genauigkeit verwendet wird kann der Timer sehr viel genauer eingestellt werden! ... Was es braucht ist ein Oszi und ein wenig Zeit!
Hi >schon, beim MSP430 istes wie gesagt so, dass wenn ich einen 16Mhz Quarz >verwende den µC aber nur auf 1Mhz laufen lasse bleibt von der >Ungenauigkeit nurnoch 1/16 übrig ... also besser als bei einem 1Mhz >Quarz mit 100ppm oder hab ich da jetzt einen Denkfehler? Ja. Was soll sich durch Teilen am Fehler ändern? >Was es braucht ist ein Oszi und ein wenig Zeit! Kein Kommentar. MfG Spess
Hi, ein Oszi um die Genauigkeit eines Quarzes zu bestimmen - schon klar. Kalibrierst Du mit dem Oszi auch Deine Multimeter? Mal so für die Genauigkeit: Bei einem stinknormalen Keramikresonator hat man so etwa 0,5% Toleranz plus etwas Temp.-Drift, dann ist Deine Sekunde entweder 0,995s oder 1,005s. Auf die 10 Minuten macht das 3 Sekunden. Bei einem Quarz dürfte das mit Tempdrift und Alterung <100ppm sein, also 1,0001s bis 0,9999s sein. Auf die 10 Minuten sind das dann max 0,06s Abweichung.
Ok, dann habe ich mich falsch ausgedrückt. Also der Takt ist genau eine Sekunde. Das Tastverhältnis ist entweder 0,1 oder 0,5 Sek high. Im Prinzip wird das so ähnlich wie die Amplitudenmodulation bei DCF77...
Norbert S. schrieb: > ein Oszi um die Genauigkeit eines Quarzes zu bestimmen - schon klar. > Kalibrierst Du mit dem Oszi auch Deine Multimeter? nicht den Quarz aber den Wert für den Timer ... wenn der Takt dann 0,095s lang ist setzt man halt den Wert für den Timer (die Zählvariable also höher ...) macht natürlich ein wenig Arbeit aber so kann man es zumindest für Prototypen machen.
Mathias H. schrieb: > nicht den Quarz aber den Wert für den Timer ... wenn der Takt dann > 0,095s lang ist setzt man halt den Wert für den Timer (die Zählvariable > also höher ...) macht natürlich ein wenig Arbeit aber so kann man es > zumindest für Prototypen machen. Also wenn man schon nicht in der Lage ist, das halbwegs genau zu programmieren (weil man nicht genau weiß was der Compiler da macht), dann testet man das mit dem Simulator. Normalerweise ist es aber überhaupt kein Problem, sowas nahezu taktgenau zu programmieren, in jeder Hochsprache. ASM muss dazu gar nicht sein. Und wenn Du da die 0,095s misst, Dein Oszi ist ganz bestimmt so genau, daß es nicht vielleicht 0,098s sind? Um Quick & Dirty mal zu testen, ob man zeitlich mit einem Programmteil in Kalamitäten komt oder alles gut ist, taugt das Oszi wohl (dauert der Teil nun eher 50µs oder das Doppelte?) aber sicher nicht, um solche Zeiten genau zu justieren. Da kann man dann bei solchen Zeiten (also 0,1s und so) auch gleich mit dem Delay des Compilers arbeiten. (waitms bei Bascom, Delay_ms() oder so in C) Daß das nicht 100% genau ist, wirst Du mit dem Oszi nicht feststellen können bzw. Du wirst sehen, wie falsch Dein Oszi ist.
Hallo, ich habe euch mal die aktuelle Version. Viel hat sich nichtmehr geändert. *Möglichkeit externer Referenz hinzugefügr *TCXO hinzugefügt
Hi, Du brauchst keinen externen Oszillator. Das ist nur ein Quarz mit einem Oszillator wie er auch im µC ist, wobei der dann nur abgeschaltet wird. Nimm nen Keramikresonator oder nen Quarz. Der Quarz ist übrigens nur so genau wie beschrieben, wenn Du die Lastkapazität richtig hinbekommst. Die parasitären Kapazitäten spielen da eine große Rolle und eine falsche Lastkapazität verbiegen die Frequenz. Also wie groß darf die Abweichung Deiner Zeiten sein? Wenn das wie bei DCF77 ist, also sich das Datensignal selbst synchronisiert (das ist nicht amplitudenmoduliert, was Du da vorhast nennt sich Puls-Pausen-Modulation), dann ist das vollkommen Latte. Dann nimm den internen RC-Oszillator. Dafür sind diese Protokolle gemacht. Das Timing bei solchen Signalen ist wie im wirklichen Leben "Kumpel ist gleich da" = 1 und "Kumpel braucht noch etwas, bis er da ist" = 0. "Der Arsch kommt wohl echt nicht mehr" ist dann Timeout.
Norbert S. schrieb: > Du brauchst keinen externen Oszillator. Das ist nur ein Quarz mit einem > Oszillator wie er auch im µC ist, wobei der dann nur abgeschaltet wird. > Nimm nen Keramikresonator oder nen Quarz. Oh da hast du natürlich recht. Aber ist in dem Atmega nicht ein RC-Schwingkreis? Das Teil in meiner Schaltung hat wenigstens einen Quarz---
Hi, jaja, die Begriffe. Ein Oszillator, das ist erst mal etwas das schwingt. Das sind Logikgatter mit einem zeitabhängigen Element. Letzeres ist entweder ein Quarz, ein Keramikresonator oder eben ein RC-Glied. Die Logiggatter sind im ATMega drin, man schliesst den Quarz oder den Keramikresonator extern an. Man kann auch das interne RC-Glied nutzen, das ist im µC schon drin. Also der µC macht den Takt entweder mit dem externen Quarz oder Keramikresonator (das ist quasi das selbe) oder mit seinem internen RC-Glied. Der Unterschied liegt nur bei der Genauigkeit. Dein externer Oszillator hat Quarz und Gatter und alles an Bord und gibt einen genauen Takt aus. Das ist sicherlich am genauesten, weil das Problem mit der Lastkapazität in dem Ding erledigt wurde aber das brauchst Du nicht. Lies Dir bitte diesen Teil im Datasheet nochmal genau durch. Eigentlich steht das da alles.
Norbert S. schrieb: > jaja, die Begriffe. Du hast es aber auch etwas mißversständlich formuliert: Norbert S. schrieb: > Du brauchst keinen externen Oszillator. Das ist nur ein Quarz mit einem > Oszillator wie er auch im µC ist Das liest sich, als wollest du sagen, im µC sei ein Quarz eingebaut, und wie Ikarus bemerkt, stimmt das nicht. Norbert S. schrieb: > Dein externer Oszillator hat Quarz und Gatter und alles an Bord und gibt > einen genauen Takt aus. Das ist sicherlich am genauesten, weil das > Problem mit der Lastkapazität in dem Ding erledigt wurde aber das > brauchst Du nicht. Woher weißt du das? Er hat immer noch nichts über die tatsächlich benötigte Genauigkeit geschrieben. Er hat nur geschrieben: > Also der Takt ist genau eine Sekunde. Aber wie genau, hat er immer noch nicht verraten.
Rolf Magnus schrieb: > Norbert S. schrieb: >> Dein externer Oszillator hat Quarz und Gatter und alles an Bord und gibt >> einen genauen Takt aus. Das ist sicherlich am genauesten, weil das >> Problem mit der Lastkapazität in dem Ding erledigt wurde aber das >> brauchst Du nicht. > > Woher weißt du das? Er hat immer noch nichts über die tatsächlich > benötigte Genauigkeit geschrieben. Er hat nur geschrieben: > >> Also der Takt ist genau eine Sekunde. > > Aber wie genau, hat er immer noch nicht verraten. Ok, das habe ich mal unterstellt. Ich unterstelle weiterhin, daß der interne RC-Oszillator auch reicht, wenn er so ein digitales PPM-Signal erzeugen will.
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Equipment#Erg.C3.A4nzende_Hinweise_zur_Taktversorgung_.28kann_.C3.BCbersprungen_werden.29 da stehn nochmal die Genauigkeiten ... meiner meinung nach reicht auch der interne RC-Oszillator, aber ich würde immer die Möglichkeit eines externen Quarzes auf einer Platine vorsehen ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.