DS1307 verhält sich komisch

Gast #2372492
Lesenswert?

Hey,

Ich habe eine eigene Routine zum beschreiben und auslesen eines DS1307 
geschrieben. Die funktioniert auch soweit ganz gut, hab mir die 
Übertragung mal am Oszilloskop angesehen.
Leider hab ich momentan keins mehr zur Verfügung und habe jetzt 
folgendes Problem:

Jenachdem wie ich die CLK Frequenz wähle bekomme ich teilweise 
unterschiedliche Registerinhalte.
Ich hab eine Testroutine geschrieben die jede Sekunde das 
Sekundenregiter ausliest. Wenn ich z.B. mit 10kHz auslese bekomme ich 
andere Werte als wenn ich mit 15kHz auslese. Größtenteils stimmt der 
Registerinhalt auch mit der Sekunde überein, ab und zu mal bekomme ich 
aber ganz komische Werte, z.B. 96 (wenn eigentlich 40 Sekunden sind). 
Hab schon verschiedene PullUps probiert, kurze Leitungen verwendet, den 
DS1307 getauscht...aber bringt alles nix. Nur noch den Quarz könnte ich 
tauschen.

Hatte vllt mal jemand ein ähnliches Problem oder weiß was das sein 
könnte?
An der Routine sollte es eig. nicht liegen, wie gesagt auf dem 
Oszilloskop sah alles super aus.
Freue mich auf Kommentare:)

Grüße Liu
Gast #2372517
Lesenswert?

Hey Patrick,
Vielen Dank für deine Antwort.
Leider hilft mir das nicht viel weiter, ich hab die kompletten 
Funktionen wir schrieben, lesen etc. selber geschrieben, also ohne I2C.

Also so dass ein Timer mir meinen CLK auf einen Pin legt und ich dann 
über Routinen die Daten auf dem SDA einlese bzw. ausgebe
#2372532
Lesenswert?

Dann zeig mal den Code. Tut mir leid, aber meine Kristallkugel ist 
gerade in Revision...

Gibst du auch wirklich 9 Clocks aus? Damit das ACK auch wieder 
eingelesen/ausgegeben werden kann?
Nach jedem Byte braucht es ein ACK beim Lesen (Empfang bestätigen) und 
die DS1307 gibt auch eines zurück, um den Empfang bestätigen. So kannst 
du auch noch ein Fehlerprotokoll einbinden.
PullUps bei Data und SCK sind 2k2.
Welche Frequenzen hast du Probiert? Ich würde 100kHz (Standart) nehmen, 
da du sonst Probleme mit der Geschwindigkeit bekommen könntest.

MFG
Patrick
Gast #2372555
Lesenswert?

Code hab ich grad nicht hier, stell ich später rein.
Die 100kHz schaff ich nicht ganz, hab das ganze mal aufm Oskar 
angeschaut aber bei 100kHz haben die Signale nicht mehr gepasst. 
Verwende einen ATMega32 mit 8Mhz interer Takt.

Kann es vllt sein dass der Prozessor den Code bei 100kHz nicht so 
schnell verarbeiten kann und ich deshalb die Probleme bekomme?

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