Hallo, ich brauche einen Clock für einen DDS Baustein. Ein 16MHz Quarz steht zur Verfügung, der einen Mikrocontroller versorgt. Könnte man einfach an einem XTAL Pin den Clock an den DDS IC führen ? Oder müsste ich separat einen Clock erzeugen ? Gibt es eigentlich ICs, die direkt einstellbare Clocks liefern ? MfG
Frank wrote: > Hallo, > > ich brauche einen Clock für einen DDS Baustein. > Ein 16MHz Quarz steht zur Verfügung, der einen Mikrocontroller versorgt. > > Könnte man einfach an einem XTAL Pin den Clock an den DDS IC führen ? Was willst Du machen? Den Takt abzweigen? Duerfte mit nem Quarz nicht wirklich eine gute Idee sein. Da hast Du mit einem kompletten Oszillator wahrscheinlich mehr Chancen. Aber ob das so gluecklich ist? > Oder müsste ich separat einen Clock erzeugen ? > Gibt es eigentlich ICs, die direkt einstellbare Clocks liefern ? Klar gibt es die, z.B. PLLs. Kommt auch drauf an wie genau Dein Takt sein muss dann kannste auch normale Logikbausteine dazu missbrauchen. Es gibt auch Moeglichkeiten, je nachdem wie hoch Dein Takt sein muss, den Mikrocontroller zum erzeugen eines Taktes zu verwenden. Manche Chips wie z.B. der FT232 erzeugen bereits (passende) Systemtakte fuer Mikrocontroller. > MfG
manche uCs kanns du so fusen, das der Takt auf einem Pin ausgegeben wird....
Geht mit den neueren (aber AFAIR nur mit den neueren) AVRs auch, z.B. dem Tiny2313. Bei kleineren Takten bieten sich auch die Benutzung von Timers an.
Hallo, ich frage nur, weil ich das hier gesehen habe (Anhang). CLK wird vom Quarz abgezweigt, mittels zweier FFs geviertelt und dann dem DDS Baustein zugeführt. Geviertelt auch nur, weil die gewünschte DDS Ausgangsfrequenz sehr klein ist. Es ist mir auch neu. Scheint aber zu funktionieren. Das eine PLL und sowas in Frage kommen, ist ja klar, aber dafür braucht man auch erstmal einen Takt ! Es geht um die Bereitstellung eines einfachen unipolaren Taktsignales zwischen 0 und 3,3V. Am besten wäre natürlich ein einfacher IC, der das macht. Ansonsten werde ich wohl den µC Takt an einem Pin bereitstellen. MfG
Ja das geht am AVR, wenn er nicht zuviele Eingänge versorgen muß. So ein HC-TTL-Eingang ist ja hauptsächlich eine kapazitive Last, parallel zu dem sowieso vorhandenen 22pF-C. Die Fuse für volle Quarzoszillator-Spannung, nicht auf "energiesparend" einstellen, und am Oszillatorausgang Xtal 2 anschließen, nicht am Eingang Xtal 1.
Hallo, der Abgriff des Taktes am Ausgang des uC-Oscillators (XTAL2 bei den AVR's) stellt kein Problem dar (bei neueren AVR's sollte der Osc auf Fullswing gefused werden). Es sollte nur auf serielle Terminierung geachtet und die Eingangskapazität des folgenden Eingangs berücksichtigt werden (evtl. Korrektur des entsprechenden Quarzlastkondensotors, wobei die leichte Asymmetrie der Lastkapazitäten durchaus von Vorteil sein kann) Gruss
Fürs Hobby kein Problem, für ein Produkt laß es sein. Es erhöht die Rückläuferquote beträchtlich. Du sparst nichts ein, sondern hast zusätzliche Kosten. Peter
Hallo, ich bin da auch skeptisch. Es geht mir nur um eine Vergleichsmessung. Gibt es nicht einen einfachen IC, der mir einen Clock erzeugt ? Ich will nicht großen Aufwand treiben. MfG
Frank wrote: > Gibt es nicht einen einfachen IC, der mir einen Clock erzeugt ? Gibt es. Sind aber teurer als Quarz oder Resonator. > Ich will nicht großen Aufwand treiben. Eben. Wenn 0,5% Toleranz akzeptabel sind, dann sind 3-beinige Resonatoren schon vom Platz her recht angenehme Taktquellen (weil die Kondensatoren schon drin sind).
Hallo, erzeugt ein Resonator aktiv einen Takt ? Ich glaube nicht. Ich habe mir einen IC vorgestellt an dem ich 5V anlege und meinen Takt erhalte. MfG
Nö, ist ähnlich wie Quarz, nur nicht nicht so gut. Eigenständigen Takt erzeugen tut ein fertiger "Quarzoszillator". Der kann dann etliche Controller versorgen. Kostet aber soviel wie >5 Quarze.
Hi! Du kannst so etwas wie einen CY22393 ( Verf. bei z.B. RS-Components) einsetzen. Das ist ein programmierbarer Mehrkanal-Oszillator. Er braucht ein Quarz und leitet daraus dann verschiedene Frequenzen auf vier Ausgängen ab. Ist nicht ganz billig, aber praktisch. Gruß, Ulrich
> der Abgriff des Taktes am Ausgang des uC-Oscillators (XTAL2 bei den AVR's) stellt kein Problem dar (bei neueren AVR's sollte der Osc auf Fullswing gefused werden). Ergänzung: Der Takt sollte nicht zuviele Eingänge versorgen, also am besten durch ein Gatter puffern. > Fürs Hobby kein Problem, für ein Produkt laß es sein. Es erhöht die Rückläuferquote beträchtlich. Du sparst nichts ein, sondern hast zusätzliche Kosten. Unsinn.
Hallo, ein Quarzoszillator ist schon nicht schlecht. Mal sehen, ob es einen mit 3,3V gibt. Danke. MfG
Bensch wrote: >> Fürs Hobby kein Problem, für ein Produkt laß es sein. Es erhöht die > Rückläuferquote beträchtlich. Du sparst nichts ein, sondern hast > zusätzliche Kosten. > > Unsinn. Das ist kein Unsinn, probiers doch mal mit 1000 Platinen aus. Ich hatte etwa 1% Rückläufer wegen Quarzproblemen. Peter
> > Unsinn. > Das ist kein Unsinn, probiers doch mal mit 1000 Platinen aus. > Ich hatte etwa 1% Rückläufer wegen Quarzproblemen. Doch, das ist Unsinn, wir hatten bei einigen tausend Platinen NULL Probleme wegen Quarz oder Oszillator. vielleicht habt ihr den Takt am falschen Ende abgegriffen oder sonst einen Bock gebaut. Du solltest mal ein Scope dranhalten. Hab noch kein Datenblatt eines Prozessors gesehen, wo dies nicht ausdrücklich erlaubt wurde.
Es gibt auch die analoge Verwendung des CD4049UB - als gegengekoppelten Verstärker. Da könnte man recht hochohmig (schätze mal >50 .. 100k) das Signal abgreifen. Ich hoffe, der tut das noch bei 16 MHz.
HildeK wrote:
> Ich hoffe, der tut das noch bei 16 MHz.
Bei Vdd=15V vielleicht schon. ;-)
Hallo, ich will mir für mein DDS LAyout folgenden Quarzoszillatior bestellen. http://de.farnell.com/1276640/halbleiter/product.us0?sku=RAKON-CFPS-39IB-12.0MHZ&_requestid=107996 Kann man den löten ? Der wäre ideal für meine Zwecke. Irgendwie sieht mir das nach Reflow aus. Danke. MfG
Kann man löten. Du solltest die Kontaktflächen vorab mit Flussmittel versehen und dann etwas Lötizinn an die Lötkolbenspitze machen. In die halbrunden Ecken führen und fest ist das Ding. Ich rate davon ab die Kontaktflächen vor zu verzinnen, da der Baustein dann nicht auf der Platine sitzt, sondern darüber scchwebt und der Kontakt durch das Lötzinn, nicht aber durch die direkte Berührung mit der Platinen-Kontaktfläche entsteht. Zudem wird er schief eingelötet, weil er sich diagonal verkanten. Also Flussmittel, Chip aufsetzen, andrücken und dann in den Ecken verlöten. Für solche EInsätze sind die Hohl-Spitzen Löteinsätze besonders gut geeignet. Schönes Wochenende an alle! Gruß, Ulrich
wie kann ich mit einem uC ein clock mit 24 impulse erzeugen ohne das programm zu beeinflussen und umgekehrt. ich habe ein clock mit eine for schleife gemacht for(i=0; i<=24; x++) { clock=0; delay(); clock=1; }
Du kannst keine Pulsfolge erzeugen, ohne das Timing Deines Programmes zu beeinflussen. Du musst irgend etwas tun um die Pulse einzeln oder in Gruppen auszulösen und das wird immer Rechenzeit erfordern. Aber man muss das von einer anderen Seite sehen: Welche Zykluszeit benötigt Deine Hauptschleife? Wieviel dieser Zeit ist schon durch andere Aufgaben verbraucht? Ist das, was übrig bleibt, genug Zeit um eine Pulsfolge auszulösen? Lösung 1) Das Timing der Pulsfolge ist nicht kritisch: Du kannst den Pin z.B. am Anfang und in der Mitte Deiner Hauptschleife toggeln. main { while(1) { if( count) pin = 1; programmteile... if( count) { pin = 0; count--; } programmteile } } Um die Pule auszulösen einfach count auf die Anzahl der gewünschten Pulse setzten. Lösung 2) Ein gewisser 'Jitter' in deiner Hauptsoftware, der durch Interrupts verursacht wird, ist nicht tragisch und ebenso ein gewisser Jitter im Puls-Signal ist nicht tragisch. Setze einen Timer auf, der zum einen zählt wie viele Impulse noch zu senden sind und zum anderen diese Impulse auslöst. Entweder läuft dieser Timer immer und vergleicht wie in 1) ob noch Impulse zu senden sind, oder der Timer schaltet sich nach dem Senden des letzten Impulses selber ab und wird durch die Hauptsoftware immer wieder gestartet. Ein Trick um nicht mit zwei Timern zu arbeiten: Der Timer erzeugt die doppelte Frequenz bei den Interrupts und arbeitet bei ungeradzahligen Aufrufen nur den Teil setze Pin und bei geradzahligen Aufrufen den Teil lösche Pin und dekrementiere Zähler ab. Lösung 3) Das Timing der Pulse ist kritisch und daher musst Du tricksen. Also setzt Du einen Zähler als Timer auf und tust zwei Dinge: Du läst den Timer einen seiner OC Ausgänge toggeln und gleichzeitig löst Du bei diesem Event einen Interrupt aus, der die Pulse mitzählt. Die Interrupt-Software schaltet den Timer rechtzeitig ab um überzählige Impulse zu verhindern. Lösung 4) Timing der Pulse ist kritisch und auch noch sehr schnell Dazu missbraucht man den SPI-Port. Programmiere ihn auf die richtige Frequenz und lasse bei SPI-Puffer leer einen Interrupt auslösen. Schreibst Du nun ein (Pseudo-) Byte in den SPI Ausgangspuffer startet der Sender mit der Übertragung. Der Sender-Leer-Interrupt schiebt einfach immer 2 Bytes nach. Dies löst jedes mal 8 Pulse am SCK Ausgang des SPI aus. Gruß, Ulrich
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.