SBOS993A December   2021  – December 2022 OPT4001

PRODUCTION DATA  

  1.   1
  2. Features
  3. Applications
  4. Description
  5. Revision History
  6. Description (continued)
  7. Pin Configuration and Functions
  8. Specifications
    1. 7.1 Absolute Maximum Ratings
    2. 7.2 ESD Ratings
    3. 7.3 Recommended Operating Conditions
    4. 7.4 Thermal Information
    5. 7.5 Electrical Characteristics
    6. 7.6 Typical Characteristics
  9. Detailed Description
    1. 8.1 Overview
    2. 8.2 Functional Block Diagram
    3. 8.3 Feature Description
      1. 8.3.1 Spectral Matching to Human Eye
      2. 8.3.2 Automatic Full-Scale Range Setting
      3. 8.3.3 Output Register CRC and Counter
        1. 8.3.3.1 Output Sample Counter
        2. 8.3.3.2 Output CRC
      4. 8.3.4 Output Register FIFO
      5. 8.3.5 Threshold Detection
    4. 8.4 Device Functional Modes
      1. 8.4.1 Modes of Operation
      2. 8.4.2 Interrupt Modes of Operation
      3. 8.4.3 Light Range Selection
      4. 8.4.4 Selecting Conversion Time
      5. 8.4.5 Light Measurement in Lux
      6. 8.4.6 Light Resolution
    5. 8.5 Programming
      1. 8.5.1 I2C Bus Overview
        1. 8.5.1.1 Serial Bus Address
        2. 8.5.1.2 Serial Interface
      2. 8.5.2 Writing and Reading
        1. 8.5.2.1 High-Speed I2C Mode
        2. 8.5.2.2 Burst Read Mode
        3. 8.5.2.3 General-Call Reset Command
        4. 8.5.2.4 SMBus Alert Response
    6. 8.6 Register Maps
      1. 8.6.1 ALL Register Map
  10. Application and Implementation
    1. 9.1 Application Information
    2. 9.2 Typical Application
      1. 9.2.1 Electrical Interface
        1. 9.2.1.1 Design Requirements
          1. 9.2.1.1.1 Optical Interface
        2. 9.2.1.2 Detailed Design Procedure
          1. 9.2.1.2.1 Optomechanical Design (PicoStar Variant)
          2. 9.2.1.2.2 Optomechanical Design (SOT-5X3 Variant)
        3. 9.2.1.3 Application Curves (PicoStar Variant)
    3. 9.3 Do's and Don'ts
    4. 9.4 Power Supply Recommendations
    5. 9.5 Layout
      1. 9.5.1 Layout Guidelines
      2. 9.5.2 Layout Example
        1. 9.5.2.1 Soldering and Handling Recommendations (SOT-5X3 Variant)
        2. 9.5.2.2 Soldering and Handling Recommendations (PicoStar Variant)
          1. 9.5.2.2.1 Solder Paste
          2. 9.5.2.2.2 Package Placement
          3. 9.5.2.2.3 Reflow Profile
          4. 9.5.2.2.4 Special Flexible Printed-Circuit Board (FPCB) Recommendations
          5. 9.5.2.2.5 Rework Process
  11. 10Device and Documentation Support
    1. 10.1 Documentation Support
      1. 10.1.1 Related Documentation
    2. 10.2 Receiving Notification of Documentation Updates
    3. 10.3 Support Resources
    4. 10.4 Trademarks
    5. 10.5 Electrostatic Discharge Caution
    6. 10.6 Glossary
  12. 11Mechanical, Packaging, and Orderable Information
    1. 11.1 Tape and Reel Information
    2. 11.2 Package Option Addendum

Package Options

Mechanical Data (Package|Pins)
Thermal pad, mechanical data (Package|Pins)

Light Measurement in Lux

The OPT4001 device measures light and updates output registers with proportional ADC codes. Output of the device is represented by two parts (i) 4 bits of EXPONENT and (ii) 20 bits of MANTISSA. This arrangement of binary logarithmic full-scale range with linear representation with in a range helps in covering a large dynamic range of measurements. MANTISSA represents the linear ADC codes proportional to the measured light within a given full-scale range and the EXPONENT represents the current-full scale range selected. The selected range can be automatically determined by the auto-range selection logic or manually selected as per Table 8-3.

Lux level can be determined using the following equations:

Equation 1. MANTISSA=(RESULT_MSB<<8) + RESULT_LSB

or

Equation 2. MANTISSA=(RESULT_MSB x 2^8) + RESULT_LSB

where RESULT_MSB, RESULT_LSB and EXPONENT are parts of the output register

RESULT_MSB register carries the most significant 12 bits of the MANTISSA and RESULT_LSB register carries the least significant 8 bits of the MANTISSA. MANTISSA is then computed using the above equations to get the 20 bit number. EXPONENT is directly read from the register which is 4 bits.

Once the EXPONENT and MANTISSA portions are calculated the linearized ADC_CODES is calculated using the following equation:

Equation 3. ADC_CODES = (MANTISSA<<E)

or

Equation 4. ADC_CODES = (MANTISSA x 2^E)

With maximum value for register E being 8 ADC_CODES is effectively a 28 bit number. The semi-logarithmic numbers have been converted to a linear ADC_CODES representation, which is simple to convert to lux given by the following formula

Equation 5. lux = ADC_CODES x 312.5E-6 for the PicoStar™ variant
Equation 6. lux = ADC_CODES x 437.5E-6 for the SOT-5X3 variant

The MANTISSA and ADC_CODES are large numbers with 20 and 28 bits required to represent them. While developing firmware or software for these calculations, allocating appropriate data types to prevent data overflow is important. Some explicit typecasting to a larger data type such as 32 bit representation before left shift operation (<<) operations is recommended.

Threshold Detection Calculations

Threshold result registers THRESHOLD_H_RESULT and THRESHOLD_L_RESULT are 12 bit, while threshold exponent registers THRESHOLD_H_EXPONENT and THRESHOLD_L_EXPONENT are 4 bits. Since threshold is compared at linear ADC_CODES, the threshold registers are padded with zeros internally as shown to compare with the ADC_CODES

Equation 7. ADC_CODES_TH = THRESHOLD_H_RESULT << (8 + THRESHOLD_H_EXPONENT)

or

Equation 8. ADC_CODES_TH = THRESHOLD_H_RESULT x 2^(8 + THRESHOLD_H_EXPONENT)

and

Equation 9. ADC_CODES_TL = THRESHOLD_L_RESULT << (8 + THRESHOLD_L_EXPONENT)

or

Equation 10. ADC_CODES_TL=THRESHOLD_L_RESULT x 2^(8 + THRESHOLD_L_EXPONENT)

Threshold are then compared as shown to detect fault events.

Equation 11. If ADC_CODES < ADC_CODES_TL a fault low is detected

and

Equation 12. If ADC_CODES > ADC_CODES_TH a fault high is detected

Based on the FAULT_COUNT register setting, with consecutive fault high or fault low events, respective FLAG_H and FLAG_L registers are set, more details of which can be found in Section 8.4.2. Understanding the relation between THRESHOLD_H_EXPONENT, THRESHOLD_H_RESULT, THRESHOLD_L_EXPONENT, THRESHOLD_L_RESULT and the output registers is important to be able to set appropriate threshold based on application needs.