PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DS1307 Batteriepufferung macht Probleme



wassermann
08.01.2011, 20:25
Hallo zusammen,

nach langer Zeit ist nun die Platine für den Tauchcomputer fertig (siehe anderer Beitrag) und es funktioniert alles wie geplant. Nur die Batteriepufferung des DS1307 macht Schwierigkeiten.

Folgende Situation:
Ich betreibe mein Board mit 4,1V (sehr seltsam, ist aber der kleinste gemeinsame Nenner aller angeschlossenen Komponenten). Die Versorgung erledigen 6 Akkus auf einen 5V-Regler und dann auf einen LM317 mit 4,1V (siehe Anhang: den Fehler beim LM317 verzeihe man mir im Plan: auf der Platine ist er richtig verdrahtet; hab ich leider erst bei fertiger Platine bemerkt).
Nach zwei Akkus geht ein Draht auf die Batteriepufferung des DS1307, da ich keine zweite Batterie spendieren wollte. Sollte vom Wert her auch passen, da er lt. Datenblatt mindestens 1,25*Vbat haben will (Vbat=2,45V und Vcc=4,1V).

Schliesse ich nun die Spannungsversorgung und Batterieversorgung (über Krokoklemmen) an, so funktioniert alles bestens. Die Uhrzeit kann (je nach Const-Wert eingestellt werden bzw. auch über RS232 gesetzt und ausgelesen werden.
Also Drähte schnell angelötet .... und siehe da: die Uhrzeit will gar nicht wie ich will (jedes Byte hat den Wert 255), obwohl ich im Programm genau vorher testhalber die Uhrzeit/Datum setze.
Nach langem Hin und Her habe ich den Batteriedraht gekappt. Der 1307 funktioniert prima. Verbinde ich die beiden Drahtstücke mit einer Krokoklemme funktionierts auch prima. Löte ich die beiden Drahtstücke zusammen, gehts nicht.

Im Anhang findet ihr die Platine und den Teil des Codes für den RTC. Beide sollten es jedoch nicht sein, denn auf dem Steckbrett bzw. mit Krokoklemmen an die jetzige Platine funktionierts ja.

Mach ich was falsch?
Vielleicht kann mir jemand helfen, damit ich auch dieses Problem begreifen kann.

Danke schon mal im voraus.

gruss,
wassermann

wawa
09.01.2011, 15:42
hallo Wassermann,

wir hatten vor Jahren auch solche Probleme aber mit dem 1306. Es waren Startprobleme ( heute: power_up ) Abhilfe war damals eine Diode von VCC auf VBAT. So wurde die Rueckeinspeisung nach VCC verhindert. Du betreibst doch den 1307 mit 5V oder ? ( konnte leider deine rar Datei nicht oeffnen )
gruss wawa

wassermann
09.01.2011, 16:07
Hallo wawa,

ich betreibe den 1307 mit 4,1V. Ich weiss, dass im Datenblatt was anderes steht. Aber ich kann leider nicht weiter hoch mit der Spannung. Und auf dem Steckbrett und auf der Platine funktionierts ja auch. Krokoklemmen als Verbindung funktionieren. Nur wenn ich den Draht mit der Batteriespg verlöte gehts nicht. Spgen am 1307 sind aber i.O.

Den Gedanken mit der Diode hab ich noch nicht richtig verstanden. Kannst du ihn mir nochmal erklären? In welcher Flussrichtung habt ihr sie damals eingebaut?

Danke.

gruss,
wassermann

wawa
09.01.2011, 16:19
hallo Wassermann

kannst du bitte mal den Schaltplan als PDF senden
Wir hatten die Anode an VCC und die Kathode an VBAT, aber ACHTUNG - du hast an VBAT den Zweizellenabgriff!!!! Du brauchst noch eine Diode von deinem Zweizellenabgriff auf den Anschluss VBAT. Wenn du das nicht tun wuerdest - speist du die 4,1V auf deine Zellen.
War das jetzt verstaendlicher ?
gruss wawa

wawa
09.01.2011, 16:50
mir ist noch was eingefallen.
Der 1306 Osci hatte einen extrem niedrigen Stromverbrauch und der Osci schwang erst nach so ca. 5sek richtig an. Hast du den richtigen Quarz dran ???
Wenn du den SQW/OUT mit einem Pull_up versiehst und freigibst, kannst du den Takt messen. Schau dir mal das Einschwingverhalten an.
gruss wawa

wassermann
09.01.2011, 17:08
Hallo wawa,

warum hattet ihr eine Diode zwischen Vcc und Vbat? Bzw. war euer Aufbau ähnlich?
Ich habe die 6 Zellen in Reihe und greife dabei Masse und ca. 7,2V als Versorgung ab. Nach der zweiten Zelle greife ich 2,46V als Vbat ab. Die 7,2V gehen über einen 5V-Regler (fürs Display) und den LM317 (für die 4,1V).

Wenn ich nun die Anode auf 7,2V lege und die Kathode auf Vbat mache ich doch einen Kurzschluss, oder? Vielleicht hast du auch eine Skizze. Ich bin wahrscheinlich schon zu verwirrt um es zu verstehen.

Als Quarz am 1307 verwende ich einen herkömmlichen Uhrenquarz (32,7... kHz). Der Quarz hängt nur am 1307? Woher sollte er wissen, ob der Draht mit Vbat angelötet ist oder nur geklemmt? Ich kann mal beim Hochlauf eine längere Wartezeit eingeben. Vielleicht hilfts.

gruss,
wassermann

PICture
09.01.2011, 18:17
Hallo!

Ich wollte dir helfen, konnte bisher aber nicht, weil ich dein Schaltplan nicht ganz verstehe. Beispielweise die Funktion des C14. ;)

Der Unterschied zwischen gelöteter Verbindung und durch Kabel mit Krokos realiesierter, besteht für mich nur wegen Verzögerung, wenn das mit Krokos erst nach dem Eischalten der Versorgungspannungen stattfindet, was aber aus deiner Beschreibung für mich überhaupt nicht klar ist. :(

MfG

wassermann
09.01.2011, 19:01
Hallo PICture,

der C14 ist für die serielle Schnittstelle und hat mit dem 1307 nichts zu tun. Ich habe im Stromlaufplan lediglich gleich die 4,1V (Vcc) für den Pullup des 1307 verwendet, da die Versorgungsspg hier schon gezeichnet war.

Entschuldigung für meine missverständliche Beschreibung. Du hast Recht. Es geht aus meiner Beschreibung nicht hervor, wann ich die Verbindung mit den Krokoklemmen mache.
Ich verbinde die 2,46V (Vbat) mit Krokoklemmen zur Platine und schalte dann die Versorgungsspg Vcc drauf. Fazit: 1307 funktioniert mit dem Code und der Platine.
Ich verlöte den Draht Vbat auf die Platine und schalte dann die Versorgungsspg Vcc drauf. Fazit: 1307 funktioniert nicht.
Er funktioniert auch dann nicht, wenn ich die beiden Drahtenden, welche ich verlöte, in nur einer Klemme verbinde (ohne zusätzlichen Draht). Was ist also der Unterschied zwischen zwei Klemmen und einem Stück Draht und einer direkten Klemmstelle???!?!?!?!? :-k

Und das obwohl ich bei beiden Varianten testhalber vorher im Code eine beliebige Uhrzeit/Datum festlege und runterschreibe. Es wird also bei beiden Tests nichts am Code geändert, sondern lediglich einmal 2,46V per Klemmen aufgelegt und beim anderen mal mit angelötetem Draht.

gruss,
wassermann

PICture
09.01.2011, 19:12
Dann könnte es an unterschiedlichen Widerständen der Verbindungen liegen (RC Tiefpass). Ich würde probieren direkt am 1307 zwischen VCC und GND einen vielschiecht Keramikkondensator um 100 nF anlöten. Hoffentlich wird es damit besser. ;)

Wenn die Krokoleitung aus verdrehter Litze ist, könnte auch die eigene Induktivität eine Rolle spielen.

MfG

wawa
09.01.2011, 19:16
Hallo an beide,

ja es hat auch etwas mit dem Anschwingverhalten zu tun. Die Diode von Pin 8 an Pin 3 versetzt die Vbat auf eine hoeheres Niveau und damit schwingt die Schaltung besser an.
ABER du brauchst noch eine Diode zwischen BAT und Pin 3 um die Rueckeinspeisung zu verhindern.
zu C14 hatt der Vorgaenger recht, der muss mit einer Seite an Masse, sonst hast du eine zu geringe Wandlerspannung.
gruss wawa

wassermann
09.01.2011, 19:44
Hallo zusammen,

danke für eure Aufmerksamkeit.
Da die serielle Schnittstelle bisher funktionierte ist mir der falsche Anschluss des C14 noch nicht aufgefallen. Der gehört natürlich mit einem Fuss auf Masse und nicht auf +. Ich hatte früher den MAX232 drin, und da war's ja richtig und hat bisher mit dem 3232 auch keine Probleme verursacht.

Direkt am 1307 ist auch ein Kondensator C4 mit 100nF an Vbat auf Masse (sieht man im Board).

Zur Diode: Die Diode von BAT auf Pin3 (in Flussrichtung) verstehe ich. Die Diode von Pin 8 auf Pin 3 (auch in Flussrichtung?) jedoch nicht. Da mach ich doch einen Kurzschluss zwischen Vcc und Vbat, oder?

Ich bin die nächsten Tage leider etwas stark eingeschränkt mit Basteln. Also nicht wundern, wenn ich nicht gleich antworte. Ich melde mich auf alle Fälle, wenn ich hoffentlich gute Neuigkeiten habe ;-)

gruss,
wassermann

wassermann
10.01.2011, 11:20
Hallo wawa, PICture,

ich konnte es gestern abend nicht lassen und habe die Platine modifiziert (C14 auf Masse).
Die Kommunikation mit dem TC zeigte keinerlei Unterschied; funktionierte also weiterhin (bzw. jetzt nach Datenblatt).
Im ersten Moment zeigte sich der Fehler nachwievor. Jedoch machte ich eine seltsame Entdeckung. Zeitweise akzeptierte der 1307 meine Befehle und über eine Datums-/Uhrzeitabfrage sagte er mir manchmal und bei wechselnden Bytes die richtigen Daten. Er muss also die richtige Uhrzeit "gefressen" haben, gab aber über die Schnittstelle bzw. am Display teilweise Unsinn aus. Nach einem Reset verhielt er sich ganz normal und liess sich auch durch mehrmalige Tests (Abklemmen, Löten, Hochlauf, ...) nicht mehr aus der Ruhe bringen.

Da er den Unsinn auch am Display ausgab, kann ich die serielle Schnittstelle also ausschliessen. Es kam also über SDA/SCL teilweise Müll rüber (obwohl er wie oben erwähnt die richtige Uhrzeit intern weiterbehielt).
Sollte sich das (hoffentlich alte) Problem weiterhin zeigen, werde ich "weitergrübeln".

Ich möchte euch beiden deshalb danken, dass ihr mir mit euren Tips weitergeholfen habt. Ich werde bei Gelegenheit ein paar Bilder machen und hochladen ... und mich anschliessend um das Gehäuse kümmern ;-)

gruss,
wassermann

PICture
10.01.2011, 13:54
Hallo!

Damit deine Fehlersuche, wegen Buckup, leichter wird, habe ich vom wawa erwähnte und vereinfachte nötige fur den 1307 Schaltung mit zwei Dioden im Code skizziert. :)

MfG



D1 D2
Backup >---->|-+-|<----< VCC
|
.-----.
| |
| |
|1307 |
| |
| |
'-----'
|
===
GND



(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)