www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit DS1337 über TWI


Autor: Florian M. (skywalker79)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche seit einiger Zeit erfolglos meine RTC DS1337 von MAXIM über
den TWI-Bus vom ATmega128 anzusprechen. Als Fehler vermute ich, dass das
Ack-Signal nicht korrekt gesendet, bzw. empfangen wird.

Beim Versuch, die RTC auszulesen kommen nur komische Werte zustande und
nach dem letzten Datenpaket wird der Pegel nicht mehr auf High gezogen.

Das senden der Startzeit für die RTC scheint ok zu sein.

Hat einer von euch eine Idee, was ich falsch mache, bzw. was ich
verbessern kann?

mit freundlichen Grüßen

Florian

Autor: Florian M. (skywalker79)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich habe hier im Anhang nochmal den Signalverlauf zwischen Atmega128 und 
der RTC eingefügt.
Die Initialisierung mit der Startzeit scheint wie schon geschrieben ok 
zu sein. Beim Abrufen der RTC werden vorher initialisierte Werte wieder 
zurückgegeben. Diese Werte stehen jedoch nicht in der richtigen 
Reihenfolge.
Am Ende der Datenübertragung wird der Bus nicht mehr auf einen 
High-Pegel gezogen, was zu einem Absturzt des Programmes führt.
Kann mir einer bei dem Problem helfen?

mit freundlichen Grüßen

Florian

Autor: Florian M. (skywalker79)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin leider immer noch nicht weiter gekommen, was mein Problem 
angeht.
Hat denn inzwischen jemand von euch mit der RTC Erfahrungen gesammelt, 
bzw. könnte mir so irgendwelche Hinweise geben die mir bei der 
Problemlösung helfen könnten?

mit freundlichen Grüßen

Florian

Autor: Michael Nagler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Florian,
ich habe jetzt das Programm nicht besonders analysiert. Nur einen 
Verdacht habe ich, wenn ich das Diagramm ansehe: Beim Schreiben vom 
Master auf den Slave quittiert der Slave jedes Byte mit einem 
Acknowledge-Bit.

Wenn Du Daten vom Slave lesen willst, muss der Master jedes empfangene 
Byte mit "Ack" bestätigen - bis auf das letzte. Beim Lesen des letzten 
vom Slave erwarteten Bytes darf der Master KEIN Ack senden, damit der 
Slave weiß, dass er mit dem Senden aufhören muss. Um die Übertragung 
abzuschließen, sendet der Master "Stop" (oder "repeated Start").

Ich hoffe der Hinweis hilft Dir.

Gruß
Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.