VISHAY SEMICONDUCTORS www.vishay.com Optical Sensors Application Note Designing the VCNL4040 into an Application By Reinhard Schaar INTRODUCTION AND BASIC OPERATION The VCNL4040 is a fully integrated proximity and ambient light sensor. It combines an infrared emitter and photodiode for proximity measurement, ambient light sensor, and signal processing IC in a single package with a 16-bit ADC. The device provides ambient light sensing to support conventional backlight and display brightness auto-adjustment, and proximity sensing to minimize accidental touch input that can lead to call drops and camera launch. COMPONENTS (BLOCK DIAGRAM) The major components of the VCNL4040 are shown in the block diagram. In addition to the ASIC with the ambient light and proximity photodiode, the infrared emitter is also implemented. Its cathode needs to be connected to the driver (pin 2) externally. PS data buffer ALS 16-bit data buffer Oscillator 8 SCL Low pass filter 7 SDA 6 INT Temperature sensor IRED Anode 4 5 Cathode (IRED) Fig. 3 - VCNL4040 Detailed Block Diagram Fig. 1 - VCNL4040 Top View Revision: 30-Nov-15 The integrated infrared emitter has a peak wavelength of 940 nm. It emits light that reflects off an object within 20 cm of the sensor. An added lens helps to increase peak intensity due to enabling a small angle of just ± 15°, as shown in fig. 4. Document Number: 84307 1 For technical questions, contact: [email protected] 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 APPLICATION NOTE VDD 3 DSP Output buffer 2 I C Interface Cathode 2 (sensor) PS-PD VCNL4040 GND 1 Driver Through its standard I2C bus serial digital interface, it allows easy access to a “proximity signal” and “light intensity” measurements. The programmable interrupt function offers wake-up functionality for the microcontroller when a proximity event or ambient light change occurs, which reduces processing overhead by eliminating the need for continuous polling. Fig. 2 - VCNL4040 Bottom View ALS-PD With a range of up to 20 cm (7.9"), this stand-alone component greatly simplifies the use and design-in of a proximity sensor in consumer and industrial applications, because no mechanical barriers are required to optically isolate the emitter from the detector. The VCNL4040 features a miniature, surface-mount 4.0 mm by 2.36 mm leadless package (LLP) with a low profile of 0.75 mm. The device is designed specifically to meet the low height requirements of smartphone, mobile phone, digital camera, and tablet PC applications. Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application PIN CONNECTIONS Axis Title Fig. 3 shows the pin assignments of the VCNL4040. 10000 0.9 The connections include: 0.8 • Pin 1 - connect to ground 0.7 • Pin 2 - IR cathode (sensor side) 1000 0.6 1st line 2nd line Relative Radiant Intensity (mW/sr) 1st line 1.0 0.5 0.4 100 0.3 • Pin 3 - VDD to the power supply • Pin 4 - IRED anode to the power supply • Pin 5 - IRED cathode (IRED side) • Pin 6 - INT to microcontroller 0.2 • Pin 7 - SDA to microcontroller 0.1 0 10 -90 -60 -30 0 30 60 • Pin 8 - SCL to microcontroller 90 Angle (deg) 2nd line Fig. 4 - Angle of Half Intensity of the Emitter The infrared emitter has a programmable drive current from 50 mA to 200 mA in eight steps. The infrared light is emitted in short pulses with a programmable duty ratio from 1/40 to 1/320. The proximity photodiode receives the light that is reflected off the object and converts it to a current. It has a peak sensitivity of 940 nm, matching the peak wavelength of the emitter. The sensitivity of the proximity stage is also programmable by choosing from eight different integration times. It is insensitive to ambient light. It ignores the DC component of light and “looks for” the pulsed light at the proximity frequency used by the emitter. The ambient light sensor receives the visible light and converts it to a current. The human eye can see light with wavelengths from 400 nm to 700 nm, with a peak of 560 nm. Vishay’s ambient light sensor closely matches this range of sensitivity. It has peak sensitivity at 540 nm and a bandwidth from 430 nm to 610 nm. If separate power supplies for the VDD and the infrared emitter are used and there are no negative spikes below 2.5 V, only one capacitor at VDD could be used. The 100 nF capacitor should be placed close to the VDD pin. The SCL and SDA, as well as the interrupt lines, need pull-up resistors. The resistor values depend on the application and on the I2C bus speed. Common values are about 2.2 kΩ to 4.7 kΩ for the SDA and SCL, and about 8.2 kΩ to 22 kΩ for the interrupt lines. 1.8 V to 3.6 V R1 R2 R3 GND (1) 2.5 V to 3.6 V R4 10R C1 C2 10 μF 100 nF 2.5 V to 3.6 V Host Micro Controller VCNL4040 ANODE (4) C3 470 nF C1 and R4 are optional for very disturbed supply VDD (3) SDA (7) I2C bus data SDA CATHODE (5) (IRED) SCL (8) 2 I C bus clock SCL CATHODE (2) (driver) INT (6) GPIO (INT) Fig. 5 - VCNL4040 Application Circuit Revision: 30-Nov-15 Document Number: 84307 2 For technical questions, contact: [email protected] 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 APPLICATION NOTE The application-specific integrated circuit, or ASIC, includes an LED driver, I2C bus interface, amplifier, integrated analog-to-digital converter, oscillator, and Vishay’s “secret sauce” signal processor. For proximity, it converts the current from the photodiode to a 12-bit or 16-bit digital data output value. For ambient light sensing, it converts the current from the ambient light detector, amplifies it, and converts it to a 16-bit digital output stream. The power supply for the ASIC (VDD) has a defined range from 2.5 V to 3.6 V. The infrared emitter can also be within this range. It is best if VDD is connected to a regulated power supply and pin 4, the anode, is connected directly to the battery. This eliminates any influence of the high infrared emitter current pulses on the VDD supply line. The power supply decoupling components C1 and R4 (shown in fig. 5) are optional. They isolate the sensor from other possible noise on the same power rail, but in most applications are not needed. Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application MECHANICAL DESIGN CONSIDERATIONS The VCNL4040 is a fully integrated proximity and ambient light sensor. Competing sensors use a discrete infrared emitter, which leads to complex geometrical calculations to determine the position of the emitter. Competing sensors also require a mechanical barrier between the emitter and detectors to eliminate crosstalk - light reflecting off the inside of the window cover that can produce false proximity readings. The VCNL4040 does not require a mechanical barrier. The signal processor continuously compensates for the light reflected from windows, thus ensuring a proper proximity reading. As a fully integrated sensor, the design process is greatly simplified. The only dimensions that the design engineer needs to consider are the distance from the top surface of the sensor to the outside surface of the window, and the size of the window. These dimensions will determine the size of the detection zone. The angle of half intensity of the emitter is about ± 15°, as shown in fig. 6, and the sensitivity of the photodiodes is showing about ± 55°. 20° 1.0 0.9 40° 0.8 0.7 Angle (deg) Radiant Intensity (mW/sr) 0° 60° ± 40° ± 15° Fig. 8 - Emitter and Detector Angle To achieve a good ambient light response, the diameter of the hole within the cover glass should not be too small. An angle of ± 40° will be sufficient in most applications. The package drawing shows the position of the IRED and photosensitive area. The +40° line should be set at the side of the photodiode, towards pin 1. The -40° line should be set no closer than 1 mm to that edge. The following are dimensions for the distance from the top surface of the sensor to the outside surface of the glass, a, and the width of the window, d. d x 4.0 D a α 0.6 1.1 80° 0.5 0.4 0.3 0.2 0.1 0 dimensions in mm Fig. 6 - Angle of the Half Intensity of the Emitter 1.0 0.9 40° 0.8 0.7 60° 0.6 ϕ - Angular Displacement 20° For a single round hole, the diameter should be at least wide enough that the openings can freely look through; so, about 4 mm. Two much smaller holes are also possible. These should be at least the same as the diameter for the IRED = 1.2 mm. 80° 0.5 0.4 0.3 0.2 0.1 0 Fig. 7 - Angle of the Half Sensitivity of the Photodiode Revision: 30-Nov-15 Document Number: 84307 3 For technical questions, contact: [email protected] 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 APPLICATION NOTE Srel - Relative Sensitivity 0° Fig. 9 - Window Dimensions for One Hole Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application The results above represent the ideal diameters of the window. The mechanical design of the device may not allow for these diameters. 4 ± 0.1 4 ± 0.1 PROXIMITY SENSOR Ø 1.2 Fig. 10 - Light Holes Diameters The main DC light sources found in the environment are sunlight and tungsten (incandescent) bulbs. These kinds of disturbance sources will cause a DC current in the detector inside the sensor, which in turn will produce noise in the receiver circuit. The negative influence of this DC light can be reduced by optical filtering, but is reduced much more efficiently by a so-called DC kill function. The proximity photodiode shows its best sensitivity at about 940 nm, as shown in fig. 12. Axis Title The diameter needs to be increased with distances between the sensor and cover glass according to the following calculation. x = 0.0 x = 0.42 x = 0.84 x = 1.28 x = 1.68 x = 2.10 x = 2.52 x = 2.94 x = 3.36 → → → → → → → → → d = 4.0 mm + 0.0 = 4.0 mm d = 4.0 mm + 0.84 = 4.84 mm d = 4.0 mm + 1.68 = 5.68 mm d = 4.0 mm + 2.56 = 6.56 mm d = 4.0 mm + 3.36 = 7.36 mm d = 4.0 mm + 4.20 = 8.20 mm d = 4.0 mm + 5.04 = 9.04 mm d = 4.0 mm + 5.88 = 9.58 mm d = 4.0 mm + 6.72 = 10.72 mm For the two smaller holes, the diameter for the IRED can be as small as 1.2 mm. d1 a x α D 1.1 dimensions in mm Only the diameter for the photodiode needs to be increased, as shown in the example below, with distances between the sensor and cover glass. The width calculation for distances from 0 mm to 1.5 mm results in: a = 0.0 mm → a = 0.5 mm → a = 1.0 mm → a = 1.5 mm → x = 0.0 x = 0.42 x = 0.84 x = 1.28 Revision: 30-Nov-15 → → → → d = 1.2 mm + 0.0 = 1.2 mm d = 1.2 mm + 0.84 = 2.04 mm d = 1.2 mm + 1.68 = 2.88 mm d = 1.2 mm + 2.56 = 3.76 mm ALS 70 1000 60 PS 50 40 100 30 20 10 0 400 500 600 700 800 900 10 1000 Wavelength (nm) 2nd line Fig. 12 - Spectral Sensitivity of ALS and Proximity Photodiode The proximity sensor uses a short pulse signal of about 100 μs (PS_IT = 1T) up to 800 μs (PS_IT = 8T). The on / off duty ratio setting now defines which repetition rate to be used, which can be programmed from 1/40 up to 1/320. In addition to DC light source noise, there is some reflection of the infrared emitted light off the surfaces of the components surrounding the VCNL4040. The distance to the cover, proximity of surrounding components, tolerances of the sensor, defined infrared emitter current, ambient temperature, and type of window material used all contribute to this reflection. The result of the reflection and DC noise is the production of an output current on the proximity and light sensing photodiode. This current is converted into a count called the offset count. In addition to the offset count, there could also be a small noise floor during the proximity measurement, which comes from the DC light suppression circuitry. This noise is typically just one or two counts. Only with light sources with strong infrared content could it be in the range from ± 5 counts to ± 10 counts. Document Number: 84307 4 For technical questions, contact: [email protected] 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 APPLICATION NOTE Fig. 11 - Window Diameters for Two Holes 80 1st line 2nd line a = 0.0 mm → a = 0.5 mm → a = 1.0 mm → a = 1.5 mm → a = 2.0 mm → a = 2.5 mm → a = 3.0 mm → a = 3.5 mm → a = 4.0 mm → 10000 90 Relative Response (%) 1st line The width calculation for distances from 0 mm to 4 mm results with this in: 100 Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application The application should “ignore” this offset and small noise floor by subtracting them from the total proximity readings. The VCNL4040 offers a subtraction feature what automatically does this: PS_CANC. During the development of the end product, this offset count is evaluated and may now be written into register 5: PS_CANC_L/M. Now the proximity output data will just show the subtraction result of proximity counts - offset counts. Results most often do not need to be averaged. If an object with very low reflectivity or at longer range needs to be detected, the sensor provides a register where the customer can define the number of consecutive measurements that the signal must exceed before producing an interrupt. This provides stable results without requiring averaging. landing / step. This second trap is for smooth switch-off of the LED and is executed with very low IRED current. The pulse length in total is 200 μs. Amplitude of that first half is dependent on the IRED current. The higher this current is programmed, the higher that pulse amplitude will be. Taking a scope picture at IR_Cathode (pin 5) will look like this: 0.5 V/div 125 μs 125 μs PROXIMITY CURRENT COSUMPTION Revision: 30-Nov-15 40 μs/div Fig. 13 - Proximity IRED Pulse for 1T INITIALIZATION AND I2C TIMINGS The VCNL4040 contains thirteen 16-bit command codes for operation control, parameter setup, and result buffering. All registers are accessible via I2C communication. The built-in I2C interface is compatible with the standard and high-speed I2C modes. The I2C H-level voltage range is from 2.5 V to 3.6 V. There are only five registers out of the thirteen that typically need to be defined: 1. LED_I = 50 mA to 200 mA (IRED current) REGISTER PS_MS #04 [0x04h] 2. PS_Duty = 1/40 to 1/320 (proximity duty ratio), PS_IT (proximity integration time = pulse length), PS_PERS (number of consecutive measurements above / below threshold), and PS_SD (PS power_on) REGISTER PS_CONF1 #03 [0x03h] 3. ALS_IT (ALS_integration time) ALS_PERS (number of consecutive measurements above / below threshold), and ALS_SD (ALS power_on) REGISTER ALS_CONF #00 [0x00h] 4. and 5. Definition of the threshold value from the number of counts the detection of an object should be signaled. Proximity TOP Threshold REGISTER PS_THDL_L #06 [0x06h] for the low byte and PS_THDL_H #07 [0x07h] for the high byte. To define the infrared emitter current, as well as the integration time (length of the proximity pulsing), evaluation tests should be performed using the least reflective material at the maximum distance specified. Document Number: 84307 5 For technical questions, contact: [email protected] 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 APPLICATION NOTE Both the ambient light sensor (ALS) and the proximity sensor (PS) within the VCNL4040 offer a separate shutdown mode. Default values after start-up have them both disabled. The application may activate just the one wanted or both. The VCNL4040’s embedded LED driver drives the internal IRED via the “LED CATHODE” pin with a pulsed duty cycle. The IRED on / off duty ratio is programmable by an I2C command at register PS_Duty. Depending on this pulse / pause ratio, the overall proximity current consumption can be calculated. When higher measurement speed or faster response time is needed, PS_Duty may be selected to a maximum value of 1/40, which means one measurement will be made every 4.85 ms, but this will then also lead to the highest current consumption: PS_Duty = 1/40: peak IRED current = 100 mA, averaged current consumption is 100 mA/40 = 2.5 mA. For proximity measurements executed just every 40 ms: PS_Duty = 1/320 peak IRED current = 100 mA, averaged current consumption is 100 mA/320 = 0.3125 mA. The above is always valid for the normal pulse width of T = 1T = 125 μs, as well as for 2T, 4T, 8T, and all others in between. These pulse lengths are always doubled, resulting in 1000 μs for 8T, but the repetition time is also doubled, ending in a period time of about 320 ms. An extremely power-efficient way to execute proximity measurements is to apply a PS active force mode (register: PS_CONF3, command: PS_AF = 1). If only a single proximity measurement should be done, PS_AF is set to “1” and then PS_SD = 0 = active. Setting PS_Trig = 1 will then execute just one single measurement. In this mode, only the I2C interface is active. In most consumer electronic applications the sensor will spend the majority of time in sleep mode, it only needs to be woken up for a proximity or light measurement. In standby mode the power consumption is about 0.2 μA. The pulse for proximity measurement looks to have a higher Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application Fig. 13 shows the typical digital counts output versus distance for three different emitter currents for integration time T1. The reflective reference medium is the Kodak Gray card. This card shows approximately 18 % reflectivity at 940 nm. Axis Title 10000 1/40 each 5 ms 1000 1000 1st line 2nd line Proximity Value (counts) 1st line 10 000 With defining the duty time (PS_Duty), the repetition rate = the number of proximity measurements per second (speed of proximity measurements) is defined. This is possible between 5 ms (about 200 measurements/s) by programming PS_Duty with 1/40 and 40 ms (about 25 measurements/s) with programming PS_Duty with 1/320. 50 mA 100 mA 200 mA 100 100 10 1 0.1 1 10 100 10 1000 Fig. 16 - Proximity Measurements with PS_Duty = 1/40 Distance to Reflecting Card (mm) 2nd line Fig. 14 - Proximity Value vs. Distance for 1T 1/320 each 40 ms This first diagram shows the possible detection counts with a short pulse of just 100 μs. If higher detection distances and / or objects with very low reflectivity should be detected, there is the option to extend these proximity pulses up to about 800 μs for 8T. This results in higher counts but may also lead to saturation effects for very close and very bright objects. This leads then to the diagram in fig. 15 below. In order to reach the high reflection counts of the Kodak Gray card, one has to define the proximity range to 16 bit, otherwise the 12-bit range would just lead to 4095 counts. This is possible to select with: PS_HD = 1 within PS_CONF3 byte of command code #3. Axis Title 10000 10 000 1000 50 mA 100 mA 200 mA 100 1st line 2nd line 1000 100 10 1 0.1 1 10 100 This duty cycle also determines how fast the application reacts when an object appears in, or is removed from, the proximity zone. Reaction time is also determined by the number of counts that must be exceeded before an interrupt is set. This is possible to define with proximity persist: PS_PERS. Possible values are from 1 to 4. To define all these register values, an evaluation test should be performed. The sensor starter kit allows you to perform evaluation tests and properly set the registers for your application. The kit is available from any of Vishay’s distributors. It comes with the VCNL4020 sensor board. The VCNL4040 sensor board can be requested by sending an e-mail to [email protected]. 10 1000 Distance to Reflecting Card (mm) 2nd line Fig. 15 - Proximity Value vs. Distance; PS_IT = 8T Revision: 30-Nov-15 Document Number: 84307 6 For technical questions, contact: [email protected] 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 APPLICATION NOTE Proximity Value (counts) 1st line 100 000 Fig. 17 - Proximity Measurements with PS_Duty = 1/320 Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application AMBIENT LIGHT SENSING Timing I2 C For an bus operating at 100 kHz, to write or read an 8-bit byte, plus start (or stop) and bit acknowledgement, takes 100 μs. Together with the slave address byte and the 8-bit command code byte, plus the 16-bit data, this results in a total of 400 μs. When the device is powered on, the initialization with just these five registers needs 5 x 4 bytes (slave address, command register, and 16-bit data) for a total of 20 bytes. So, 20 x 100 μs = 2000 μs = 2 ms. Send Byte → Write Command to VCNL4040 1 S 7 Slave Address 1 1 8 1 8 1 8 1 1 Wr A Command Code A Data Byte Low A Data Byte High A P The read-out of 16-bit data would take a total of five bytes (slave address, command code, slave address with read bit set) and 16-bit data sent from the VCNL4040. So, 500 μs: Receive Byte → Read Data from VCNL4040 1 7 1 1 8 1 1 7 1 1 8 1 8 1 1 S Slave Address Wr A Command Code A S Slave Address Rd A Data Byte Low A Data Byte High A P Power Up The release of the internal reset, the start of the oscillator, and the signal processor need 2.5 ms Initialize Registers Write to four registers 1600 μs - IRED current - Proximity duty ratio - ALS integration time - Proximity interrupt TOP threshold Once the device is powered on and the VCNL4040 is initialized, a proximity measurement can be taken. Asking for one forced proximity measurement For (active forced, PS_IT = 8) Time to trigger [0.5 x PS_IT] DC-kill ambient light [3 x PS_IT] Proximity measurement [1 x PS_IT] IRED shutdown [1 x PS_IT] Read out of the proximity data total: 1T In the infrared region, the intensity of the incandescent light is significantly higher. A standard silicon photodiode is much more sensitive to infrared light than visible light. Using it to measure ambient light will result in serious deviations between the lux measurements of different light sources and human eye perception. Using Vishay’s ambient light sensors will solve this problem because they are most sensitive to the visible part of the spectrum. Visible Infrared 1.0 Incandescent light Ambient Light Sensor 0.8 Silicon Photodiode 0.6 400 μs 0.4 500 μs 3000 μs 1000 μs 1000 μs 500 μs 6400 μs 1T 0.2 Human Eye 0 0.0 500 700 1000 Wavelength (nm) 1500 Photopic Peak 550 nm Fig. 19 - Relative Spectral Sensitivity vs. Wavelength The human eye can see light with wavelengths from 400 nm to approximately 700 nm. The ambient light sensor array in the VCNL4040 closely matches this range of sensitivity and provides a digital output based on a 16-bit signal. Fig. 18 - Timing Specification for Active Forced Mode Revision: 30-Nov-15 Document Number: 84307 7 For technical questions, contact: [email protected] 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 APPLICATION NOTE 3T 0.5T Ambient light sensors are used to detect light or brightness in a manner similar to the human eye. They allow settings to be adjusted automatically in response to changing ambient light conditions. By turning on, turning off, or adjusting features, ambient light sensors can conserve battery power or provide extra safety by eliminating the need for manual adjustments. Illuminance is the measure of the intensity of a light incident on a surface and can be correlated to the brightness perceived by the human eye. In the visible range, it is measured in units called “lux.” Light sources with the same lux measurement appear to be equally bright. In fig. 19, the incandescent light and sunlight have been scaled to have the same lux measurement. Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application AMBIENT LIGHT MEASUREMENT, RESOLUTION, AND CALCULATION Axis Title 1.0 0.8 0.7 1000 0.6 1st line 2nd line Normalized Output 1st line The ambient light sensors’ measurement resolution is defined to about 0.01 lux/count for the highest sensitivity with a 640 ms integration time. The first production versions shown here are a bit higher in value: 0.015 lux/count. The 16-bit digital resolution is equivalent to 65 536 counts. This yields a measurement range from 0.015 lux to 983 lux. For higher illuminance, shorter integration time needs to be selected, which results in lower resolution. 10000 0.9 0.5 0.4 100 0.3 0.2 0.1 ALS RESOLUTION AND MAXIMUM DETECTION RANGE 0 400 500 600 700 800 900 10 1000 ALS_IT SENSITIVITY MAXIMUM DETECTION RANGE Wavelength (nm) 2nd line ALS_IT INTEGRATION (7 : 6) TIME (typ.) UNIT (lux/step) UNIT (lux) Fig. 21 - Relative Spectral Sensitivity vs. Wavelength (White Channel) With the help of this white channel, more information can be determined, e.g. the kind of light source. (0, 0) 80 ms 0.120 7864 (0, 1) 160 ms 0.060 3932 (1, 0) 320 ms 0.030 1966 (1, 1) 640 ms 0.015 983 AMBIENT LIGHT SENSOR CURRENT CONSUMPTION The sensitivity curve below shows the behavior of this ALS photodiode. During ALS measurements, approximately 260 μA. Axis Title 1.2 10000 0.8 1st line 2nd line 0.4 100 device consumes For ambient light sensing, only the low byte of command code #0 needs to be initialized: 1000 0.6 the AMBIENT LIGHT INITIALIZATION AND I2C INTERFACE 1.0 Normalized Ouput 1st line The ambient light sensor can operate with four selectable integration times from 80 ms to 640 ms. • ALS_SD (bit 0 = 0 = ALS Power_on) • ALS_INT_EN (bit 1 = 1 = ALS interrupt enable) • ALS_PERS (bit 2, 3: no. of interrupt persistence) • ALS_IT (bit 6, 7: integration time) 0.2 0 400 500 600 700 800 900 10 1000 Fig. 20 - Relative Spectral Sensitivity vs. Wavelength Besides the ALS, a white channel is also available. For unknown brightness conditions, it should always be started with the shortest integration time. This avoids possible overload / saturation. Only if ambient light result register values are very low, e.g. no content within the high byte of the 16-bit register (#9), should the next more sensitive integration time be used. Calculating the available lux level is done by multiplying the ambient light result value from register 9 (L and H byte) with the integration time / resolution. Example: integration time is at 80 ms and 0x09H and 0x09L show 01010100 and 01110110, expressed in decimals: 21 622 counts leading to 21 622 x 0.12 to 2595 lx. Revision: 30-Nov-15 Document Number: 84307 8 For technical questions, contact: [email protected] 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 APPLICATION NOTE Wavelength (nm) 2nd line The rate for self-timed measurements is dependent on the integration time. Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application Within the ready-made application, this factor should be fine-tuned, as cover glass and the size of the opening will also impact the result. Application Example The following example will demonstrate the ease of using the VCNL4040 sensor. Customers are strongly encouraged to purchase a sensor starter kit and request a VCNL4040 sensor board from [email protected]. Revision: 30-Nov-15 16 bit value Time 0 to A: Power Up • Lower interrupt threshold = 0 • Upper interrupt threshold = FFFF (65 535) • Interrupt flag = 0, interrupt line high • High limit and low limit flags = 0 FFFF (65 535) Offset: 021Ch (540) Interrupt 0 flags t A t 0 Fig. 22 Power Up As mentioned, there are four variables for proximity measurement that need to be set in the register when the sensor is powered up: the emitter current, the number of occurrences that must exceed a threshold to generate an interrupt, the threshold values, and the number of proximity measurements per second. The sensor should detect skin at a distance of 5 cm. Development testing determined that a current of 100 mA produces adequate counts for detection. The proximity measurement rate is set so that about 100 measurements are done within a second and the number of occurrences to trigger an interrupt is set to four. Based on development testing, with a hand or skin approximately 5 cm above the window cover, the resulting total count is 550. This will be used as the upper threshold (high threshold). For smartphone applications it would be typical to initially set this top threshold and a lower threshold (bottom threshold). This is needed to indicate the removal of the phone from the user’s ear. The measured counts without any additional object close by will be around this offset count value, always below the lower threshold value, as shown in fig. 23. Document Number: 84307 9 For technical questions, contact: [email protected] 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 APPLICATION NOTE Interrupt The VCNL4040 features a very intelligent interrupt function. The interrupt function enables the sensor to work independently until a predefined proximity or ambient light event or threshold occurs. It then sets an interrupt which requires the microcontroller to awaken. This helps customers reduce their software effort, and reduces power consumption by eliminating polling communication traffic between the sensor and microcontroller. The interrupt pin, pin 6, of the VCNL4040 should be connected to a dedicated GPIO of the controller. A pull-up resistor is added to the same power supply that the controller is connected to. This INT pull-up resistor may be in the range of 8.2 kΩ to 100 kΩ. The events that can generate an interrupt include: 1. A lower and an upper threshold for the proximity value can be defined. If the proximity value falls below the lower limit or exceeds the upper limit, an interrupt event will be generated. In this case, an interrupt flag bit in the read-out register 0x0B will be set and the interrupt pad of the VCNL will be pulled to low by an open drain pull-down circuit. In order to eliminate false triggering of the interrupt by noise or disturbances, it is possible to define the number of consecutive measurements that have to occur before the interrupt is triggered. 2. A lower and an upper threshold for the ambient light value can be defined. If the ambient light value falls below the lower limit or exceeds the upper limit, an interrupt event will be generated. There are two sets of high and low threshold registers, so both thresholds for proximity and ambient light can be observed in parallel. Beside this “normal” interrupt mode, an automatic mode is also available, which is called the logic output mode. This mode automatically pulls the interrupt pin low when an object exceeds the programmed upper threshold and also resets it if the lower threshold is exceeded. So no actions from the controller are needed if, for example, a smartphone is held close to an ear but quickly taken away (e.g. for a short look at the display). Offset During development, the application-specific offset counts for the sensor were determined. As previously mentioned, the offset count is affected by the components surrounding the VCNL4040, the window or cover being used, the distance from the sensor to the cover, and emitter intensity, which is controlled by the forward current. In the following example, with a cover over the sensor and setting the emitter current to 100 mA, the offset counts are 540 counts (fig. 22). Offset counts vary by application and can be anywhere from 0 counts to several thousand counts. It is important to note that the offset count may change slightly over time due to, for example, the window becoming scratched or dirty, or being exposed to high-temperature changes. If possible, the offset value should occasionally be checked and, if necessary, modified. Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application Time A: μC Sleep • Upper interrupt threshold = 550 • Lower interrupt threshold = 545 • PS_INT (1 : 1) = 0 • Interrupt flag = 0, interrupt line high • High limit (close) and low limit (away) flags = 0 16 bit value FFFF (65 535) Upper threshold: 0226h (550) Lower threshold: 0221h (545) (OC:540) Upper threshold Lower threshold Interrupt 0 flags t A t Time C: Upper Threshold Exceeded Time D: Number of Occurence > 4 • Interrupt is generated • Interrupt flag prox_th_top is set to 1 16 bit value FFFF (65 535) Upper threshold: 0226h (550) Lower threshold: 0221h (545) (OC:540) Upper threshold Lower threshold Interrupt 0 flags A B C t D 0 t Fig. 23 0 By setting the number of occurences before generating an interrupt to 4, a single proximity value above or below the thresholds will have no effect, as shown in fig. 24. 16 bit value Time B: Single Event Above Upper Threshold • Lower interrupt threshold = 545 • Upper interrupt threshold = 550 • Interrupt flags = 0, interrupt line high FFFF (65 535) Upper threshold: 0226h (550) Lower threshold: 0221h (545) (OC:540) Upper threshold A In smartphone applications, the bottom threshold will also be programmed and waits for an interrupt signal. The prox_threshold_bottom should be set to “1” now and the prox_threshold_top cleared by entering a “1” again, since the phone is already next to the user’s ear. A lower threshold will occur when the phone call is complete and the phone is brought away from the user’s ear, and the backlight and touchscreen will be turned back on. For this example, the upper threshold will only be set to 560 counts. The lower threshold is set to 545 counts; a value that is higher than the offset but low enough to indicate the removal of the phone from the user’s ear. Lower threshold Interrupt 0 flags Fig. 25 t B Time F: Call Ends • Interrupt is generated • Interrupt flag prox_th_bottom is set to 1 • Interrupt line goes low t 0 16 bit value Fig. 24 Upper threshold: 0226h (550) Lower threshold: 0221h (545) (OC:540) Upper threshold Lower threshold Interrupt 0 flags A B C D E F t t 0 Fig. 26 Revision: 30-Nov-15 Document Number: 84307 10 For technical questions, contact: [email protected] 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 APPLICATION NOTE A smartphone application will use a proximity sensor to detect when the phone is brought to the user’s ear and disable the touchscreen and turn off the backlight. For other applications, such as automatic dispensing, the soap or towel will be dispensed. FFFF (65 535) Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application Time E: μC Awake, Threshold Reset • Interrupt is cleared • Interrupt flag prox_th_top programmed to 1 • Lower interrupt threshold = 545 • Interrupt flag prox_th_bottom programmed to 1 • High limit and low limit flags = 0 16 bit value FFFF (65 535) Upper threshold: 0226h (550) Lower threshold: 0221h (545) (OC:540) Upper threshold Lower threshold Interrupt 0 flags A B C D E t t 0 Fig. 27 Some measurements and features are shown with the demo tool and demo software with a cover glass at about a 5 mm distance. 1. Proximity set-up with 2T wide pulses, 100 mA emitter current, and a duty cycle of 1/80, which results in about 10 measurements per second. Document Number: 84307 11 For technical questions, contact: [email protected] 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 APPLICATION NOTE Revision: 30-Nov-15 Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application 2. If a hand or skin now comes as close as 5 cm, these 540 counts rise up to more than 550 counts. 3. Here the thresholds are programmed as 550 for the upper and 545 for the lower. To see these, both “Show” buttons are activated. The presence of an object should only be recognized when four consecutive measurements are above that threshold. Document Number: 84307 12 For technical questions, contact: [email protected] 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 APPLICATION NOTE Revision: 30-Nov-15 Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application 4. Just one or two measurements above the threshold will not activate the interrupt. 5. With more than four measurements above the threshold, however, the interrupt is pulled low, as indicated by the red LED on the demo board and the red light: “Int Pin Triggered PS.” Document Number: 84307 13 For technical questions, contact: [email protected] 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 APPLICATION NOTE Revision: 30-Nov-15 Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application 6. The cancellation feature is used below. The “before seen” offset counts are subtracted. To do so, the value of 540 is entered for register number 05 = Prox_Cancellation. 7. The “before seen” measured proximity result data of 541 is now 541 - 540 = 1. Also, the thresholds are now 540 counts lower. The higher threshold is 10 and lower is just 5. Document Number: 84307 14 For technical questions, contact: [email protected] 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 APPLICATION NOTE Revision: 30-Nov-15 Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application If one chooses “logic mode” now and redefines the high threshold to 10 and low threshold as 5... … the interrupt will indicate the rise above the upper threshold and will also automatically be cleared when it falls below the lower threshold. One special feature for faster proximity measurements is also implemented, which is called “smart persist.” This feature reduces the total reaction time until the interrupt is set to active, although four consecutive measurements should be above (or below) the defined threshold for safe acknowledgment. Document Number: 84307 15 For technical questions, contact: [email protected] 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 APPLICATION NOTE Revision: 30-Nov-15 Application Note www.vishay.com Vishay Semiconductors Designing the VCNL4040 into an Application Without “smart persist”, but with programmed hits above the defined threshold set to four, it will take four times the time of PS_Duty. With PS_Duty set to 1/320 this would be 4 x 38.4 ms. 4 hits needed ... where without smart persist it takes this four times of being above the defined threshold before the interrupt goes low. 4 hits needed: total time = 115.2 ms With “smart persist” activated (bit 4 of PS_CONF3): REGISTER: PS_CONF3 DESCRIPTION REGISTER: PS_CONF3 COMMAND CODE: 0x04_L (0x04 DATA BYTE LOW) Command Bit Reserved 7 Reserved 6:5 PS_SMART_PERS 4 Description 0 (0 : 0) 0 = disable; 1 = enable PS smart persistence or within the demo-tool: The total needed time is reduced to just one time of 38.5 ms, followed by three times of just 1.3 ms between the next three measurements, for a total of 39.7 ms. Remark: With “smart persist” enabled, there will always be four pulses shortly after each other, whether PS_PERS is set to 2, 3, or 4. Revision: 30-Nov-15 Document Number: 84307 16 For technical questions, contact: [email protected] 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 APPLICATION NOTE 4 hits needed: total time = 38.4 ms + 3 x 1.3 ms = 39.7 ms With smart persist enabled, the interrupt is set after four measurements shortly after each other...