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: The scale of raw I/Q-Phase

Part Number: OPT3101

I'm currently evaluating the precision of distance measure in weak amplitude.

I've took the raw data of I/Q-Phase and was expecting some linear data.

But they appeared like this:


(x-axis: amplitude; y-axis: i/q-phase)

And I was expecting this:


(x-axis: amplitude; y-axis: i/q-phase)

How to get the scale of the raw I/Q-Phase so I can adjust them to be linear over the amplitude like the graph above?

  • Hi Moses,

    Are you varying the distance in order to change the amplitude reading? Also, where are you getting the I/Q values from? The result will be reported in amplitude/phase format, are you converting from polar to cartesian to get this data?

    Thank you,

    Brent Elliott

  • I slide the target from lighter surface to darker surface to get a continuos data from strong amplitude to weak amplitude.

    I set IQ_READ_DATA_SEL to 2 for reading raw I/Q phase and read the raw value from register at 0x3B and 0x3C.

    I want to calculate the phase from raw I/Q-Phase and see how the phase changes if some offset is introduced to I/Q-Phase.

  • Sorry for frequent quetion. This is more urgent.

    In datasheet, P.57, it says:

    "This scale value is also used during any crosstalk calibration even if DIS_AUTO_SCALE = 0."

    I don't quite understand what does that mean.

    In illuminaction xtalk calib, would the value of I_PHASE_XTALK/Q_PHASE_XTALK changes in scale after adjusting FORCE_SCALE_VAL from 0 to 1?

    (The amp before calibrate is larger than 843, so I adjusted FORCE_SCALE_VAL from 0 to 1, according to sbau310, 4.2.3)

    I measured the I_PHASE_XTALK/Q_PHASE_XTALK when the temperature changes from -10 to 40C.
    I took the slope of "I_PHASE_XTALK vs TMAIN" and "Q_PHASE_XTALK vs TMAIN", and calculate the final value following the steps sbau310, 4.2.4, for writing to register of illumination xtalk calib.

    But even when I set all the register value well, the xtalk (amplitude when tx/rx is covered) increased repidly when I cool down the temp.


    (x-axis: Temp; y-axis: Amplitude)

    And I/Q-Phase increased as well when the temp is down.
      
    (x-axis: Temp; y-axis: I_PHASE/Q_PHASE)

    Is there any action need to be taken to scale I_PHASE_XTALK/Q_PHASE_XTALK back to correct value after adjusting FORCE_SCALE_VAL?
    How to get the correct I_PHASE_XTALK/Q_PHASE_XTALK and the sploes to calibrate illumination xtalk?

    (It looks like the slopes need to be multiplied by 2 and the I_PHASE_XTALK/Q_PHASE_XTALK keep unchanged?)

  • Hi Moses,

    Let me take some time to look over this. I'll reply by Friday.

    Thanks,

    Brent Elliott

  • Thanks.

    Since this is about illumination crosstalk temp correction. I'm wondering if the scaling method in sbau310, 4.2.4 is correct or not.

    I've tried to doubled the slopes and the xtalk became well calibrated (as shown in following blue line).


    (x-axis: Temp; y-axis: Amplitude)

    Doubled the slope makes the orange line become blue line which looks well calibrated.

    Since I have no clue about why doubling the slopes makes the xtalk calibrated. Maybe something wrong on the calculation mentioned in sbau310, 4.2.4, or maybe some other reason.
    It will be very helpful if you can check that for me.

  • Hi Moses,

    Regarding your previous reply,

    "In datasheet, P.57, it says:

    "This scale value is also used during any crosstalk calibration even if DIS_AUTO_SCALE = 0."

    I don't quite understand what does that mean."

    FORCE_SCALE_VAL is by default 2^6 and it is applied to improve the measurement accuracy. If you disable the auto-scaling with DIS_AUTO_SCALE, you can select your own scale value with FORCE_SCALE_VAL. However, it DIS_AUTO_SCALE is set to 0 and use auto-scale, the default 2^6 will still be used as the baseline scale value.

    Changing FORCE_SCALE_VAL form 0 to 1 may change the I_PHASE_XTALK/Q_PHASE_XTALK values since there will no longer be auto-scaling but only a fixed scale value.

    Are you performing new calibrations with these register changes (FORCE_SCALE_VAL etc.)? If you are applying these register values on existing calibration values you may not get accurate results since the original calibration data would have been taken with different settings.

    Thank you,

    Brent Elliott

     

  • I didn't disable the auto scaling, the DIS_AUTO_SCALE is set to 0. And I performed all the calibration after changing FORCE_SCALE_VAL to 1.

    Do you mean the auto scaling of I_PHASE_XTALK/Q_PHASE_XTALK is disabled if FORCE_SCALE_VAL is set to 1?

    Should I scale I_PHASE_XTALK/Q_PHASE_XTALK by 2^1 (since FORCE_SCALE_VAL  is 1) manually when calculating the slope of I_PHASE_XTALK/Q_PHASE_XTALK over temp?

    Is setting FORCE_SCALE_VAL to 1 the only way to deal with the situation when the amp brefore calib is over 843?

  • Hi Moses,

    I think I may have misinterpreted. For the crosstalk calibration, it will use the FORCE_SCALE_VAL regardless of the DIS_AUTO_SCALE value.

    Referencing the SDK, if the illumination crosstalk is over 800 codes after masking the PD, you should increase the force_scale_val by 1 before running the full xtalk calibration over temp.

    Thank you,

    Brent Elliott

  • I increased the FORCE_SCALE_VAL to 1 at the beginning and then start running full xtalk calibration over temp. After the I_PHASE_XTALK/Q_PHASE_XTALK over temp are collected, should I scale I_PHASE_XTALK/Q_PHASE_XTALK by 2^1 when calculating the slope (IPHASE_XTALK_REG_HDRi_TXj/QPHASE_XTALK_REG_HDRi_TXj) ? Or just use the original I_PHASE_XTALK/Q_PHASE_XTALK value for slope without scaling?

    If I just use the I_PHASE_XTALK/Q_PHASE_XTALK value for slope without scaling, the calibrated result will be the orange line:

    The crosstalk increases when the temp decreases, which means it is not well calibrated.
    So I'm wondering if my method is correct or not.

  • Hi Moses,

    I'm not sure why exactly the I/Q phase results are not being scaled automatically, but you should calculate the slope using the scaled values so you get the blue line, since the blue line is a good calibration.

    Please look over 4.2.3 and 4.2.4 in the below document and let me know if you have any other questions.

    https://www.ti.com/lit/ug/sbau310/sbau310.pdf?ts=1686672739879&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FOPT3101

    Thank you,

    Brent Elliott

  • It looks like I should do experiment and decide which one is good.

    The document says FORCE_SCALE_VAL "This scale value is also used during any crosstalk calibration " so it should also affect the illumination crosstalk at room temp: IPHASE_XTALK_REG_HDRi_TXj / QPHASE_XTALK_REG_HDRi_TXj.
    But according to the result of room temp calibration, those parameters don't need to be adjusted. So I'm confused now.

    Since it is not recommended here to follow the instruction that is not documented (such as experiment result with very few samples). So a clarified solution will be very helpful to us.

    Thanks.

  • Hi Moses,

    I'm out of office for the rest of the week so I won't be able to get to this until next Monday. Sorry for the delay.

    Thank you,

    Brent Elliott

  • Hi Moses,

    Closing this post since we have moved discussion to new post. Please add any more follow ups to our current thread instead of this one please.

    Thank you,

    Brent Elliott