TTL-Quarzoszillator an AVR via 74HCT-Gatter?

OP #7383633
Lesenswert?

Hallo,

ich habe einige Quarzoszillatoren mit TTL-Ausgang (z.B. Kyocera KXO-01-1, https://www.quartz1.com/price/techdata/KXO-01.pdf), die ich als Taktquelle für AVR-MCUs nutzen möchte.

Um die notwendige Pegelkonvertierung von TTL auf CMOS zu bewerkstelligen, dachte ich an die Zwischenschaltung eines 74HCT-Gatters, z.B. 74HCT21 (UND mit 4 Eingängen).

Kann man das so machen (siehe Schaltplan im Anhang), oder gibt es einfache/bessere Möglichkeiten?

Grüße, Johannes

Angehängte Dateien:
#7383674
Lesenswert?

2.4 V ... für CMOS ja zu wenig ...

Im Datenblatt des ATmega48 unter 'Pin thresholds and hysteresis' nachlesen - knapp zu wenig, aber sollte eigentlich reichen. Können Sie (mit einem Oszilloskop z.B.) am Oszillator nachmessen? Es geht doch um ein Einzelstück, oder?

#7383678
Lesenswert?

Johannes F. schrieb:

Das gilt für K50-HC u.a.; beim KXO-01, von dem ich welche habe, ist in der Tabelle V_OH(Min) = 2,4 V angegeben, was für CMOS ja zu wenig sein dürfte.

Ist es auch. Aber man sollte einfach mal MESSEN! Denn dieser MINDESTWERT ist eher juristischer Natur. Da kann auch 4,5V rauskommen. Ein ECHTER TTL-Ausgang zieht nur bis ca. 3,7V hoch. Die Idee mit der AC-Kopplung ist so einfach wie genial. Warum bin ich da nicht drauf gekommen? Scheinbar ein Wald-Bäume-Problem ;-)

OP #7383694
Lesenswert?

Gut, dann werde ich mal mit dem Oszilloskop messen (komme erst übermorgen wieder ran).

S. L. schrieb:

Es geht doch um ein Einzelstück, oder?

Naja, ich habe zehn Stück von den Kyocera-Oszillatoren, und noch einige Dutzend von anderen Herstellern. Aber im Prinzip baue ich Einzelstücke, das ist schon richtig. Nachmessen ist also kein Problem.

Falk B. schrieb:

Die Idee mit der AC-Kopplung ist so einfach wie genial.

Hmm, an XTAL1 hätte man ja dann, wenn man den Mindestwert V_OH = 2,4 V annimmt, zwischen ca. 1,3 V und 3,7 V. Der ATmega48A z.B. braucht wohl 0,7·VCC = 3,5 V ... ist mir ehrlich gesagt ein bißchen zu knapp. Es soll ja auch zuverlässig funktionieren.

(Firma: L-E-A) #7383707
Lesenswert?

Johannes F. schrieb:

Hmm, an XTAL1 hätte man ja dann, wenn man den Mindestwert V_OH = 2,4 V annimmt, zwischen ca. 1,3 V und 3,7 V. Der ATmega48A z.B. braucht wohl 0,7·VCC = 3,5 V ... ist mir ehrlich gesagt ein bißchen zu knapp. Es soll ja auch zuverlässig funktionieren.

Wenn Du den Quarzoszillator des ATmega aktivierst, sollte der Eingang deutlich weniger Amplitude benötigen.

Grüßle, Volker

#7383728
Lesenswert?

Wenn Du den Quarzoszillator des ATmega aktivierst, sollte der Eingang deutlich weniger Amplitude benötigen.

ATmega88-20PU, als High-Pegel an XTAL1: 'External clock': 2.85 V 'Full swing crystal oscillator': 2.50 V 'Low power crystal oscillator': 0.60 V

#7383835
Lesenswert?

Johannes F. schrieb:

S. L. schrieb:

Der Oszillator liefert ja laut genanntem Datenblatt als '1' min. 0.9Ucc und als '0' max. 0.1Ucc - passt doch, oder?

Das gilt für K50-HC u.a.; beim KXO-01, von dem ich welche habe, ist in der Tabelle V_OH(Min) = 2,4 V angegeben, was für CMOS ja zu wenig sein dürfte.

Weiter hinten im Datenblatt finden sich auch die "Output Waveform". Ich kann da zwischen TTL und CMOS keinen Unterschied sehen. Ich fände es auch merkwürdig, heute noch einen Quarzoszillator mit echtem TTL-Ausgang herzustellen. Aber das wichtigste wurde ja schon gesagt: im Zweifel messen.

#7383904
Lesenswert?

Axel S. schrieb:

Ich kann da zwischen TTL und CMOS keinen Unterschied sehen.

Dann guck dir nicht nur dir Kurvenform, sondern auch die Beschriftung an.

Der Unterschied besteht darin, dass für TTL die Spannungsangaben der linken Achse gelten und für HCMOS die rechten. Dort sind genau die Grenzen für die Logiklevel aus der Tabelle auf S.1 markiert (TTL: V_OL Max=0.4V und V_OH Min=2.4V, HCMOS außer K50-CS*-SE: V_OL=0.1 VDD und V_OH=0.9 VDD )

Ich fände es auch merkwürdig, heute noch einen Quarzoszillator mit echtem TTL-Ausgang herzustellen.

So ist es aber nun einmal. Nimm einfach das Datenblatt (und lerne es zu lesen).

OP #7383939
Lesenswert?

S. L. schrieb:

Gemessen, deshalb auch ATmega88

OK, vielen Dank. Ich gehe allerdings davon aus, dass es da Exemplarstreuungen gibt? Also es könnte sicher sein, dass diese Werte bei manchen Controllern funktionieren, bei anderen wiederum nicht – und das womöglich noch temperaturabhängig ...

Rainer W. schrieb:

Ja: 74HCT1G04 oder 74HCT1G14

Danke, die sind deutlich kleiner und wären somit schonmal eine bessere Alternative zu SOIC-14.

Axel S. schrieb:

Ich fände es auch merkwürdig, heute noch einen Quarzoszillator mit echtem TTL-Ausgang herzustellen.

Naja, die sind auch schon etwas älter und werden vermutlich längst nicht mehr produziert (jaja, ich weiß, „selber schuld, wenn man Restposten kauft“ ... dafür waren sie halt relativ preisgünstig).

(Firma: L-E-A) #7383969
Lesenswert?

Mi N. schrieb:

Volker B. schrieb:

das Taktsignal über einen Kondensator (z.B. 1n) einkoppeln.

Das reicht völlig aus, wenn man den AVR auf ext. Quarz konfiguriert hat. Es reichen auch schon die gekappten Sinussignale von TCXOs >= 0,8 Vss.

Ich hatte bisher auch noch keine Probleme bei meinen Kleinstserien mit den extrem billigen aber hochpräzisen GPS-TCXOs. Aber wenn man, wie der TO, in Millionenstückzahlen denkt, ist vermutlich etwas mehr Aufwand nötig. ;-)

Grüßle, Volker

OP #7383981
Lesenswert?

Volker B. schrieb:

Aber wenn man, wie der TO, in Millionenstückzahlen denkt, ist vermutlich etwas mehr Aufwand nötig. ;-)

Naja, ich bin da vielleicht etwas paranoid, aber mir ist Zuverlässigkeit unter allen möglichen Bedingungen schon wichtig. (Schließlich sollen meine „Basteleien“ ja auch irgendeinen Vorteil gegenüber auf Kante genähter Chinaware haben.) Und mir fehlt noch das nötige Wissen, um genau einschätzen zu können, wie sich die interne Oszillatorschaltung der AVRs verhält, wenn man ein extern erzeugtes Recktecksignal AC-eingekoppelt anlegt. Momentan tendiere ich daher dazu, auf Nummer sicher zu gehen und einen 74HCT1G14 zwischenzuschalten. Der kostet bei Mouser 14,4 Cent bei 100-Stück-Abnahme, sprengt also jetzt auch nicht das Budget.

Dennoch danke ich allen für die Tipps und Messungen. Ich werde auf jeden Fall morgen/übermorgen alles ausprobieren und nochmal über die Ergebnisse berichten.

Volker B. schrieb:

Ich hatte bisher auch noch keine Probleme bei meinen Kleinstserien mit den extrem billigen aber hochpräzisen GPS-TCXOs.

Meinst du sowas hier? https://www.ebay.de/itm/385217378934 Danke für den Tipp, werde mir mal einen bestellen für zukünftiges Selbstbau-Frequenzzähler-Projekt.

(Firma: L-E-A) #7383993
Lesenswert?

Johannes F. schrieb:

Und mir fehlt noch das nötige Wissen, um genau einschätzen zu können, wie sich die interne Oszillatorschaltung der AVRs verhält, wenn man ein extern erzeugtes Recktecksignal AC-eingekoppelt anlegt.

Was spricht dagegen, den Versuchsaufbau mit dem Oszi zu messen und auf die Einhaltung der Datenblattangaben zu überprüfen?

Momentan tendiere ich daher dazu, auf Nummer sicher zu gehen und einen 74HCT1G14 zwischenzuschalten. Der kostet bei Mouser 14,4 Cent bei 100-Stück-Abnahme, sprengt also jetzt auch nicht das Budget.

...und wie überprüftst Du, dass das Signal zu dessen Wunsch-Eingangspegel passt?

Volker B. schrieb:

Ich hatte bisher auch noch keine Probleme bei meinen Kleinstserien mit den extrem billigen aber hochpräzisen GPS-TCXOs.

Meinst du sowas hier? https://www.ebay.de/itm/385217378934

Nein, das sollte sowohl kleiner als auch günstiger gehen:

März 2016 für Euro 2,30 (zzgl.USt): https://de.farnell.com/epson/x1g004131001312/tcxo-gps-16-367667mhz-2x1-6mm/dp/2507038?ost=2507038

Nov. 2016 für Eur 0.9470 (10er-Staffel): https://de.farnell.com/epson/x1g004691002612/tcxo-gps-16-368mhz-2x1-6mm-berst/dp/2545856?ost=2545856

Beide leider mittlerweile vergriffen. Aktuelle Angebote habe jetzt aber nicht herausgesucht.

Danke für den Tipp, werde mir mal einen bestellen für zukünftiges Selbstbau-Frequenzzähler-Projekt.

Ja, das ist die prädestinierte Anwendung. Bei einem rezikproken Zähler kann die Referenzfrequenz ja auch belibig krumm sein. Da die Frequenzen recht nah bei 16MHz liegen, lässt sich ein AVR auch direkt damit speisen -- und zwar genau so, wie ich es oben beschrieben habe -- BTDT.

Nachtrag: Verwendet wurden ATmega16 (Takt über 68p auf XTal1, interner Oszillator aktiviert, denn der TCXO lief auf 3V3, während die MCU an 5V lag) und ATxmega32E5 (über den oben erwähnten Spannungsteiler und 68pF, MCU für externen Takt konfiguriert, TCXO und MCU an 3V3), wie ich soeben den alten Schaltplänen entnahm.

Grüßle, Volker

#7384022
Lesenswert?

Volker B. schrieb:

Beide leider mittlerweile vergriffen. Aktuelle Angebote habe jetzt aber nicht herausgesucht.

Dann mach ich das mal: https://www.lcsc.com/product-detail/Temperature-Compensated-Crystal-Oscillators-TCXOs_KDS-Daishinku-1XXB16368MBA_C213423.html

Johannes F. schrieb:

Selbstbau-Frequenzzähler-Projekt

Dafür würde ich heutzutage keinen AVR mehr verwenden. Die Alternative, wenn es günstig sein soll: Beitrag "Pico Frequenzzähler mit RP2040" oder eine Größenordnung besser: http://mino-elektronik.de/fmeter/fm_software.htm#bsp_G431

Beide Zähler können per 1 pps-Signal abgeglichen bzw. kontinuierlich stabilisiert werden.

(Firma: L-E-A) #7384074
Lesenswert?

Mi N. schrieb:

Dafür würde ich heutzutage keinen AVR mehr verwenden.

So pauschal würde ich die Aussage nicht gelten lassen. Einen alten ATmega würde ich auch nicht mehr verwenden, aber der oben erwähnte ATxmega32E5 ermöglicht es, einen reziproken Zähler ohne jegliche externe Hardware aufzubauen:

  • Einganssignalkonditionierung über den Analog-Komparator und das geniale Eventsystem

  • Tor-Signal (Gate) über zwei LUTs des internen XCL-Moduls erzeugen (D-FF)

  • Zähler über das Eventsystem unabh. von der CPU steuern

Anwendung war ein Drehzahlmesser bzw. Handtacho.

Aber klar, ein lächerlicher 8-Biter gewinnt heute keinen Sch*anz-Vergleich mehr ;-)

Grüßle, Volker

#7384098
Lesenswert?

Volker B. schrieb:

  • Einganssignalkonditionierung über den Analog-Komparator und das geniale Eventsystem

  • Tor-Signal (Gate) über zwei LUTs des internen XCL-Moduls erzeugen (D-FF)

  • Zähler über das Eventsystem unabh. von der CPU steuern

Iss ja nett, braucht man bei Pico-Board aber garnicht. Genaugenommen braucht das ein AVR auch nicht ;-)

Gut, bei einen Drehzahlmesser ist das egal. Es stört auch nicht, daß Taktfrequenz und Prozessorleistung nicht sehr hoch sind und übliche Compiler nur 'float'-Funktionen bieten. Damit ist bei 7-stelliger Anzeige nämlich das Ende der möglichen Auflösung erreicht.

OP #7384215
Lesenswert?

Volker B. schrieb:

Momentan tendiere ich daher dazu, auf Nummer sicher zu gehen und einen 74HCT1G14 zwischenzuschalten. Der kostet bei Mouser 14,4 Cent bei 100-Stück-Abnahme, sprengt also jetzt auch nicht das Budget.

...und wie überprüftst Du, dass das Signal zu dessen Wunsch-Eingangspegel passt?

Es ist ein 74HCT, also für TTL-Eingangspegel ausgelegt. Laut Datenblatt liegt die Schaltschwelle für positive Eingangsflanke bei max. 2,1 V.

OP #7384224
Lesenswert?

Mi N. schrieb:

Johannes F. schrieb:

und der G14 ist genau falsch!

Warum?

Undefinierte Schaltpunkte des Schmitttriggers.

Wieso undefiniert? Die Schaltschwellen stehen in Table 7 auf Seite 5 des NXP-Datenblatts. https://www.mouser.de/datasheet/2/916/74HC_HCT1G14-1385566.pdf Und die HCT-Typen sind doch für TTL-Pegel ausgelegt?

Mi N. schrieb:

Johannes F. schrieb:

Ein einfacher Inverter 74LVC1GU04

Den müsste ich dann mit VDD=3V betreiben

Vcc 1,65 - 5,5 V. Das sollte doch reichen. Sofern am Eingang immer ein Signal anliegt, geht auch der G04.

Der 74LVC müsste doch deshalb mit 3 V betrieben werden, weil er für CMOS-Eingangspegel ausgelegt ist, also für H mindestens 0,75·Vdd haben will. Daher darf er für die 2,4 V TTL-H-Pegel also höchstens 2,4/0,75 = 3,2 V Betriebsspannung bekommen.

OP #7384318
Lesenswert?

Mi N. schrieb:

Johannes F. schrieb:

Der 74LVC müsste doch ...

Sieh Dir im Datenblatt bitte Fig. 12 an.

Ich weiß nicht genau, worauf du hinaus möchtest. Ich will das Gatter doch nicht als linearen Verstärker benutzen, sondern lediglich den Pegel von TTL nach 5V-CMOS anheben. Und falls man dafür ein Gatter nimmt, müsste doch ein 74HCT-Gatter (ob nun mit oder ohne Schmitt-Trigger-Charakteristik) am besten geeignet sein? Die sind ja genau für TTL am Eingang ausgelegt, und der Ausgang ist CMOS-kompatibel.

OP #7384907
Lesenswert?

Volker B. schrieb:

Nachtrag: Verwendet wurden ATmega16 (Takt über 68p auf XTal1,

War das mit oder ohne Spannungsteiler?

Volker B. schrieb:

interner Oszillator aktiviert,

Den „Full swing“ oder den „Low power crystal oscillator“?

Ich überlege gerade, ob der Spannungsteiler evtl. gar nicht erforderlich ist, weil ja XTAL1 bereits über Rf (siehe Bild) „vorgespannt“ ist?

Grüße, Johannes

Angehängte Dateien:
OP #7385890
Lesenswert?

Falk B. schrieb:

Aber man sollte einfach mal MESSEN!

Gerade getan, siehe Anhang: das Teil hält ziemlich exakt die Datenblattwerte ein, das Ausgangssignal oszilliert zwischen 0,4 V und 2,4 V.

Dass die Kurvenform so dreieckig statt rechteckig ist, könnte an der hohen Kapazität des Koaxialkabels und des Oszi-Eingangs (20 pF laut Aufschrift) liegen, vermute ich mal.

Angehängte Dateien:
#7385904
Lesenswert?

Johannes F. schrieb:

Dass die Kurvenform so dreieckig statt rechteckig ist, könnte an der hohen Kapazität des Koaxialkabels und des Oszi-Eingangs (20 pF laut Aufschrift) liegen, vermute ich mal.

Mit einem Koaxialkabel misst man auch nicht an einer Quarz- Schaltung. Ein Tastkopf ist gefragt. Ausserdem ist die Abbildung des Signals stark abhängig von der Bandbreite des (nicht genannten?) Oszilloskops und der Anbindung des Massekabels.

#7386012
Lesenswert?

Heiner B. schrieb:

Und wie sieht es aus mit z.B. 10k als Pullup?

Thomas O. schrieb:

Reicht es nicht um einen Fet anzusteuern der das dann auf 5V hebt?

Was wäre an den beiden Lösungen einfacher oder besser als ein 74HCT1G04? Gab es eigentlich schon ein einziges Argument gegen 74HCT?

Ich würde allerdings einen 1G00 nehmen, den kann man für alles mögliche gebrauchen. Der 1G14 ist allerdings die schlechteste Wahl, der braucht mehr Strom, produziert mehr Störungen und ist für 16MHz schon fast zu langsam.

OP #7386075
Lesenswert?

Wastl schrieb:

Mit einem Koaxialkabel misst man auch nicht an einer Quarz- Schaltung. Ein Tastkopf ist gefragt.

Einen Tastkopf habe ich ja schon, aber zwischen dem und dem Oszi ist ja trotzdem ein Koaxkabel?

Wastl schrieb:

Ausserdem ist die Abbildung des Signals stark abhängig von der Bandbreite des (nicht genannten?) Oszilloskops

Oszi ist ein Tektronix 2235 mit 100 MHz Bandbreite.

Wastl schrieb:

und der Anbindung des Massekabels.

Siehe Foto, sollte die besser/anders sein?

Heiner B. schrieb:

Und wie sieht es aus mit z.B. 10k als Pullup?

Habe ich gerade probiert, ändert nichts.

Heiner B. schrieb:

Gegen 74xx spricht nur der Platz.

Der 74HCT1G04 hat ein kleines SMD-Gehäuse mit 5 Beinchen.

Angehängte Dateien:
#7386079
Lesenswert?

Johannes F. schrieb:

könnte an der hohen Kapazität des Koaxialkabels und des Oszi-Eingangs (20 pF laut Aufschrift) liegen

Wenn du von einem Koaxialkabel redest versteht man darunter keinen Tastkopf.

Johannes F. schrieb:

Einen Tastkopf habe ich ja schon, aber zwischen dem und dem Oszi ist ja trotzdem ein Koaxkabel?

Das Koaxialkabel spielt beim Tastkopf eine sehr untergeordnete Rolle.

Vermutlich Tastkopf (irrtümlicher Weise) mit 1:1 Teiler verwendet? Bandbreite des Oszilloskops womöglich eingeschränkt?

Gast #7386082
Lesenswert?

Johannes F. schrieb:

Einen Tastkopf habe ich ja schon, aber zwischen dem und dem Oszi ist ja trotzdem ein Koaxkabel?

Dein Tastkopf hat vorne einen Schalter. Prüf mal nach, ob der auf 1:10 steht.

1:1 ist nur für Gleichspannungsmessung bzw für sehr niedige Frequenzen geeignet. Damit bist Du wirklich nahe am Koaxkabel, dessen Kapazität wird voll wirksam.

OP #7386098
Lesenswert?

Wastl schrieb:

Vermutlich Tastkopf (irrtümlicher Weise) mit 1:1 Teiler verwendet?

Ja, war auf 1:1 eingestellt, sorry.

Habe ihn eben auf 1:10 umgeschaltet, das Oszi zeigt nun den angehängten Graphen. Sind diese Überschwinger im unteren Bereich normal? Oberes Ende ist ja nun knapp 4,8 V, unten sind aber Spitzen bis ca. −1 V.

Angehängte Dateien:
OP #7386127
Lesenswert?

Ich habe nun noch jeweils einen der anderen (vermutlich älteren) Typen probiert – U_OH und U_OL liegen bei deutlich über bzw. unter 4,5 V bzw. 0,5 V, mit 10 pF Lastkapazität (Keramikkondensator) und 1k-Pullup. Die Kurven sahen auch besser aus als bei dem Kyocera-Modell – rechteckiger, also mehr Oberwellengehalt. Machte sich auch dadurch bemerkbar, dass das nebenbei laufende UKW-Radio aussetzte, sobald ich die VCC vom Netzteil angeklemmt habe.

Hätte ich also gleich mal richtig gemessen – dann hätte ich diesen Thread gar nicht erst aufmachen müssen ;-)

Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren