Hallo! Vorweg ich habe keine Erfahrungen auf dem Gebiet Elektrotechnik. Mein Problem ist das folgende. Ich möchte ein Rechecksignal zur Triggerung von einer Stereokamera erzeugen. Dazu bräuchte ich einstellbare Frequenzen (5,10,15,20,25,30 und 60 Hz). Da das ganue auch recht genau sein sollte bin ich der Meinung, dass ich es mit einem Quarz lösen sollte. Da kommen jetzt meine mangelnden elektrotechnischen Kenntnisse ins Spiel. Ich lese überall das man sich einfach ein Quarz nimmt und den runter teilt. Wenn ich also einen Quarz mit einer bestimmten Frequent habe und den an ein 74HC4060 packe kann ich ja die vom Quarz erzeugte Frequenz durch 2^4-2^16 teilen und habe dann an den entsprechenden Ausgängen die entsprechend kleineren frequenzen. Allerdings kann ich so ja nicht die von mir gebraichten Frequenzen erzeugen. Gibt es jetzt Bauteile die ich einfach hinter die Ausgänge schalten kann, die dann meine gewünschte Frequenz erzeugen? Wenn ja welche wären das! Ich wäre für jede Hilfe dankbar und an dieser Stelle schon einmal besten Dank im Vorraus! Beste Grüße, Thomas
Der Thomas schrieb: > Hallo! Vorweg ich habe keine Erfahrungen auf dem Gebiet Elektrotechnik. > Mein Problem ist das folgende. Ich möchte ein Rechecksignal zur > Triggerung von einer Stereokamera erzeugen. Dazu bräuchte ich > einstellbare Frequenzen (5,10,15,20,25,30 und 60 Hz). > Da das ganue auch recht genau sein sollte bin ich der Meinung, dass ich > es mit einem Quarz lösen sollte. Da kommen jetzt meine mangelnden > elektrotechnischen Kenntnisse ins Spiel. Ich lese überall das man sich > einfach ein Quarz nimmt und den runter teilt. > Wenn ich also einen Quarz mit einer bestimmten Frequent habe und den an > ein 74HC4060 packe kann ich ja die vom Quarz erzeugte Frequenz durch > 2^4-2^16 teilen und habe dann an den entsprechenden Ausgängen die > entsprechend kleineren frequenzen. Allerdings kann ich so ja nicht die > von mir gebraichten Frequenzen erzeugen. > Gibt es jetzt Bauteile die ich einfach hinter die Ausgänge schalten > kann, die dann meine gewünschte Frequenz erzeugen? Wenn ja welche wären > das! > > Ich wäre für jede Hilfe dankbar und an dieser Stelle schon einmal besten > Dank im Vorraus! > > Beste Grüße, > > Thomas Hallo Thomas, mit der gewünschten Einstellmöglichkeit (5,10,15,20,25,30 und 60 Hz) bist du sicher mit einem Mikrocontroller besser bedient. Welches Quarz du dann verwendest, ist eher unwichtig, weil die Frequenz per Software runtergeteilt werden kann. Damit bist du flexibel und kannst fast beliebige Rechtecksignale ausgeben. Ein paar der Pins kannst du verwenden, um die gewünschte Frequenz per Schalter vorzugeben, so dass du jederzeit umschalten kannst. Die Sache hat allerdings einen Haken: du musst für den Mikrocontroller ein kleines Programm schreiben. Hast du damit Erfahrung?
Der Thomas schrieb: > Gibt es jetzt Bauteile die ich einfach hinter die Ausgänge schalten > kann, die dann meine gewünschte Frequenz erzeugen? Mit einer PLL würde soetwas gehen, aber für deinen Frequenzbereich wäre wohl ein klitzekleiner Mikrocontroller einfacher. Ein Poti dran - zur Auswahl der Frequenz - und ein kleines Programm, das über den AD-Wandler die Potistellung liest, um über eine Tabelle einen Timer zur Erzeugung deiner Frequenzen passend zu programmieren
Nur diese Frequenzen? Für feinere Auflösung wäre ein DDS Funktionsgenerator das richtige. Aber hier ist der kleinste gemeinsame Teiler 1500 Hz, wenn das Rechteck symmetrisch sein soll 3 kHz. Das ist aus einem Quarzoszillator einfach zu gewinnen. Schau mal das Datenblatt zum 74HC40103 an, der kann parallel einstellbar durch 3..256 teilen, der Ausgang ist aber ein Impuls. Danach noch ein D-Flipflop 74HC74 o.ä., dann ist es ein symmetrisches Rechteck.
Hi! Wow das ging ja schnell!! Dann sieht es wohl so aus, dass ich um das programmieren nicht drum rum komme! Das müsste ich dann wahrscheinlich in C oder C++ schreiben oder? Kann ja nicht so viel anders sein als Matlab ;) Kennt ihr zufällig irgendwelche frei verfügbaren Beispiele an denen ich mich orientieren könnte? Und könntet ihr mir vielleicht als kleine Starthilfe die erforderlichen Bauteile nennen die ich da bräuchte? Für mich sind diese ganzen Bezeichnungen nicht gerade aussagekräftig... Vielen dank schonmal für die bisherigen Tips!!
Hallo Thomas, nimm dir n kleinen Tiny-µC, häng einen Quarz dran und programmiere einen Timer im CTC Modus um die gewünschte Frequenz zu erzeugen. Bei den niedrigen Frequenzen erreichst du eine super Genauigkeit! Ingo
Sorry für die vielleicht dumme Frage, aber einen kleinen Tiny-µC??
Der Thomas schrieb: > Das müsste ich dann wahrscheinlich in C oder C++ schreiben oder? Für diese Aufgabe ist wahrscheinlich sogar Assembler deutlich einfacher als C. Kommt immer drauf an, welche Programmiersprachen du schon beherrschst. > Kennt ihr zufällig irgendwelche frei verfügbaren Beispiele an denen ich > mich orientieren könnte? Das AVR-Tutorial hier bei mikrocontroller.net ist sehr gut. Lies dich dort einfach mal ein und schau, ob du damit zurecht kommst. > Und könntet ihr mir vielleicht als kleine > Starthilfe die erforderlichen Bauteile nennen die ich da bräuchte? Für deine Anforderungen eignet sich fast jeder Mikrocontroller. Welchen du nimmst, ist Geschmacksache, ich persönlich würde mich für den ATtiny85 entscheiden, weil der handlich klein ist, wenig Strom braucht, weil man ein Quarz direkt anschließen kann und sicher auch, weil er billig ist und man ihn fast überall bekommt. Sonstige Bauteile... ein Quarz mit z.B. 8 MHz, die obligatorischen Kondensatoren dazu, weitere Kondensatoren zum Abblocken, einen DIP-Schalter (evtl. als BCD-Drehschalter), um die Frequenzen umzuschalten, ein paar Widerstände und zwei Mignonzellen (oder Knopfzellen) für die Stromversorgung. Auch hierzu findest du wahrscheinlich ein paar gute Beispiele im Tutorial.
Tja. Da waren sie wieder, deine Probleme. Ein Tiny ist ein AVR-Risc Microkontroller in einem kleinen Gehäuse (daher der Name). Fragen wir mal anders rum: Von welchen Voraussetzungen können wir ausgehen. Denn: so einfach so ein Tiny (oder Mega) auch zu programmieren ist, man benötigt dennoch etwas Zeug drummherum, wie zb einen Brenner mit dem man das Programm in den Tiny brennt. Du scheinst das alles nicht vorrätig zu haben, d.h. da kommen ein paar Kosten auf dich zu, die sich bei einem Einmal-Projekt sicher nicht lohnen.
Ich denke es ist hier alles vorhanden was man so braucht! Ich bin maschinenbauer bzw. Luft- und Raumfahrtechniker und bin gerade im Praktikum. Hier bin ich jetzt irgendwie sehr in der E-Technik schiene gelandet. Davon habe ich allerdings wenig Ahnung! Ich habe im Studium mal c++ programmiert. Das ist allerdings eine Weile her. Das Tutorial ist ein guter Tipp. Da werde ich mich mal einlesen! Vielen dank nochmals und ich melde mich sicherlich bald mit neuen Fragen oder aber mit einem erfolgsbericht ;) Beste Grüße!
Der Thomas schrieb: > Ich denke es ist hier alles vorhanden was man so braucht! Ich bin > maschinenbauer bzw. Luft- und Raumfahrtechniker und bin gerade im > Praktikum. Hier bin ich jetzt irgendwie sehr in der E-Technik schiene > gelandet. Dann würde ich an deiner Stelle so vorgehen, dass ich erst mal in deiner Umgebung rumfrage, ob da wer Mikrocontroller programmiert bzw. Platinen dazu baut. Und dann genau denselben nehmen. Denn das hat auch keinen Sinn, wenn du da dann dein eigenes Süppchen kochst und dir keiner vor Ort helfen kann.
Werner schrieb: > Ein Poti dran - zur Auswahl der Frequenz Ich würde lieber einen Codierschalter nehmen, da kann man die Stellung einfach ablesen. Dann ist der ATtiny25 etwas knapp mit Pins, daher besser den ATtiny24 nehmen. Der Thomas schrieb: > in C oder C++ schreiben oder? Ja.
1 | #define F_CPU 10e6 // 10MHz
|
2 | #include <avr/io.h> |
3 | #include <util/delay.h> |
4 | |
5 | #define DELAY(x) 1e6 / 2.0 / x
|
6 | |
7 | int main () |
8 | {
|
9 | DDRA = 1<<PA4; // output |
10 | for(;;){ |
11 | switch( PINA & 0x0F ){ // PINA3..PINA0 |
12 | case 0: _delay_us( DELAY( 5 )); break; // 5Hz |
13 | case 1: _delay_us( DELAY( 10 )); break; // 10Hz |
14 | case 2: _delay_us( DELAY( 15 )); break; // 15Hz |
15 | case 3: _delay_us( DELAY( 20 )); break; // 20Hz |
16 | case 4: _delay_us( DELAY( 25 )); break; // 25Hz |
17 | case 5: _delay_us( DELAY( 30 )); break; // 30Hz |
18 | case 6: _delay_us( DELAY( 60 )); break; // 60Hz |
19 | }
|
20 | PINA = 1<<PA4; // toggle output |
21 | }
|
22 | }
|
= 210 Byte Code.
Peter Dannegger schieb: > = 210 Byte Code. Hier ist der Default-Fall nicht abgefangen, hier wird ins Eingansgregister geschrieben, interne Pullups nicht aktiv, folglich extern, AVR/io nicht eingebunden, Am Ausgang toggeln nichts, da müsste stehn PortA ^= 1<<PAx Halb so voreilig und lieber deine gewohnte Qualität!
Wow! Dann gilt es jetzt nur noch den Code und Ingos Kommentar zu verstehen und dann sehe ich langsam Land!! Ich kann euch gar nicht oft genug danken :D
Ingo schrieb: > Peter Dannegger schieb: >> = 210 Byte Code. > Hier ist der Default-Fall nicht abgefangen, hier wird ins > Eingansgregister geschrieben, interne Pullups nicht aktiv, folglich > extern, AVR/io nicht eingebunden, Am Ausgang toggeln nichts, da müsste > stehn PortA ^= 1<<PAx > Halb so voreilig und lieber deine gewohnte Qualität! Ja, die Pullups sollte man vielleicht noch setzen. Auch muss man sich überlegen, ob die Zeitverluste der Schleife noch irgendwie kompensiert werden sollen, trotzdem ist das Programm von Peter wunderbar klar und einfach, mir gefällts. Was hast du gegen "PINA = 1<<PA4"? Ist doch die einfachste Art, den Ausgang zu toggeln. Kann natürlich sein, dass der Compiler auch "PortA ^= 1<<PA4" in o.g. Befehl übersetzt, aber nur, wenn er einen sehr guten Optimierer hat.
Was Peter wahrscheinlich sagen wollte ist, dass dein Problem innerhalb von n paar Zeilen Code gelöst sind, hat er ja recht. Ingo
Tut mir leid, evtl. übersehe ich was aber: PINx beschreibt den logischen Zustand am Pin Portx steuert den logischen Zustand am Pin Was toggelt denn hier? Hier wird nur eine 1 in das Eingangsregister geschrieben. Will nicht ausschließen das ich was übersehen habe
Hi >Was toggelt denn hier? Hier wird nur eine 1 in das Eingangsregister >geschrieben. Ist bei neueren AVRs so. Das Schreiben einer 1 in das PIN-Register toggled den zugehörigen Pin. Toggling the Pin Writing a logic one to PINxn toggles the value of PORTxn, independent on the value of DDRxn. Note that the SBI instruction can be used to toggle one single bit in a port. MfG Spess
Hallo Spess, vielen Dank für die Info, ich wusste nur das das mit nem XMega und den OUTTGL Registern geht, aber bei den neueren Megas nun auch, interessant! Sorry Peter, mein Fehler!
Hi
>aber bei den neueren Megas nun auch,
Nicht nur bei den neueren ATMegas, sondern auch bei neueren ATTinys.
MfG Spess
> Recheckeckgenerator
Ja, klar. Habs mal aufgeräumt...
Standard-Quarze von Reichelt: 12,88 MHz/4096 6,144MHz/2048 3,072MHz/1024 =3kHz also ein 74HC4060,ein 74HC40103 und ein 74HC74 reichen auch. Aber das mit Mikrocontroller ist natürlich eleganter.
spess53 schrieb: > Ist bei neueren AVRs so. Das Schreiben einer 1 in das PIN-Register > toggled den zugehörigen Pin. > > Toggling the Pin > Writing a logic one to PINxn toggles the value of PORTxn, independent > on the value of DDRxn. > Note that the SBI instruction can be used to toggle one single bit in > a > port. Das haut mich jetzt weg. Gerade fluche ich mal wieder, warum es wohl keine "eori"-Instruktion gibt, die mir einen dringend benötigten Takt freiräumen könnte, und nun stelle ich fest, daß ich die garnicht brauche. Allein deswegen hat es sich heute schon wieder gelohnt, das Forum zu lesen. OK, man hätte natürlich auch die Datenblätter der neueren Teile einfach mal vollständig lesen können, aber wer rechnet schon damit, daß es bei Trivialitäten wie Bitbanging nach 10 Jahren nochmal was nützliches Neues gibt...
Die Lösung mit den Delays ist noch nicht besonders genau. Man könnte es noch hinbekommen, müsste dann aber noch die Laufzeit der Schleife berücksichtigen. Für eine genauer Lösung wäre es besser einen Interrupt zu nehmen, der einem z.B: 600 Hz erzeugt, und dann in der ISR je nach Gewünschter Frequenz durch 5,10,15,20,30,60 usw. teilt. Alternativ könnte man auch je nach Frequenz direkt den Timer Programmieren das der Interrupt mit der Doppelten der gewünschten Frequenz kommt und das Signal gleich per Waveform Generator ausgeben lassen. Wenn das Hauptprogramm nur einfach in den Sleep Modus geht, ist auch die Reaktionszeit auf einen Interrupt immer gleich.
Ulrich schrieb: > Wenn das Hauptprogramm nur einfach in den Sleep Modus geht, ist auch die > Reaktionszeit auf einen Interrupt immer gleich. Haben diese kleinen µC eigentlich keinen Compare-Mode bzw. Compare-Timer für PWM? Dann kann die CPU gleich ganz schlafen, und der Timer läuft ohne Interrupt, so gut wie es auch ein reiner Hardware-Zähler mit bspw. einem CMOS 4060 tun würde.
Du kannst auch ein AD9850-Modul nehmen, das hat neben dem Sinus auch einen Rechteck-Ausgang: http://www.ebay.de/itm/New-AD9850-DDS-Signal-Generator-Modul-0-40MHz-Test-Equipment-/330868965479?pt=Licht_Effekte&hash=item4d0953c067 Ein Steuer-IC gibts auch bei der Bucht: http://www.ebay.de/itm/310624875218?ssPageName=STRK:MESOX:IT&_trksid=p3984.m1559.l2649 Das gibt zusammen einen prima Funktionsgenerator, den man immer mal gebrauchen kann.
Die Tiny AVRs haben schon einen PWM Mode und compare Mode, allerdings haben viele nur 8 bit Timer. Da müsste man dann schon einen passenden Quarz finden, damit man so ohne weiteres alle der gewünschten Frequenzen direkt hin bekommt. Der Vorteiler (Takt und am Timer) gibt ja nur 2 er Potenzen. Es gibt aber auch einige Tinys mit 16 Bit Timer und AD Wandler: z.B. den Tiny24.
Ulrich schrieb: > Die Lösung mit den Delays ist noch nicht besonders genau. Man könnte es > noch hinbekommen, müsste dann aber noch die Laufzeit der Schleife > berücksichtigen. > > Für eine genauer Lösung wäre es besser einen Interrupt zu nehmen, Für das Auslösen einer Stereocamera wird es wohl reichen :-) Zum anderen ist ja auch der Quarz nicht genau genug, so dass die zusätzlichen <10 Takte neben den errechneten Verzögerugsschleifen pro Schleifendurchlauf das Kraut auch nicht mehr fett machen.
Ulrich schrieb: > Die Lösung mit den Delays ist noch nicht besonders genau. Es ist Unsinn, die Software auf den Zyklus genau zu schreiben, wenn die Hardware das nicht wuppen kann. Für ein typisches MC-Quarz ist das daher vollkommen ausreichend. Willst Du eine höhere Genauigkeit, mußt Du erstmal eine bessere Zeitbasis benutzen, z.B. ein Rubidium Frequenznormal.
Ulrich schrieb: > Die Lösung mit den Delays ist noch nicht besonders genau. Man könnte es > noch hinbekommen, müsste dann aber noch die Laufzeit der Schleife > berücksichtigen. Wenn man die Aussage vollständig zitiert, wird sie auch nachvollziehbar. Ulrich schrieb: > Es gibt aber auch einige Tinys mit 16 Bit Timer und AD Wandler: z.B. den > Tiny24. Einen Tiny24/44/84 + Quarz würde ich auch empfehlen. Peter Dannegger schrieb: > Willst Du eine höhere Genauigkeit, mußt Du erstmal eine bessere > Zeitbasis benutzen, z.B. ein Rubidium Frequenznormal. Und das ist nun völlig daneben!
M. N. schrieb: > Ulrich schrieb: >> Die Lösung mit den Delays ist noch nicht besonders genau. Man könnte es >> noch hinbekommen, müsste dann aber noch die Laufzeit der Schleife >> berücksichtigen. > > Wenn man die Aussage vollständig zitiert, wird sie auch nachvollziehbar. Nicht wirklich. Sieht man sich die Schleife an, dann besteht sie zu 99.999% aus Takte-zählen plus ein paar zusätzliche Takte (weniger als 10), die sich mit Pin toggeln und Aufbau der Schleife beschäftigen. delay_us rechnet sich sehr genau aus, wieviele Takte es zu zählen hat und berücksichtigt dabei auch seinen eigenen Aufbau. d.h. diese Takte stimmen. Ein _delay_us( 1000 ) wird so aufgelöst, dass bei 10Mhz Taktfrequenz auch wirklich in Summe 1 Millionen Takte verbrutzelt werden. Die zusätzlichen (angenommenen)10 Takte für den Rest der Schleife fallen überhaupt nicht ins Gewicht. Denn ob der µC jetzt 1000000 Takte verbrutzel um auf 1ms zu kommen oder 1000010 (delay + Schleifenaufbau) ist völlig egal, solange der Quarz real nicht 10000000 (wie auf ihm aufgedruckt) sondern 10000130 Schwingungen (oder entsprechend in der anderen Richtung) in der Sekunde macht (und sich das bei Temperaturänderungen auch ändert) Wenn du wirklich exakte Zeiten haben willst, musst du in erster Linie mal dafür sorgen, dass du die Frequenz deiner Zeitbasis exakt kennst (und die auch konstant bleibt), damit du diese Frequenz auch exakt zählen kannst. Solange du die nicht exakt kennst, spielt es überhaupt keine Rolle, ob du systematisch um 4 oder 5 oder 10 Takte zuviel/zuwenig zählst oder nicht, weil das im Quarzfehler völlig untergeht. Ich gehöre durchaus zu denjenigen, die bei einem delay zu heulen anfangen. Aber ich akzeptiere auch, dass es Programme gibt, in denen ein komplexeres Timer-Schema nichts bringt. Dieses Einfachstprogramm gehört m.M. nach genau in diese Kategorie. Ob ich mit einem Timer die 1Mio Takte falsch abzähle (weil es in Wirklichkeit 1000124 oder 9999848 oder ... sein müssten), oder ob ich eine Warteschleife 1Mio Takte verbrutzeln lasse, ist Jacke wie Hose. Stimmen wird das eine genausowenig wie das andere - wenn man ganz genau hinsieht.
Auch wenn die Delay-Lösung für die vorliegende Anwendung ausreichend sein mag, kostet es ja kein zusätzliches Geld, das Ganze mit einem Timer zu machen. Die Software wird dadurch sogar noch kürzer. Da jeder aktuelle AVR-Controller einen 8-Bit-Timer mit CTC-Mode, Output- Compare-Toggle und Prescaler-Faktor bis mindestens 1024 hat, ist es überhaupt kein Problem, das Rechtecksignal zyklengenau komplett durch den Timer generieren zu lassen. Beispiel: - Quarz: 2,4576 MHz (gibt's bspw. bei Reichelt) - Prescaler-Faktor: 1024 - Timer-Periode: 240 -> 5 Hz 120 -> 10 Hz 80 -> 15 Hz 60 -> 20 Hz 48 -> 25 Hz 40 -> 30 Hz 20 -> 60 Hz Anstelle der 2,4576 MHz gehen auch 1,8432 MHz. Dann sind die angegebenen Timer-Perioden jeweils mit 3/4 zu multiplizieren. Die meisten neueren AVRs haben aber auch einen 16-Bit-Timer und/oder größere Prescaler-Faktoren, so dass beim Quarz auch höhere Frequenzen und damit kleinere Gehäuseformen als HC49/U möglich sind (falls Baugröße wichtiger als Stromverbrauch ist). Die CPU steht damit nach der Initialisierung des Timers zu 100% für andere Aufgaben zur Verfügung (falls man noch irgendwelche Gimmicks realisieren möchte) oder kann schlafen gelegt werden, um Strom zu sparen.
Karl Heinz Buchegger schrieb: > Ich gehöre durchaus zu denjenigen, die bei einem delay zu heulen > anfangen. Na das nun nicht. Aber Timer + Quarz erscheinen mir als sinnvolle und zuverlässige Lösung, wenn man auf dem Teppich bleiben und nicht jeden Lösungsansatz zerreden will.
Peter Dannegger schrieb: > Ulrich schrieb: >> Die Lösung mit den Delays ist noch nicht besonders genau. > > Es ist Unsinn, die Software auf den Zyklus genau zu schreiben, wenn die > Hardware das nicht wuppen kann. > Für ein typisches MC-Quarz ist das daher vollkommen ausreichend. Das könnte man auf den ersten Blick annehmen. Eine Addition von Fehlern macht aber eine Sache garantiert nicht besser. Bei einem Einzelstück kann man mal so hantieren. Beim Kauf eines Quarzes griff ich mal daneben, und erwischte wohl 2. Wahl. 690ppm Abweichung, da hätte die Schaltung noch einen Trimmer am Quarz gebraucht. Zum zuverlässigen Betrieb eines CAN-Controllers hätte das kaum noch gereicht, und für eine autonome Uhr (z.B. ausgefallenes DCF-Signal) bei weitem auch nicht. Die Uhr geht am Tag sowas knapp unter 10 Minuten falsch. Es spielt bei mir keine Rolle, ist nur ein Schaustück, und DCF updatet sowieso jede Minute. Der Quarz wäre auch schnell ausgetauscht, wenn es mir so wichtig wäre. Alternativ zum Trimmer könnte man wohl noch etwas an den Timertakten justieren, bei Timern mit geringer Auflösung allerdings weniger gut.
Wenn ich, so wie der TO, wenig Ahnung von Elektronik und Controllern hätte, dann würde ich ja eine Lösung mit Microcontrollern nicht gerade favorisieren. Ich würde mir einfach einen 1,5 MHz Quarzoszillator besorgen und mit ein paar Timer-ICs die passenden Ausgangsfrequenzen einstellen. Wenn ich mir's genau überlege - selbst mit Ahnung von Elektronik und Controllern würde ich es für ein Einzelstück wohl so machen.
Wilhelm Ferkes schrieb: > Peter Dannegger schrieb: > >> Ulrich schrieb: >>> Die Lösung mit den Delays ist noch nicht besonders genau. >> >> Es ist Unsinn, die Software auf den Zyklus genau zu schreiben, wenn die >> Hardware das nicht wuppen kann. >> Für ein typisches MC-Quarz ist das daher vollkommen ausreichend. > > Das könnte man auf den ersten Blick annehmen. Eine Addition von Fehlern > macht aber eine Sache garantiert nicht besser. Bei einem Einzelstück > kann man mal so hantieren. Ähm. Ist dir klar, das PeDa einen wunderbaren Artikel darüber geschrieben hat, wie man (allerdings mittels Timer) eine Uhr aufbaut, die dann auch maximal genau geht? Teil dieses Abgleichprozesses ist es, die exakte(!) Quarzfrequenz festzustellen und die CTC-Timerkette so einzustellen, dass sie über mehrere Timerperioden gemittelt genau diese real ermittelte Zyklenzahl ergibt. Und solange man das nicht macht, ist es sinnlos auf eine Zyklenzahl eines Quarzes hinzuarbeiten, die der einfach nicht hat. Egal ob mit Timer oder mittels Warteschleifen.
J. L. schrieb: > Wenn ich mir's genau überlege - selbst mit Ahnung von Elektronik und > Controllern würde ich es für ein Einzelstück wohl so machen. Dann gerade mit µC! Bislang wissen wir doch kaum etwas, nur dass ein "Rechecksignal" erzeugt werden soll :-) Das soll bestimmt auch zu einem Zeitpunkt gestartet und gestoppt werden und nicht wie bei einer Kirchturmuhr Tag für Tag durchlaufen. Erst ein µC kann die Schaltung/Steuerung praxisgerecht machen.
Karl Heinz Buchegger schrieb: > Ist dir klar, das PeDa einen wunderbaren Artikel darüber geschrieben > hat, wie man (allerdings mittels Timer) eine Uhr aufbaut, die dann auch > maximal genau geht? Teil dieses Abgleichprozesses ist es, die exakte(!) > Quarzfrequenz festzustellen und die CTC-Timerkette so einzustellen, dass > sie über mehrere Timerperioden gemittelt genau diese real ermittelte > Zyklenzahl ergibt. Zwar kenne ich die Uhr von PeDa nicht, aber ja, klar, da kann man mit Aufwand noch was machen. Ich tippe mal, ohne es zu wissen, daß er zur Korrektur sogar das DCF-Signal selbst heran zieht. So weit soll das hier sicher nicht getrieben werden. Der TO hat ja auch noch die Möglichkeit, einen eng tolerierten Fertigoszillator zu kaufen, wenn die Sache wirklich präziser sein muß. J. L. schrieb: > Wenn ich mir's genau überlege - selbst mit Ahnung von Elektronik und > Controllern würde ich es für ein Einzelstück wohl so machen. Zumindest fällt da niemals ein Flash aus, weil es aus Altersgründen mal bits verliert. Aber: Die Sache ist dann fest verdrahtet, so leicht nicht mehr änderbar. Genau dort liegt ja die Fortschrittlichkeit von µC.
So dann melde ich mich auch mal wieder zu Wort als TO. Ich habe mich dazu entschlossen es definitiv mit einem Mikrokontroller umzusetzen, welchen ich in C programmieren werden. Dazu gibt es hier ja recht gute Tutorien die auch den Hardwareaufbau gut erklären. Ich will ja schließlich dabei auch noch was lernen ;) Den Hardwareaufbau habe ich mir jetzt soweit auf dem Papier erstellt. Beschreiben werde ich das ganze über einen ISP Adapter. Um die Frequenzen zu ändern möchte ich einen Schalter verwenden. Habe ich das soweit richtig verstanden das ich wenn ich 7 Frequenzen generieren möchte, ich ich 7 Eingangspins und einen für den Ausgang benötige. Je nachdem an welchen Eingangspin dann die Spannung anliegt, kann ich dann ein entsprechendens "Programm" schreibe welches die gewünschte Frequenz generiert und am Ausgangspin ausgibt. Über diesen Pin füttere ich dann die beiden Kameras mit dem Triggersignal. Schalter wäre dann sowas hier: http://www.reichelt.de/Dip-Kodierschalter/DP-06/3/index.html?;ACTION=3;LA=2;ARTICLE=7172;GROUPID=3287;artnr=DP+06 Würde das so hinhauen oder habe ich da was noch falsch verstanden? Beste grüße, Thomas
Man kann natürlich mit einem Timer 600Hz erzeugen und dann daraus die gewünschten Takte ableiten. Der Pferdefuß ist aber, daß ein 6MHz Quarz eben nicht exakt 6,000000MHz hat, sondern abweicht und schon haben die 600Hz einen Fehler. Dieser kann durchaus größer sein, als der Fehler des Delays. Im Worst Case ist er 300 Zyklen. Klar kann man mit dem 16-Bit Timer auch eine PWM höherer Bitzahl machen, um auch bei realen Quarzfrequenzen zyklusgenau zu sein. Aber die Mathematik wird nen Zacken komplexer und damit wollte ich einen Anfänger nicht verunsichern. Mein RTC-Code macht ja auch keine Kompensation auf einen Zyklus genau, sonderen nur so weit, daß es für Uhrenanwendungen ausreicht. Ich glaub, etwa alle 10Hz F_CPU-Änderung ändert sich auch der Korrekturwert.
Ok dann so einen Schalter! Aber ist es korrekt, dass ich den dann an die 7 Pole anschließen muss und ich dann mit einer einer switch case abfrage die entsprechenden Frequenzen erzeuge?
Hi >Ok dann so einen Schalter! Aber ist es korrekt, dass ich den dann an die >7 Pole anschließen muss und ich dann mit einer einer switch case abfrage >die entsprechenden Frequenzen erzeuge? Der braucht nur 4 Anschlüsse. MfG Spess
Hmm dann verstehe ich nicht wie so ein Schalter funktioniert. Ich hätte jetzt gedacht, dass der nur den anliegende Spannung auf eine bestimmten Pin durchschaltet. Dann liegt ein pin auf high und die anderen auf low. Das kann ich dann einfach auslesen. Sprich ich muss dann nur schauen an welchen pin ist high. jedem pin wurde eine frequenz zugeordent und die wird dann ausgegeben. Bin ich da auf dem Holzweg?
Hi
>Bin ich da auf dem Holzweg?
Ja. Da sind 4 Schalter drin. Dadurch wird die Schalterstellung binär
codiert auf den 4 Anschlüssen ausgegeben.
MfG Spess
Peter Dannegger schrieb: > http://www.reichelt.de/Dip-Kodierschalter/KDR-16/3/index.html?;ARTICLE=9250 Diesen Schalter gibt es auch mit Griff (damit du nicht ständig einen Schraubenzieher mit dabei haben musst) und wahlweise mit 10 oder 16 Einstellpositionen: http://www.reichelt.de/?ARTICLE=9433 http://www.reichelt.de/?ARTICLE=9434 Wie auch der von Peter vorgeschlagene Schalter brauchst auch du hier 4 Eingangspins an Mikrocontroller. Die Schalterstellung wird dabei binär codiert (s. zweite Abbildung auf der Reichelt-Webseite).
Der Thomas schrieb: > Bin ich da auf dem Holzweg? Vielleicht sagt dir der Begriff Hex-Codierschalter eher was, und Binärcodierung weniger. Die Schalterstellung geht hexadezimal an die Anschlußpins. An 3 Pins kann man bspw. 8 Schalterstellungen codieren. DIP-Schalter, auch Mäuseklavier genannt, gehen auch. Bspw. 3 Schalter für 8 Zustände.
Ahh da hats klick gemacht:D Ist ja gar nicht so dumm diese Binärcodierung :D Also hänge ich den Schalter an Port D 0-3 und kann mir dann den Port D 4 als ausgang definiren und da das Triggersignal ausgeben! Wenn das so stimmt geh ich einkaufen und programmiere die Abfrage und dann müsste das so klappen oder?
Der Thomas schrieb: > Wenn das so stimmt geh ich einkaufen und programmiere die Abfrage und > dann müsste das so klappen oder? Du hast noch nicht beschrieben, was alles genau du jetzt einkaufen willst. Es wäre besser, das mit uns noch mal zu besprechen. Letztendlich gehören zu der Sache auch problemlose und preisgünstige Tools für den PC. Besser, wenn man das im Vorfeld weiß, ob und was es da gibt. Leider kenne ich AVR-Familien und Tools nicht, aber andere Freaks hier geben sicher Rat dazu.
Ok! Also ich benötige meines Wissens nach: Für die Grundschaltung des Mega8: R1 = 10kOhm C1 = 47nF C2-C4 100nF einen Quarzoszilator oder ein Quarz plus 2 C mit 22pF(4MHz) Der Atmega8 selber einen 6 poligen ISP- Anschluss einen ISP Adapter für den PC(Der müsste aber vorhanden sein, da muss ich nochmal suchen) und für die Stromversorgung: 5V Spannungsregler (7805) C1 Elko 10 µF C2,C3 100nF Keramik D1 Diode 1n4001 Außderm 2 Kabel plus eine Batterie oder wenn ich ein Netzgerät bekomme Adabter um die Laborstecker auf die Lochplatte zu bekokommen die ich natürlich auch noch benötige! Meint ihr das passt so?
Ach und der Schalter natürlich!! Der mit 10 Stellungen denke ich!
Der Thomas schrieb: > Meint ihr das passt so? Wie gesagt, kenne ich Mega8 ja gar nicht, nur ganz andere Familien wie PIC, 8051, ARM, aber das spielt jetzt hier keine Rolle. Hast du mal ein Schaltbild, wenn auch nur Provisorium handgezeichnet und fotografiert oder gescannt? Da müssen eben die richtigen Spezialisten für diesen Controller mal ran.
Der Thomas schrieb: > einen Quarzoszilator oder ein Quarz plus 2 C mit 22pF(4MHz) Warum nutzt Du nicht die Berechnung, die Yalu schon gemacht hast und nimmst einen passenden Quarz? Beitrag "Re: Rechteckgenerator mit verschiedenen Frequenzen" Ein ATmega8 ist nicht optimal. Beim ATmega88A-PU stimmen mit 2,15 Preis und Leistung.
Habter recht! Nehme ich einen mit 2,4576 MHz. und den ATmega88A-PU. Die schaltung ist diese: http://www.mikrocontroller.net/articles/Datei:Mega8_Tutorial.png und die Stromversorgung diese: http://www.mikrocontroller.net/articles/Datei:V_Regler.gif
M. N. schrieb: > Beim ATmega88A-PU stimmen mit 2,15 Preis > und Leistung. Och, da muß man aber auch nicht mit dem Cent geizen, für ein Einzelstück. Für meine SAB80515A und SAB80C517A zahlte ich vor 15-20 Jahren noch richtig Geld, sowas um die 20 Euronen herum. Sie sind heute immer noch Klasse, und geben was her. Dann gibts in der Kneipe mal ein Bierchen weniger, und an der Technik erfreut man sich ja auch, und vor allem viel länger, als ein Bierchen anhält. Ich hätte sogar den PIC12F675 für sowas geeignet gehalten, der kostet nur 1€, ein 8-Pinner im DIP-Gehäuse. Wenn man ein PICkit1 als Programmer schon besitzt. Und das kostete auch nicht viel. Den PIC werde ich gelegentlich z.B. als Universal-Logikbaustein mißbrauchen, wenn ich sowas als Sonderfall mal benötige, und er schnell genug ist. Vor allem, bei der nächsten Bestellung mal 3 Stück als Vorrat mit buchen. Aber nein, wir sind nicht beim PIC, keine neue Baustelle. Der Thomas schrieb: > Habter recht! Nehme ich einen mit 2,4576 MHz. und den ATmega88A-PU. Siehste mal. Das muß vor dem Kauf alles geklärt sein.
Ok! Dann werde ich das jetzt wohl so aufbauen! Und falls ein ISP Adapter hier nicht auffindbar ist, dann baue ich mir mit dieser Anleitung selber einen! http://www.rn-wissen.de/index.php/AVR-ISP_Programmierkabel Das sollte für den Atmega88A ja funktionieren!
Von der Anzahl der I/O-Pins her würde auch ein ATtiny24 reichen, der etwas handlicher als der ATmega8 ist. Dafür hast du bei ATmega8 die Option, noch ein LCD zur Anzeige der gerade eingestellten Frequenz anzuschließen ;-) Ob ATmega8, ATmega88, ATmega88A, ATmega48 oder ATmega48A, das macht bei dieser Anwendung kaum einen relevanten Unterschied. Und da sie alle einen 16-Bit-Timer haben, spielt auch die Quarzfrequenz keine große Rolle. Du kannst damit auch problemlos höhere Quarzfrequenzen als die oben vorgschlagenen 2,4576 MHz wählen. Die von dir angedachten 4 MHz sind ebenso in Ordnung. Ich würde vielleicht aus ästhetischen Gründen 3,6864 MHz nehmen, da diese Frequenz ein ganzzahliges Vielfaches der von dir gewünschten Triggerfrequenzen ist, so dass du zumindest rechnerisch diese Frequenzen exakt hinbekommst. Natürlich hat auch der Quarz gewisse Toleranzen, aber durch die Frequenzteilung wird dann kein Fehler mehr hinzuaddiert. Da die 3,6864 MHz auch ein Vielfaches üblicher RS-232- Baudraten ist, kannst du deine Schaltung als Option auch problemlos über eine RS-232-Schnittstelle steuern. Aber wie gesagt, das alles ist ziemlich unkritisch, und auch deine bisherige Einkaufsliste ist vollkommen in Ordnung. Mach dir nicht zuviel Gedanken und bestelle einfach :) > Und falls ein ISP Adapter hier nicht auffindbar ist, dann baue ich mir > mit dieser Anleitung selber einen! > > http://www.rn-wissen.de/index.php/AVR-ISP_Programmierkabel Aber nur, wenn dein PC noch einen Druckerport hat :)
Wilhelm Ferkes schrieb: > Och, da muß man aber auch nicht mit dem Cent geizen, für ein > Einzelstück. Das mache ich auch nicht unbedingt, Wilhelm Ferkes schrieb: > Beim Kauf eines Quarzes griff ich mal daneben, und erwischte wohl 2. > Wahl. 690ppm Abweichung, da hätte die Schaltung noch einen Trimmer am > Quarz gebraucht. denn diesen Quarz hätte ich einfach ausgelötet und weggeworfen :-) Yalu X. schrieb: > Ob ATmega8, ATmega88, ATmega88A, ATmega48 oder ATmega48A, das macht bei > dieser Anwendung kaum einen relevanten Unterschied. Und da sie alle > einen 16-Bit-Timer haben, spielt auch die Quarzfrequenz keine große > Rolle. Da mir Deine obige Berechnung so gut gefallen hat, dachte ich, ein Mega88 kann diese Aufgabe allein schon mit T0 erledigen :-) Bei den neueren Typen sind die PCINTs nicht schlecht und von Mega48 - Mega328 hat man eine pinkompatible Auswahl im gleichen Gehäuse - ohne Aufpreis. edit: "pinkompatible Auswahl im gleichen Gehäuse" == weißer Schimmel Ich meinte mit gleichen Funktionen
M. N. schrieb: > denn diesen Quarz hätte ich einfach ausgelötet und weggeworfen :-) Keine Sorge. Ich hab eine große Kiste Ersatz, wenn nötig. Ich mache es dann wie der Peter Dannegger, und justiere per Software nach, wenn an der Hardware eine DCF77-Uhr dran ist. Man kann da mit der Uhr so vieles noch an Fehlerkorrektur machen, daß man den ganzen Tag nur noch damit alleine beschäftigt ist. Plausibilitätstests der Daten, usw. usf.. Man kann auch den ganzen Tag an einem Pommes-Stäbchen schnitzen, bis es Normmaße hat. Oder in der Nase bohren, bis man auf eine Ölquelle gestoßen ist. ;-)
Wilhelm Ferkes schrieb: > Oder in der Nase bohren, bis man auf eine Ölquelle > gestoßen ist. ;-) Da brauchst Du aber große Nasenlöcher: http://commons.wikimedia.org/wiki/File:Erd%C3%B6l_Bohrmeissel.jpg
Wilhelm Ferkes schrieb: > M. N. schrieb: > >> denn diesen Quarz hätte ich einfach ausgelötet und weggeworfen :-) > > Keine Sorge. Ich hab eine große Kiste Ersatz, wenn nötig. > > Ich mache es dann wie der Peter Dannegger, und justiere per Software > nach, wenn an der Hardware eine DCF77-Uhr dran ist. Du hast das falsch verstanden. An seiner Uhr gibt es kein DCF. Man geht davon aus, dass der Quarz so schnell schwingt wie aufgedruckt, lässt das ganze ein paar Tage laufen und rechnet aus der Abweichung zurück, wie schnell der Quarz wirklich schwingt und dann wird das in den Code eingearbeitet. AVR - Die genaue Sekunde / RTC
Karl Heinz Buchegger schrieb: > Du hast das falsch verstanden. > An seiner Uhr gibt es kein DCF. > Man geht davon aus, dass der Quarz so schnell schwingt wie aufgedruckt, > lässt das ganze ein paar Tage laufen und rechnet aus der Abweichung > zurück, wie schnell der Quarz wirklich schwingt und dann wird das in den > Code eingearbeitet. Wo ist denn da die Referenz? Der µC und der Quarz merken ja nicht von alleine, daß sie driften.
Apropos RTC-Uhren mit Quarz 32768Hz: Die können sehr genau sein. Meine 30 Jahre alte Armbanduhr Made in HongKong läuft aktuell noch, muß sie nie nach stellen. Ich hab gerade mal gerechnet, deren Abweichung beträgt wirklich nur 1,5 ppm. Das Ding kostete bei Kaufhof 1983 ganze 30DM. HongKong, da sagte man damals: Im Kaugummiautomaten gezogen. Gegen die 1,5 ppm sind µC-Quarze wirklich Mist. Selbst wenn man einen Justiertrimmer dran hat, die triften auch mit der Temperatur schon einige 10 ppm. Die in HongKong bekamen es jedenfalls vor 30 Jahren hin, daß meine Uhr bis heute einwandfrei spielt, vielleicht noch weitere 30 Jahre.
Ich habe die Schaltung gerade mal mit einem ATmega8, einem Quarz mit 3,6864-MHz, einem Codierschalter und etwas Kleinzeug zusammengesteckt und folgendes Programm aufgespielt:
1 | #include <stdint.h> |
2 | #include <avr/io.h> |
3 | |
4 | // Taktfrequenz in Hz
|
5 | #define CLK 3686400
|
6 | |
7 | // Umrechnung von Frequenz in Wert für Output-Compare-Register
|
8 | #define OC(f) (CLK / 16 / (f) - 1)
|
9 | |
10 | // 16 wählbare Frequenzen in Hz für die Schalterstellunge 0-9, A-F
|
11 | uint16_t periods[16] = { |
12 | |
13 | // 0 1 2 3 4 5 6 7
|
14 | OC( 5), OC(10), OC(15), OC(20), OC(25), OC(30), OC(60), OC(60), |
15 | |
16 | // 8 9 A B C D E F
|
17 | OC(60), OC(60), OC(60), OC(60), OC(60), OC(60), OC(60), OC(60) |
18 | };
|
19 | |
20 | int main(void) { |
21 | |
22 | // Initialisierung
|
23 | PORTC = 0x0f; // Pullups für Codierschaltereingänge (PC0-PC3) |
24 | DDRB = 1<<PB1; // PB1 (OC1A) als Ausgang konfigurieren |
25 | TCCR1A = 0x40; // Timer 1: CTC Mode, Toggle OC1A on Compare Match |
26 | TCCR1B = 0x0a; // Clock Select clkio/8 |
27 | |
28 | // Codierschalter abfragen und entsprechende Periodendauer setzen
|
29 | for(;;) |
30 | OCR1A = periods[PINC & 0x0f]; |
31 | }
|
Das Oszi am OC1A-Ausgang zeigt die jeweils erwartete Frequenz mit einem Fehler von 80 ppm an.
Krass! Ich bin begeistert! Dann muss ich nur noch auf die Teile warten und um was zu lernen vollziehe ich wohl erstmal deinen Code nach!! Vielen herzlichen Danke!!! Mfg!!
Eine Frage hätte ich noch: Für die Kondensatoren am Quarz, nehme ich da 2 Keramikkondesatoren mit 22pF für den 3.6864MHz?
Der Thomas schrieb: > Dann muss ich nur noch auf die Teile warten ... Am PC kannst du doch schon mal alles fertig stellen, auch wenn die Bauteile noch nicht geliefert sind. Vielleicht hat die Oberfläche einen Simulator, dann hast du auch das Programm schon mal simuliert. Der Thomas schrieb: > Eine Frage hätte ich noch: Für die Kondensatoren am Quarz, nehme ich da > 2 Keramikkondesatoren mit 22pF für den 3.6864MHz? Datenblatt und/oder User Manual, je nach dem, was es für den µC gibt, haben ganz sicher Antworten dazu, irgendwo dort muß es drin stehen. Aber 22pF sind sehr oft üblich. Toleranzen dieser Kondensatoren sind auch nicht weiter kritisch, wenn man nicht gerade eine Uhr baut.
Wilhelm Ferkes schrieb: > Toleranzen dieser Kondensatoren sind auch > nicht weiter kritisch, wenn man nicht gerade eine Uhr baut. Und selbst da ist die Toleranz unwichtig. Die Stabilität der frequenzbestimmenden Komponenten insgesamt ist da entscheidend.
Wilhelm Ferkes schrieb: > Der Thomas schrieb: > >> Eine Frage hätte ich noch: Für die Kondensatoren am Quarz, nehme ich da >> 2 Keramikkondesatoren mit 22pF für den 3.6864MHz? > > Datenblatt und/oder User Manual, je nach dem, was es für den µC gibt, > haben ganz sicher Antworten dazu, irgendwo dort muß es drin stehen. Die optimale Lastkapazität Cl steht normalerweise im Datenblatt des Quarzes. Die beiden Kondensatoren gegen Masse sollten die Kapazität C1=C2=2·(Cl-Cs) haben, damit der Quarz die gewünschte Kapazität Cl "sieht". Cs ist dabei die Streukapazität des Aufbaus (Leitungen, Platine und Oszillatoreingang). Wenn man die Quarze im Hobbyshop kauft, ist der Hersteller i.Allg. unbekannt, und man kann die Lastkapazität nur raten. Üblich sind so zwischen 10pF und 30pF. Wenn man von 20pF Lastkapazität und 10pF Streukapazität ausgeht, kommt man auf C1=C2=20pF bzw. die oft empfohlenen 22pF. Der Fehler in der Schätzung der Last- und Streukapazität ist nicht arg kritisch, sondern führt meist nur zu einer leichten Verstimmung des Resonanzfrequenz. Nur wenn die Kapazitäten grob daneben liegen, kann es passieren, dass der Oszillator nicht mehr zuverlässig läuft. Nimm also die > 2 Keramikkondesatoren mit 22pF dann machst du nicht viel falsch.
Michael A. schrieb: > Wilhelm Ferkes schrieb: >> Toleranzen dieser Kondensatoren sind auch >> nicht weiter kritisch, wenn man nicht gerade eine Uhr baut. > > Und selbst da ist die Toleranz unwichtig. Die Stabilität der > frequenzbestimmenden Komponenten insgesamt ist da entscheidend. So ein µC-Quarz, für den Kondensatoren mit 22pF spezifiziert sind, wird auch noch mit 10pF oder 100pF funktionieren, unter Umständen auch völlig ohne diese Kondensatoren, denn die Leiterbahnen zwischen Quarz und µC haben auch noch ein wenig Kapazität. Die Kapazitätsabweichungen machen sich folgendermaßen bemerkbar: Kleinere Kapazität ergibt schnelleres Anschwingverhalten, jedoch geringere Frequenzkonstanz. Bei größeren Kapazitäten ist es umgekehrt. Abweichungen verschieben aber auch geringfügig die Frequenz. All dies ist aber in den allermeisten Anwendungen nicht so wichtig oder tragisch. Ein üblicher µC-Quarz hat ohnehin 20-50ppm Toleranz, je nach dem, was man an Geld in den Quarz investiert, und auch Temperaturdrift in diesem Bereich. Programmier mal zwei völlig gleiche Boards mit einer blinkenden LED und dem selben Programm. Nach Minuten bis Stunden, je nach Toleranzen, kann man die Verschiebung oft schon rein optisch an den LEDs sehen, wenn sie nicht mehr synchron zueinander blinken. Also ist die Abweichung sogar völlig unkompliziert ganz ohne teuere Meßtechnik feststellbar. Yalu X. schrieb: > Die optimale Lastkapazität Cl steht normalerweise im Datenblatt des > Quarzes. Dort schaut man natürlich als Profi nach. Oft ist es aber so, daß man auch einfach eine Schaltung aus einem Buch nach baut. So war das bei mir früher. In einem guten Buch hat der Autor dann auch beschrieben, was es mit den Quarzwerten auf sich hat. Für Bastler reicht das in fast allen Fällen auch. > Wenn man die Quarze im Hobbyshop kauft, ist der Hersteller i.Allg. > unbekannt, und man kann die Lastkapazität nur raten. Eben. Oder man bekommt sogar den schlimmsten Ausschuß, wie ich es gestern schon mal beschrieb. Wenn die Grundfrequenz schon arg abweicht, da macht man dann mit korrekten Berechnungen nicht mehr viel. Also, 22pF sind meistens ein guter Wert. Ich habe in meinen Hobbyschaltungen oft 33pF drin, eben weil es auch mal irgendwo so vorgeschlagen wurde. Sich detailliert mit dem Quarz zu beschäftigen, kommt meistens erst viel später. Sogar in Entwicklungsabteilungen beschäftigt man sich meistens nicht intensiver damit, und nimmt den Vorschlag aus dem Datenblatt. Für einen Maschinenbauer, der sich nebenbei mal mit µC beschäftigt, ist das vielleicht noch etwas schräger, als für einen Elektroniker. Als Bastler zur Zeit habe ich auch keinen Zugang zu Profi-Shops, wo Firmen einkaufen. Also bleibt mir auch nur etwas unbekanntere Ware von den bekannten Versendern, wo ich nicht auswählen kann. Fürs Hobby spielt es meistens eine untergeordnete Rolle.
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.