Woran könnte es liegen, dass das Quarz an einer DS1307 RTC bei Betrieb
mit VCC (5V, Transformator + Linearregler) nicht schwingt, bei Betrieb
mit Batterie aber doch? Sobald ich den Strom einschalte, sieht man am
Oszilloskop, wie die Amplitude innerhalb von zwei Sekunden auf 0 fällt.
Das DS1307-IC kann über I2C angesprochen und programmiert werden, aber
wenn der Strom aus der Schaltung kommt, bleibt die Zeit fast stehen: die
Sekunde springt nur noch alle ~50 Sekunden.
Ich hatte erst gedacht, dass es am fehlenden Abblock-Kondensator vor der
Uhr liegt (im Bild ist ein Kondensator eingezeichnet, aber auf der
realen Platine fehlen die Pads). Ein Zwischensockel mit 100 NF führt
allerdings zu keiner Verbesserung.
Könnte es am Transformator in der Nähe liegen? Neben dem IC ist die Uhr,
1 cm weiter der Transformator, drei Leiterbahnen unter dem DS1307 sind
Relais-Masse-Leitungen, die auch ein Stück unter dem Transformator
laufen.
Leider weiss ich nicht, ob das Quarz exakt zum IC passt. Es ist das
SMD-Uhrenquarz von Reichelt ("0,032768-SMD"), zu dem keine vernünftige
Load Capacitance angegeben ist. Ersatzweise habe ich mit Mini-Quarz aus
einer Uhr getestet - gleiches Problem.
Datasheet DS1307 Seite 7: NOTE: AVOID ROUTING SIGNAL LINES IN THE
CROSSHATCHED AREA (UPPER LEFT QUADRANT) OF THE PACKAGE UNLESS
THERE IS A GROUND PLANE BETWEEN THE SIGNAL LINE AND THE
DEVICE PACKAGE.
Wenn die sowas reinschreiben, dann ist das Teil offenbar recht
empfindlich. Und folglich ist ein Trafo direkt daneben nicht wirklich
günstig.
> AVOID ROUTING SIGNAL LINES
Daran könnte es natürlich liegen, aber das IC ist durch Sockel +
Zwischensockel ziemlich weit von allen PCB-Traces entfernt.
Hallo Dietmar,
der DS1307 braucht die Batterie! Wenn an Vbat keine Batterie
angeschlossen ist, muss(!) der Pin Vbat auf Masse gelegt werden.
Beachte, dass zwischen Batterie und Vbat keine Dioden geschaltet werden
dürfen.
Das ist im Datenblatt ein wenig unglücklich beschrieben und ich habe vor
einiger Zeit auch lange gesucht.
Gruß
Michael
Ich würde mal probeweise von den Quarzanschlüssen jeweils 33pF gegen
Masse schalten. Für mich wird einfach die Schwingbedingung des
Oszillators nur grenzwertig erfüllt.
Dass da keine Leitungen nahe am Oszillator vorbeigeführt werden sollen,
muss nicht heissen, dass er sonst nicht vernünftig schwingt, es kann
auch "nur" zu verringerter Präzision führen, aber das wäre momentan
harmlos.
> Ich würde mal probeweise von den Quarzanschlüssen jeweils 33pF gegen
Masse schalten
Werde ich morgen mal machen.
Komischerweise bleibt die Uhr auch stehen, wenn das RS232-Kabel
angesteckt wird. Das sollte gar nicht möglich sein, weil RS232
galvanisch getrennt ist (Optokoppler und DC/DC-Wandler zwischen
Microcontroller und MAX232). Das passiert aber nur, wenn Platine und
Computer an unterschiedlichen Steckdosen hängen.
33p dürfte für einen 32kHz Uhrenquarz aber zu viel sein!
Die haben typisch Lastkapazitäten von 7..12pF, wovon das meiste schon
durch IC und Leiterbahnen abgedeckt sind. Evtl. ist das gerade das
Problem mit dem Sockel (zu grosses CL).
> wovon das meiste schon durch IC und Leiterbahnen abgedeckt sind
Für die Platine wurde ein SMD-Quarz gewählt (weil nur das bis 70 Grad
geht). Dafür wurden im Datenblatt vergleichsweise riesige SMD-Pads
vorgeschlagen. Ob das ein Problem sein könnte - zu viel parasitäre
Kapazität? Ich verstehe aber nicht, wie das Quarz ein Problem sein kann,
wenn es mit Batterie funktioniert und wenn es ohne Verbindung zum
Computer funktioniert. Es scheint mir doch eher eine Störung im
Zusammenhang mit der Stromversorgung zu sein.
> Nachtrag: die Uhr bleib stehen, sobald man irgendeinen Pin der Platine
berührt. Aber nur bei Netzbetrieb
Und nur bei einer Steckerstellung (2-Leiter-Anschluss). Umdrehen des
Steckers und die Uhr läuft.
Ich sehe da unter dem Quarz einen via für Masse. Ist das Quarzgehäuse an
der Massefläche angeschlossen?
Hört sich für mich danach an, dass die Phase vom Netz irgendwie in die
Massefläche eingekoppelt wird und dann das Quarz keine Lust mehr auf
Schwingen hat.
> Ich sehe da unter dem Quarz einen via für Masse. Ist das Quarzgehäuse an
der Massefläche angeschlossen?
Das Via dient nur dazu, die Massefläche zur Abschirmung nach oben zu
holen. Das SMD-Quartz ist auf Kunststoff und nicht daran angeschlossen.
Was mich wundert ist, dass die riesige CPU problemlos mit 18 MHz läuft
aber dieser winzige Uhrenchip bei 32 KHz so empfindlich ist.
Der Oszillator eines Uhrenchips ist auf minimalen Stromverbrauch
optimiert und dementsprechend sensibel.
Auch der Oszillator eines AVR lässt sich in 2 Modi betreiben, einem
empfindlichen mit kleinem Spannungshub und niedrigem Stromverbrauch, und
einem robusteren mit grossem Spannungshub.
also wenn der Quarz innerhalb von 2 Sekunden ausgeht (also nicht
schlagartig), dann ist der Oszillator wirklich etwas grenzwertig, und
geht bei der kleinsten Abweichung irgendwelcher Betriebsbedingungen aus.
Probiere mal ein anderes Quarzexemplar aus - vielleicht haste wirklich
einfach einen schlechten erwischt (sowas hatte ich auch schon gehabt,
und simpler Austausch hat geholfen).
Ansonsten mal mit paar verschiedenen pF C's experimentieren
Es lag anscheinend an den riesigen SMD-Pads (und vieleicht zusätzlich an
der unbekannten Cl der Uhren-Quarze): Wenn das Quarz direkt an die
IC-Pins angeschlossen wird, läuft alles problemlos. Keine Ahnung, ob die
Kapazität dieser Pads ein Quarz im Grenzbereich endgültig aus dem Tritt
bringen oder ob das zwei kleine Antennen für Noise sind.
Also am evtl. eingefangenen Noise kann sowas nicht liegen, denn sowas
würde höchstens zu einer etwas unsauberen und gestörten Schwingung
führen. Sollte davon aber nie ausgeblasen werden können.
Ich denke schon, es sind die SMD-Pads, die zu viel C reinbringen, und
damit die Schwingbedingungen des Oszillators ungünsitg beeinflussen. Ein
anderer Quarz hätte da vielleicht zuverlässiger funktioniert - die sind
ja nicht alle gleich.