VCNL4020C
www.vishay.com Vishay Semiconductors
Rev. 1.1, 20-Mar-18 6Document Number: 84350
For technical questions, contact: sensorstechsupport@vishay.com
THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE. THE PRODUCTS DESCRIBED HEREIN AND THIS DOCUMENT
ARE SUBJECT TO SPECIFIC DISCLAIMERS, SET FORTH AT www.vishay.com/doc?91000
2. I2C Interface
The VCNL4020C contains seventeen 8 bit registers for operation control, parameter setup and result buffering. All registers are
accessible via I2C communication. Figure 13 shows the basic I2C communication with VCNL4020C.
The built in I2C interface is compatible with all I2C modes (standard, fast and high speed).
I2C H-level range = 1.7 V to 5 V.
Please refer to the I2C specification from NXP for details.
Fig. 13 - Send Byte/Receive Byte Protocol
Device Address
The VCNL4020C has a fix slave address for the host
programming and accessing selection. The predefined 7 bit
I2C bus address is set to 0010 011 = 13h. The least
significant bit (LSB) defines read or write mode. Accordingly
the bus address is set to 0010 011x = 26h for write, 27h for
read.
Register Addresses
VCNL4020C has seventeen user accessible 8 bit registers.
The register addresses are 80h (register #0) to 90h
(register #16).
REGISTER FUNCTIONS
Register #0 Command Register
Register address = 80h
The register #0 is for starting ambient light or biosensor measurements. This register contains 2 flag bits for data ready
indication.
Note
• With setting bit 3 and bit 4 at the same write command, a simultaneously measurement of ambient light and biosensor is done. Beside als_en
and / or bs_en first selftimed_en needs to be set. On-demand measurement modes are disabled if selftimed_en bit is set. For the
selftimed_en mode changes in reading rates (reg #4 and reg #2) can be made only when b0 (selftimed_en bit) = 0. For the als_od mode
changes to the reg #4 can be made only when b4 (als_od bit) = 0; this is to avoid synchronization problems and undefined states between
the clock domains. In effect this means that it is only reasonable to change rates while no selftimed conversion is ongoing.
SSlave address
Rd
Receive byte Read data from VCNL4020C
ARegister address A
Wr P
SSlave address PA
AData byte
Send byte Write command to VCNL4020C
S = start condition
P = stop condition
A = acknowledge
Host action
VCNL4020C response
SSlave address A Register address A
Wr P
Data byte A
TABLE 1 - COMMAND REGISTER #0
Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0
config_lock als_data_rdy bs_data_rdy als_od bs_od als_en bs_en selftimed_en
Description
config_lock Read only bit. Value = 1
als_data_rdy Read only bit. Value = 1 when ambient light measurement data is available in the result registers. This bit
will be reset when one of the corresponding result registers (reg #5, reg #6) is read.
bs_data_rdy Read only bit. Value = 1 when biosensor measurement data is available in the result registers. This bit
will be reset when one of the corresponding result registers (reg #7, reg #8) is read.
als_od
R/W bit. Starts a single on-demand measurement for ambient light. If averaging is enabled, starts a
sequence of readings and stores the averaged result. Result is available at the end of conversion for
reading in the registers #5(HB) and #6(LB).
bs_od R/W bit. Starts a single on-demand measurement for biosensor.
Result is available at the end of conversion for reading in the registers #7(HB) and #8(LB).
als_en R/W bit. Enables periodic als measurement
bs_en R/W bit. Enables periodic biosensor measurement
selftimed_en R/W bit. Enables state machine and LP oscillator for self timed measurements; no measurement is
performed until the corresponding bit is set