Hilfe bei DS1307

Gast #3401147
hey...

ich will zur Übung eine Uhr programmieren (RTC ,DS1307)
Muss ich diese nach dem Kauf erstmalig initialisieren???

Habe schon versucht das TWI Start-Signal zu senden ,leider bleit er in 
der Warte-schleife hängen und bekommt kein ACK Signal????

Kann mir jemand helfen und mir sagen wie ich die Uhr zum laufen 
bringe???
Gast
Noch eine Frage :

Wenn ich die Uhr draufstecke dann leuchten PC3 und PC4.
Ich habe aber einen Atmega32 ,dort steht im Datenblatt dass
SCL=PC0
und SDA = PC1 ist .
Wieso müssten diese dann nicht leuchten?????
Pia17 schrieb:
> hab aber nur in der Uni
> programmiert.

das klingt aber irgendwie negativ wenn du es so ausdrückst.
War es so dermassen fruchtlos ?

Pia17 schrieb:
> Wenn ich die Uhr an Portc stecke dann leutet PC3 und PC4

das sagt mir garnix. Wenn ich bei meinem Mega 32 die Ports leuchten 
sehe,
habe ich wohl versäumt den Strom abzuschalten und einen Fehler 
übersehen.

Pia17 schrieb:
> JTAG ist ausgeschaltet ,hab ich mir sagen lassen!?

Ich hab mir mal sagen lassen, das in Deutschland die Kinder vom Storch 
gebracht werden.

Ich hoffe du verstehst die Einwände.

Gruss Klaus
Gast
Wieviel Erfahrung hast du denn bereits mit TWI gesammelt? Hast du die 
Pullups von 4,7k gegen Vdd angeschlossen?

Zeig doch mal den Aufbau und den Quellcode, dann kann man dir auch 
besser helfen.
Pia17 schrieb:

> JTAG ist ausgeschaltet ,hab ich mir sagen lassen!?

Du hast es dir 'sagen lassen'?

Überprüfe es!
Kann ja sein, dass es wirklich abgeschaltet ist. Aber ein 'ich habs mir 
sagen lassen' kann man nicht als Ausgangspunkt zur Problemsuche 
akzeptieren, zumal es trivial zu kontrollieren ist. Fuses auslesen und 
nachsehen.
Pia17 schrieb:
> woher weiss ich ab welcher Adresse ich den RAM auslese.

Das ist im Datenblatt recht verschwurbelt erklärt:

1. Slave Receiver Mode (Write Mode):
...
After the DS1307 acknowledges the slave address + write bit, the master 
transmits a word address to the DS1307. This sets the register pointer 
on the DS1307, with the DS1307 acknowledging the transfer. The master 
can then transmit zero or more bytes of data with the DS1307 
acknowledging each byte received.

2. Slave Transmitter Mode (Read Mode):
...
The DS1307 then begins to transmit data starting with the register 
address pointed to by the register pointer.

D.h. Du schreibst zuerst nur das RAM-Adreßbyte und liest dann.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 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.