Sensor STK2207-018

Seiten: (1)
Zurück zur Übersicht

sebr

28.07.13 00:11

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


Funzt also gut und damit schonmal brauchbar für Mikrocontroller-Basteleien. Auf dem Raspberry Pi kann man auch mit den i2ctools und smbus-python mit dem Modul reden. Die Krönung wäre jetzt noch das Kernel-Modul von den Kindle Fire Quellen für den Pi kompilieren zu können - leider fehlen mir dazu die Linux Kenntnisse aber vielleicht ist hier jemand unterwegs der da vertraut ist mit sowas. Ob das überhaupt geht ?!

Nicki

10.08.13 11:56

Danke für die Hinweise!
Läuft bei mir

Omega

10.08.13 13:41

sebr:
Auf dem Raspberry Pi kann man auch mit den i2ctools und smbus-python mit dem Modul reden. Die Krönung wäre jetzt noch das Kernel-Modul von den Kindle Fire Quellen für den Pi kompilieren zu können - leider fehlen mir dazu die Linux Kenntnisse aber vielleicht ist hier jemand unterwegs der da vertraut ist mit sowas. Ob das überhaupt geht ?!


Sehr schön rausgefunden, gefällt mir gut diese Zusammenfassung

Ich habe das Kernelmodul vom Kindle in den Kernel meines eigenen Linux Boards eingebaut, da das geht, wird es auch für ein Raspberry PI gehen. Da ich allerdings kein PI habe, kann ich das zur Zeit nicht machen.

Zurück zur Übersicht
Seiten: (1)