Hallo alle Zusammen, ich habe heute meine DS1302-Breakoutboards bekommen. Mit einem Arduino-Sketch hab ich erstmal ausprobiert, ob die Module auch funktionieren. Beim Einarbeiten ins Datenblatt zwecks eigener Ansteuerung habe ich aber noch ein paar Probleme. In der Registertabelle (Table 3 im Maxim-Datasheet) stehen die Registeradressen. Ich verstehe nicht, wie die beiden linken Spalten ("Read" und "Write") gemeint sind. Gibt es für das gleiche Register also eine getrennte Read- und Writeadresse? Wäre nett, wenn mir das jemand erläutern könnte :)
Hallo, betrachte die Tabelle im Zusammenhang mit Figure 3. Das Adress-/Commandbyte hat 8 Bit (logisch, ist ja ein Byte). Die Bits 1-5 bilden die Adresse, Bit 0 entscheidet über Lesen oder Schreiben, Bit 6 über Ram/Uhr Zugriff. Tabelle 3 ist nur eine Darstellung für alle sinnvollen Kombinationen aus Adresse und Funktion, damit nicht alles nach Figure 3 selber zusammen gebastelt werden muß. Will man die Sekunden lesen, muß Bit 7 = 1 sein, Bit 6 = 0 (/CH), Bit 5-1 sind die eigentliche Registeradresse, also 00000, Bit 0 ist 1 für Lesen. Macht zusammen also 1 0 00000 1 also 0x80. Zum Schreiben der Sekunden bleibt Rgisteradresse, Bit 6 für die Funktion und Bit 7 mit "immer 1" gleich, Bit 0 muß 0 für Schreiben sein, 1 0 00000 0 = 0x80. Ich hoffe, ich habe jetzt richtig nachgeschaut, habe das Datenblatt zum ersten Mal angesehen... Gruß aus Berlin Michael
:
Bearbeitet durch User
Michael U. schrieb: > Will man die Sekunden lesen, muß Bit 7 = 1 sein, Bit 6 = 0 (/CH), > Bit 5-1 sind die eigentliche Registeradresse, also 00000, Bit 0 ist 1 > für Lesen. Macht zusammen also 1 0 00000 1 also 0x80. der Vollständigkeit halber: natürlich 0x81
ATundT schrieb: > Gibt es für das gleiche Register also eine getrennte Read- und > Writeadresse? Ja. Das liegt daran, das die Übertragungsmethode SPI ist. Bei SPI gibt es kein Schreiben oder Lesen in dem Sinne. SPI ist ein Byteaustausch. Um dem Baustein mitzuteilen, was er mit dem 2ten übertragenen Byte machen soll, bzw ob er beim Austausch des 2ten Bytes seinen gespeicherten Wert auf den Bus legen soll, wird eben im jweils ersten Byte codiert, ob das eine reine Leseoperation oder eine Schreiboperation sein soll. Serial Peripheral Interface
:
Bearbeitet durch User
Hi, ich danke euch für eure Mühen! Habs verstanden. Jetzt muss ich das nur noch in sinvollen Code packen ;) Danke!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.