ISL29010
Control Register 01(hex)
The Read/Write control register has one function:
1. Range/Gain; Bits 3 and 2. The Full Scale Range can be
adjusted
adjusted
vbiyaaI2nCexutseinrngatlhreesGisatoinr/RRaEnXgTeafnudn/cotrioitnc. an
be
Gain/Range has four possible values, Range(k) where k
is 1 through 4. Table 8 lists the possible values of
Range(k) and the resulting FSR for some typical value
REXT resistors.
TABLE 8. RANGE/GAIN TYPICAL FSR LUX RANGES
FSR LUX FSR LUX FSR LUX
BITS
RANGE@ RANGE@ RANGE@
3:2 k RANGE(k) REXT = 100k REXT = 50k REXT = 500k
0:0 1 2,000
2,000
4,000
400
0:1 2 8,000
8,000
16,000
1,600
1:0 3 32,000
32,000
64,000
6,400
1:1 4 128,000
128,000
256,000
25,600
I2Sensor Data Register 04(hex) and 05(hex)
When the device is configured to output a signed 15-bit data,
the most significant byte is accessed at 04(hex), and the
least significant byte can be accessed at 05(hex). The
sensor data register is refreshed after every integration
cycle.
Timer Data Register 06(hex) and 07(hex)
Note that the timer counter value is only available when
using the External Timing Mode. The 06(hex) and 07(hex)
are the LSB and MSB, respectively, of a 16-bit timer counter
value corresponding to the most recent sensor reading.
Each clock cycle increments the counter. At the end of each
integration period, the value of this counter is made available
over the I2C. This value can be used to eliminate noise
introduced by slight timing errors caused by imprecise
external timing. Microcontrollers, for example, often cannot
provide high-accuracy command-to-command timing, and
the timer counter value can be used to eliminate the
resulting noise.
TABLE 9. DATA REGISTERS
ADDRESS
(hex)
CONTENTS
04
Least-significant byte of most recent sensor reading.
05
Most-significant byte of most recent sensor reading.
06
Least-significant byte of timer counter value
corresponding to most recent sensor reading.
07
Most-significant byte of timer counter value
corresponding to most recent sensor reading.
Calculating Lux
The ISL29010’s output codes, DATA, are directly
proportional to lux.
E = α × DATA
(EQ. 1)
The proportionality constant α is determined by the Full
Scale Range (FSR), and the n-bit ADC, which is user
defined in the command register. The proportionality
constant can also be viewed as the resolution; the smallest
lux measurement the device can measure is α in Equation 2.
α
=
F-----S----R---
2n
(EQ. 2)
Full-Scale Range (FSR) is determined by the software
programmable Range/Gain, Range(k), in the command
register and an external scaling resistor REXT, which is
referenced to 100kΩ.
FSR
=
R
a
n
g
e
(
k
)
×
-1---0---0----k---Ω---
REXT
(EQ. 3)
The transfer function effectively for each timing mode
becomes:
INTERNAL TIMING MODE
E
=
R-----a----n----g----e----(--k---)----×-----1---R----0------E0-------X-k-------TΩ------ × DATA
2n
(EQ. 4)
EXTERNAL TIMING MODE
Range(k) × 1----0---0----k---Ω---
E
=
------------------------------------R-----E----X----T---
COUNTER
×
D
A
TA
(EQ. 5)
n = 3, 7, 11, or 15. This is the number of clock cycles
programmed in the command register.
Range(k) is the user defined range in the Gain/Range bit
in the command register.
REXT is an external scaling resistor hardwired to the REXT
pin.
DATA is the output sensor reading in number of counts
available at the data register.
2n represents the maximum number of counts possible in
Internal Timing Mode. For the External Timing Mode, the
maximum number of counts is stored in the data register
named COUNTER.
COUNTER is the number of increments accrued between
integration time for External Timing Mode.
Gain/Range, Range(k)
The Gain/Range can be programmed in the control register
to give Range(k) determining the FSR. Note that Range(k) is
not the FSR (see Equation 3). Range(k) provides four
constants depending on programmed k that will be scaled by
REXT (see Table 8). Unlike REXT, Range(k) dynamically
adjusts the FSR. This function is especially useful when light
conditions are varying drastically while maintaining excellent
resolution.
6
FN6414.0
February 13, 2008