Sensor STK2207-018
Verfasst: Mo 12. Aug 2013, 22:41
Hier mal der Beitrag von sebr, damit er nicht verloren geht:
Wie viel schon wissen gibt es bei Max die Kindle Akkus. Dort ist als "Beifang" auch ein Ambient Light Sensor dabei. Leider ist Dokumentation Mangelware, aber ich habe nach intensiver Recherche im Netz und Durchsicht des Quellcodes von dem Kindle Fire (Cyanogen Mod / Hashcode) einiges evtl. hilfreiches zusammengetragen. Im Forum gibt es schon ein Bild von dem Sensor: klick
Belegung (von oben nach unten): GND, SDA, SCL, +3.3V
Praktischerweise sind Abblockondensatoren (zusammen 1uF] gleich mit drauf.
Am BusPirate meldet sich das Teil wie folgt:
I2C>(1)
Searching I2C address space. Found devices at:
0x20(0x10 W) 0x21(0x10 R) 0x22(0x11 W) 0x23(0x11 R)
Also zwei Kommandoregister gilt es zu füllen. Da ist der oben erwähnte Quellcode recht hilfreich um die einzelnen Stellen bzw. deren Bedeutung zu kennen.
Kommandoregister 0x20
[G1] [G0] [1] [0] [IT1] [IT0] [WM] [SD]
- G1, G0: hiermit kann die Empfindlichkeit/Verstäkung (Gain) eingestellt werden. Zur Auswahl stehen x1 (0 : 0), x2, x4, x8 (1 : 1)
- IT1, IT0: Multiplikator für die integration time des ADC: x0.5 (0 : 0), x1, x2, x4 (1 : 1)
- WM: Word Mode, setzt man hier 1 finden sich das Ergebnis (Wort) in 0x21 (MSB) und 0x23 (LSB). Reichen 8 Bit, dann setzt man hier 0 und brauch den Wert nur in 0x21 abholen.
- SD: Shutdown, legt den Sensor schlafen. Die letzten gemessenen Werte können direkt aus 0x21 und 0x23 gelesen werden
Kommandoregister 0x22
[FD_IT2] [FD_IT1] [FD_IT0] [0] [0] [0] [0] [0]
- FD_IT2, FD_IT1, FD_IT0: Integration time, von 66ms (0 : 0 : 0) bis 800ms (1 : 1 : 1), sinnvoller Standard-Wert ist 100ms (1 : 0 : 1). Je höher desto besser die Auflösung.
Hier mal ein Test (Byte Mode)
I2C>[0x20 0xe8 [0x22 0xa0 [0x21 r]
I2C START BIT
WRITE: 0x20 ACK
WRITE: 0xE8 ACK
I2C START BIT
WRITE: 0x22 ACK
WRITE: 0xA0 ACK
I2C START BIT
WRITE: 0x21 ACK
READ: 0x0C
NACK
I2C STOP BIT