Forum: Mikrocontroller und Digitale Elektronik C8051F120, TXCO als externen Takt


von Peter S. (Gast)


Angehängte Dateien:

Lesenswert?

Hi,

in einem anderen Thread wurde mir empfohlen, um einen genaueren 
Systemtakt zu bekommen, einen TXCO als externen Takt zu verwenden. Darum 
habe ich mir nun diesen hier gekauft: 
http://docs-europe.electrocomponents.com/webdocs/0e32/0900766b80e32cf7.pdf

Angeschlossen habe ich ihn wie im Schaltbild der dem Post angehängt 
wurde.

Hier das Datenblatt meines µC (C8051F120) auf Seite 185: 
http://www.silabs.com/Support%20Documents/TechnicalDocs/C8051F12x-13x.pdf

Und hier das Unterprogramm, dass auf den Externen Takt wechselt:
1
void Oszillator_Init()
2
{
3
   SFRPAGE = CONFIG_PAGE;
4
   XBR2 = 0x40; //enable Crossbar und Weak Pull-ups
5
   
6
   OSCXCN = 0xA7;
7
   CLKSEL = 0x01;
8
}

Sobald auf den Externen Takt gewechselt wird, hängt sich der 
Mikrocontroller auf. --> es stimmt etwas mit dem externen Takt nicht.

Leider steht im Datenblatt meines Mikrocontrollers absolut gar nichts 
über TXCOs darum bin ich mir weder sicher ob ich die Register richtig 
eingestellt habe bzw. ob ich den TXCO richtig angeschlossen habe.

Hat von euch jemand so etwas schon mal gemacht bzw. was mache ich 
falsch? Bin echt ratlos, da ich eigentlich von diesen Dingern (TXCOs) 
absolut nichts verstehe...

Danke für eure Hilfe!

von Frank (Gast)


Lesenswert?

Pin 1 vom TCXO laß bitte unbeschaltet. Der Ausgang liefert 0,8Vpp, das 
reicht vermutlich nicht aus. Im Datenblatt ist zwischen TCXO und XTAL1 
noch ein Inverter eingefügt.

von JoergL (Gast)


Lesenswert?

Aus Oszilklator-Datenblatt:
Output Level (Clipped sine wave): min 0,8VPP

Hm... ich kenne das so, daß uC's immer nur Oszillatoren
mit TTL/CMOS oder LVCMOS (bei VCC=3,3V) angeschlossen werden.

Oszillatoren mit Sinus-Ausgang kenne ich nur
für HF-Technik und Mischstufen,
nicht aber für digitale Bausteine.

Vermute also: Falscher Oszillator für diesen Zweck.

Oder wie Frank schon geschrieben hat, ein Gatter als Verstärker und 
Impulsformer einfügen.

HTH,
Jörg

von Frank (Gast)


Lesenswert?

>Vermute also: Falscher Oszillator für diesen Zweck.

Der ist nicht falsch, das Ausgangssignal ist typisch für diese TCXOs. 
Man könnte auch den µC so konfigurieren wie mit ext. Quarz und dann das 
TCXO-Signal über 1nF in XTAL1 einkoppeln.

von Peter S. (Gast)


Lesenswert?

Wie kann ich 0.8Vpp verstehen? Heißt das es schwingt 0.4V über bzw. 
-0.4V unter Ground hin und her?

Dann müsste es doch mit einem Komperator leicht zu lösen sein: Ausgang 
des TXCO beim Komperator Eingang. Am 2. Komperatoreingang Ground 
anschließen. Dann sollte bei einer Versorgumg des Komperators von 0-5V 
ein TTL-Rechteck generiert werden. Dieser würde sich dann leicht 
verwenden lassen können.

Oder liege ich da falsch?

von Frank (Gast)


Lesenswert?

Ja, da liegst Du falsch.
Mach doch einfach mal, was ich Dir gesagt habe ;-)

von Peter S. (Gast)


Angehängte Dateien:

Lesenswert?

Ich hatte leider nur einen 10nF Kond. zu Hause. Ist das ein Problem?

Ich habe das ganze nun so aufgebaut wie im Schaltbild das ich dem Post 
hinzugefügt habe.

Code sieht folgendermaßen aus:
1
void Oszillator_Init()
2
{
3
   OSCXCN = 0x67; //Crystal Oszillator Mode, 10MHz < f <= 30MHz
4
   Sleep(1); //warte 1 ms
5
   while(!(OSCXCN & 0x80)); //Wartet auf das XTLVLD flag
6
   CLKSEL = 0x01; //Wechselt auf Externent Takt
7
}

Anfangs dachte ich es funktioniert, doch dann habe ich die 
Unregelmäßigkeit der Schwingung bemerkt --> mir wurde klar, dass meine 
etwas zu lange Leitungen als Antenne agiert hat und so einen Takt 
erzeugt hat. Darum habe ich die Leitung nun sehr viel kürze ausgeführt 
mit dem Ergebnis, dass ich nun gar keinen Takt mehr habe.

Gehört Pin 1 vl. doch mit Ground verbunden?

von Peter S. (Gast)


Lesenswert?

Mit 1nF Kondensator und möglichst kurzer Leitung funktioniert es nun.

Nochmal vielen Dank für eure Hilfe! Wirklich eine großartige Community!

von Peter S. (Gast)


Lesenswert?

Jetzt habe ich doch noch eine Frage an Frank:

Warum darf ich eigentlich Pin 1 nicht auf Ground hängen?
Und warum genau ein 1nF Kondensator?

von Frank (Gast)


Lesenswert?

Es muß kein 1nF C sein, 10nF müßten auch funktionieren und 100pF wohl 
auch.
Was bei Dir kurze und lange Leitungen sind, weiß ich nicht. Du solltest 
das Signal an XTAL2 kontrollieren. Dort muß ein 50:50 Rechtecksignal mit 
der Nennfrequenz herauskommen.

Pin 1 liegt normalerweise auf VCC/2 und kann benutzt werden, um die 
Soll-Frequenz ca. +/- 5ppm zu verstimmen. Darum würde ich den Pin nicht 
auf GND legen. Aber probiere es doch aus und messe nach, was sich 
verändert.

von Peter S. (Gast)


Lesenswert?

Ok verstehe. Vielen Dank für die Klarstellung!

Habe ab Montag wieder Zugang zu einem Oszilloskop, dann kann ich mir das 
Signal ansehen.

von Peter S. (Gast)


Lesenswert?

Bin leider immer noch nicht dazu gekommen, die Messung durch zu 
führen... Dauert wohl noch bis nächste Woche. Da kann ich das ganze dann 
auch auf einer anständigen Platine messen.

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
Noch kein Account? Hier anmelden.