2017-01-09 3 views
0

Ich versuche, eine ISL12022M RTC zu programmieren und habe Probleme beim Interpretieren der Registerkarte (Autodidakt mit wenig Erfahrung). Die Dokumentation besagt, dass die RTC-Register (SC, MN, HR, DT, MO, YR, DW) BCD-Darstellungen sind. Um Schreib capabilitiy zu ermöglichen, in die RTC die WRTC (Bit 6 von Adresse 08h Register wird auf ‚1'.The Karte sieht wie folgt aus: mapInterpretieren i2c Registerkarte für ISL12022

Das FAQ Beispiel aus dem Intersil Website mir das sagt einstellen das WRTC-Bit muss ich DEh (Slave-Adresse) 08h (Register-Adresse) und 41 (Enable WRTC-Bit, andere Bits bleiben in der Standardeinstellung). Warum nicht hex? Warum 41 und nicht 40? Und was SC22 in SC bit 6, SC21 in Bit 5 usw. bedeuten?

Datasheet

Example

Ich habe die Dokumentation gelesen, bis ich nichts mehr sehen kann und ich habe gesucht, bis ich mehr verwirrt bin. Jede Hilfe wird geschätzt.

Antwort

0

Nun, es sieht so aus, als wären diese Werte in der Karte Nibbles. Der Bereich für das erste Register ist 0 - 59. Wenn in BCD dargestellt, werden 4 Bits für die Stelle an der einen Stelle benötigt, und drei Bits werden für die Stelle der 10 benötigt. Also gehören die Bits 0 - 3 zum ersten Halbbyte; Bit 0 = SC (Registername) 1 (erstes Nibble) 0 (erstes Bit). Die Bits 4, 5 und 6 gehören zu dem zweiten Halbbyte. Bit 4 = SC (Registername) 2 (zweites Nibble) 0 (erstes Bit). Bit 7 wird nicht benötigt.

Das Beispielblatt von Intersil hat einen Tippfehler; Der WRTC-Wert muss 40h oder 41h sein.