This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OPT3101: Using 10-bit external temperature sensor with OPT3101

Part Number: OPT3101
Other Parts Discussed in Thread: TMP102, ,

Hello there,

I am working on a custom two layer PCB board interfacing the OPT3101 IC with my PIC18F452 8-bit microcontroller from Microchip. My controller is communicating correctly with the OPT3101 IC. The issue is that i don't have the availability of a 12-bit external temperature sensor like TI's TMP102 sensor as used in the OPT3101 Evaluation Module for phase corrections since i'm trying to replicate the design of the EVM module in my custom board. 

I have a 10-bit temperature sensor available i.e. AD7414 from Analog Devices which also communicates in I2C protocol, same as TMP102. Is there any way to use my 10 bit temperature sensor with the OPT3101 IC since it only expects either 12-bit or 8-bit temperature data as mentioned in the datasheet?

Best Regards,

Rummaan Bin Amir

  • Hi Rummaan,

    I think your only options are to select 12 bit mode and see if it is interpreting the values correctly. Additionally I'd like to also note that there is a temp sensor internal to the OPT3101 that you can also use.

    Best,

    Alex
  • Thank you for your prompt response Mr. Alex. I have decided to exclude the 12 bit external temperature sensor from my design and use the internal one.

    Now i am using the OPT3101 IC with SFH4550 and SFH213FA as the transmitter and receiver respectively in my custom board, emulating the design of your OPT3101EVM evaluation module. I have perfomed all calibration steps apart from the phase ambient correction and the temperature correction related to that of the external temperature sensor. The calibration procedure's execution order has been according to the support document of your site titled sbau310. The rest of the registers have been loaded by following the order of the Latte Demo GUI Log provided in your software support section for the evaluation module.

    I have configured my OPT3101 for the Super-HDR mode with TX0 being the main driving channel for the LED with higher current support from TX1 just as configured and routed in your EVM module.

    Now when i read register 08h which contains the PHASE_OUT value, i get believable data upto the range of 40cm but with vast inconsistency. That is to say if i get the correct data for a distance of 30cm, then for 15 cm the PHASE_OUT values are not correct. What i am saying is that there is no linear scalability upto the range of 40 cm even though i get correct data for a distance of 30cm from within this range.

    When the target distance increases and the driving current switches to a higher current, the PHASE_OUT values get erroneous (PHASE_OUT value jumps from a correct value to a higher erroneous one e.g. for 30cm target (0x0500h) something correct value to abruptly at (0x0a00h) somehing for 45cm). The maximum PHASE_OUT that is somewhat correct is analogous to a distance of 95cm (0x1000h). If the target is placed beyond 1 meter, the PHASE_OUT data is a garbage value (0x0c00h) or near this value. Moreover, the PHASE_OUT value, whether be correct or not, keeps decreasing in the form of exponential decay, that is to say if i am getting correct value for a target distance of 30cm at power up, the same value will be decreased to that analogous to a distance of 20cm after about one minute and then stays at this value indefinitely.

    So to summarize, i need assistance in what step i may be doing wrong in the configuration of the super-hdr mode or in the calibration steps such that my PHASE_OUT values are erroneous (non-linear distance to PHASE_OUT scalability), even when they are correct at certain distances in the range of 25 to 35 cm.

    Anticipating your response in earnest.

    Regards,

    Rummaan Bin Amir
  • Please refer to my answer here, e2e.ti.com/.../2779516

    Best,

    Alex