mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Clock an XTAL abgreifen


Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: udo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
manche uCs kanns du so fusen, das der Takt auf einem Pin ausgegeben 
wird....

Autor: Michael G. (linuxgeek) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Frank (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Anhang

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Thorsten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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).

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> 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.

Autor: Barnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ein Quarzoszillator ist schon nicht schlecht.

Mal sehen, ob es einen mit 3,3V gibt.

Danke.

MfG

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Bensch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> > 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.

Autor: HildeK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HildeK wrote:

> Ich hoffe, der tut das noch bei 16 MHz.

Bei Vdd=15V vielleicht schon. ;-)

Autor: Barnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich will mir für mein DDS LAyout folgenden Quarzoszillatior bestellen.

http://de.farnell.com/1276640/halbleiter/product.u...

Kann man den löten ?
Der wäre ideal für meine Zwecke.
Irgendwie sieht mir das nach Reflow aus.

Danke.

MfG

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Barnes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke Ulrich.

Autor: Avll (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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;
  }

Autor: Ulrich P. (uprinz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.