PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit 32kHz Uhrenquarz am timer1



FeiaDragon
27.08.2008, 00:57
Hey!

erstmal mein problem: und zwar habe ich einen 32khz uhrenquarz an meinen PIC16f870 angeschlossen, und zwar an dT1CKL/T1OSI (RC0/RC1).

Jetzt stell ich den Vorteiler vom timer 1 auf 1 und warte auf overflows von dem ding.

leider zählt der counter nicht - entweder der quarz oszilliert nicht oder ich hab irgendwie in der software ein fehler.

hardware-mäßig habe ich einen 20Mhz Quarz an dem normalen Eingang und den 32,768kHz Quarz über 2 100pf Kondensatoren in Richtung Gnd verbunden.

Softwaremäßig (ich benutze den ccs c compiler) siehts so aus:



...
set_tris_c(0b10000011);
setup_timer_1(T1_EXTERNAL | T1_DIV_BY_1);

enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);

do
{
printf("%lu ", get_timer1());
}
while(true);
...
Dazu kommt noch die Interrupt-Prozedur, die aber nur hallo über rs232 sagt (was allerdings noch nicht vorgekommen ist *g*)
der ausgegebene wert von der Endlosschleife ist immer gleich...

Habt ihr eine Idee woran es liegen könnte? Was ich falsch gemacht habe?

Ich finde dazu im Netz nichts...nur Anleitungen um den Uhrenquarz als Hauptquartz und nicht als Uhr am externen Timer1 Eingang zu benutzen.

Danke!
Kai

PICture
27.08.2008, 07:41
Hallo FeiaDragon!

Der Uhrenquarz oszilliert sicher nicht. Ich habe es auch erfolglos versucht.

Laut Reichelt Katalog haben die Uhrenquarze CL um 12 pf also könnten mit 2x6 pF oszillieren. Leider sind die Montagekapazitäten meistens um 15 pF, was deutlich zu viel ist. Ich habe endlich einen externen Oszillator mit MOS Inverter aufgebaut und der Quarz hat dann oszilliert (serieller Rezonanz).

Es könnte sein das der Uhrenquarz in SMD gehäuse mit CL=85 pF oszillieren wird, aber 2x100 pF ist sicher zu viel, vielleicht mit 2x25 pF + 2x15 pF Montagekapazitäten.

Ich bin selber daran interesiert einen Uhrenquarz am Timer1 Oszillator ohne externer Hardware zu benutzen, habe aber schon aufgegeben, weil ich sogar beim Microchip Forum nichts darüber gefunden habe.

Ich wünsche dir viel Erfolg beim Experimentieren und warte auf positive Ergebnisse! :)

MfG

FeiaDragon
27.08.2008, 11:43
danke für deine antwort!

du machst mir ja richtig mut, mit meinen umwerfenden elektronik-kenntnissen ;)

Den Wert der 100pF habe ich von Sprut (http://sprut.de/electronic/pic/programm/lcduhr32/lcduhr32.html) geklaut - er hatte seinen Quarz mit 100pF angeschlossen, allerdings nicht an den Timer 1, sondern an den ganz normalen Takteingang.

zu dem 2x25pF und 2x15pF Montage - mein erster Test war mit 2x 27pF Kondensatoren nach Masse :(

Naja, ich such dann mal weiter!

Kai

PICture
28.08.2008, 05:43
Hallo!

Ich wollte nur sagen, dass es nicht leichtes Problem ist und ich dir leider nicht konkret helfen kann, da ich selber das nicht geschafft habe. :)

Ich hoffe, dass du etwas vernünftiges findest und nicht nur ich davon profitieren könnte, also viel Glück! O:)

MfG

ossy
29.08.2008, 08:55
Hallo,

könnte es mit einem Quarzoszillator gehen z.B. MK3200.


Gruß

Wolfgang

Besserwessi
29.08.2008, 16:20
Die beiden Kondensatoren sind als Lastkapazität in Reihe geschaltet. Für 12 pf Last wären also 2 x 24 pF richtig. Wenn schon 15 pF durch die Schaltung da sind, dann also nur jeweils ca. 9 pF dazu.

PICture
29.08.2008, 22:03
Hallo!

Für einen üblichen Uhrenquarz am wichtigsten sind sehr hohe Eingangswiderstand des Generators und Verwendung des seriellen Resonanzes.

Ich habe ein Generator mit MOS Inverter aufgebaut (siehe Code). Als Inverter kann man bilibiege als Inverter geschaltete Gatter verwenden (NAND, NOR, XOR) die schon vorhanden und frei sind. Der letzte Inverter als Puffer ist nicht nötig.

Es wird sicher auch mit MK3200 gehen.

Der 32768 Hz Uhrenquarz sollte auch mit einem Pierce-Oszillator mit FET bzw. MOSFET gehen, da er auch seriellen Resonanz des Quarzes benutzt. Der Rs sollte so gewählt werden, dass auf dem Drain des Transistors ca. Vcc/2 ist.

MfG

+-----------------------+
| ___ |
| 32768Hz 8p2+-|___|-+ _ _
| _ | 2M | _| |_| |_
| |\ | | || | |\ | |\
+-| >O-|| ||-||-+-| >O--+-| >O---------->
|/ |_| || |/ |/


Vcc
+
|
.-.
| | Rs
'-'
|
+-||-+----->
| |
_-_ |
|___| |
- |
| |-+
+->|
| |-+
.-. |
Rg| | ===
~1M'-' Gnd
|
===
Gnd