DS1307 verhält sich komisch

Gast #2372492
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
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
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
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

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.