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: calibration question

Part Number: OPT3101

Hi Alex,

Hope you all is well.

I have meeting some question about calibration using SDK, so I am asking you for help.

(1) For step3: CalibrationPhaseTemp

       I should select and set reference distance so that the amplitude of the system for this particular TX and register set configurations measures between 16K and 24K. I want to know how can I know the amplitude is between 16~24K. If I set a distance which is lower than 16K, I need to adjust, so how can I know the distance was ok?

 (2) For step4: CalibrationPhaseAmbient

       For this step, should I choose every TX for calibration or I just choose any channel for calibration?

(3) Which step should I use all channel for calibration?

Could you help me answer these questions, most of them was also plaguing customers.

Thank you very much.

Looking forward to your reply.

  • Hi Joe,

    All is well! Hope you are well too.

    1) You can either move the target closer, make the target bigger, or make the target more reflective. retroreflective tape can also be used to greatly increase amplitude as it returns most of the received light back to the photodiode

    2) Ambient is a characteristic of the photodiode so TX channel should not matter. You can check multiple tx but should be same result for all

    3) All other steps: xtalk offset, phase offset, xtalk temp, phase temp need to be done for each channel. Note that only channels used in the design need to be calibrated. As well these need to be done for each current setting used as well. Please see SDK calibration functions and documentations for more details here.

    Best,

    Alex

  • Hi Alex

    Thanks for your reply.  Got it. Another question for coefficient calculate.

    How to use the test data to calculate the ''CrosstalkTempCoff''  ''PhaseTempCoff''  ''PhaseAmbientCoff''?

    I have test the temperature  crosstalk, the data is in the txt file, the result is all the coffI and coffQ equal 0.00. The result is correct?  I am confused about this!  The ''CrosstalkTempCoff'' need manually calculate? I see the firmware can calculate this but the function''calibrationSession_perDesignCalibrationCrosstalkTemp()'' doesn't use the below function.

     

    1. temp crosstalk test.txt
    Make sure that photodiode is very well covered
    Set Chamber Temperature To:25/C
    If done, please input <OK> to continue
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=2699
    Q=2136
    xtalkScale=0
    illumXtalk=1
    illumScale=3
    illumDac=18
    tmain=2344
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=10.54
    ----------------------
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=14916
    Q=7415
    xtalkScale=0
    illumXtalk=1
    illumScale=0
    illumDac=31
    tmain=2360
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=53.01
    ----------------------
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=3593
    Q=-2803
    xtalkScale=0
    illumXtalk=1
    illumScale=3
    illumDac=18
    tmain=2344
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=15.18
    ----------------------
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=18019
    Q=-27518
    xtalkScale=0
    illumXtalk=1
    illumScale=0
    illumDac=31
    tmain=2360
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=105.92
    ----------------------
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=6132
    Q=-7839
    xtalkScale=0
    illumXtalk=1
    illumScale=3
    illumDac=18
    tmain=2344
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=31.96
    ----------------------
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=14565
    Q=-29909
    xtalkScale=1
    illumXtalk=1
    illumScale=0
    illumDac=31
    tmain=2360
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=213.50
    ----------------------
    Set Chamber Temperature To:70/C
    If done, please input <OK> to continue
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=3526
    Q=2652
    xtalkScale=0
    illumXtalk=1
    illumScale=3
    illumDac=18
    tmain=2680
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=12.86
    ----------------------
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=17389
    Q=9131
    xtalkScale=0
    illumXtalk=1
    illumScale=0
    illumDac=31
    tmain=2690
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=61.10
    ----------------------
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=4221
    Q=-2355
    xtalkScale=0
    illumXtalk=1
    illumScale=3
    illumDac=18
    tmain=2680
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=15.53
    ----------------------
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=19937
    Q=-27583
    xtalkScale=0
    illumXtalk=1
    illumScale=0
    illumDac=31
    tmain=2688
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=108.69
    ----------------------
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=6103
    Q=-7591
    xtalkScale=0
    illumXtalk=1
    illumScale=3
    illumDac=18
    tmain=2680
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=30.62
    ----------------------
    ----------------------
    Crosstalk Class Report
    ----------------------
    I=15155
    Q=-30586
    xtalkScale=1
    illumXtalk=1
    illumScale=0
    illumDac=31
    tmain=2688
    tillum=0
    shiftIllumPhase=0
    commonScale=0
    Magnitude=220.10
    ----------------------
    Set Chamber Temperature To:25/C
    If done, please input <OK> to continue
    --------------------------------
    Crosstalk Temp Coff Class Report
    --------------------------------
    coffI=-0.00
    coffQ=-0.00
    coffIReg=0
    coffQReg=0
    commonScale=0
    --------------------------------
    --------------------------------
    Crosstalk Temp Coff Class Report
    --------------------------------
    coffI=-0.00
    coffQ=-0.00
    coffIReg=0
    coffQReg=0
    commonScale=0
    --------------------------------
    --------------------------------
    Crosstalk Temp Coff Class Report
    --------------------------------
    coffI=-0.00
    coffQ=-0.00
    coffIReg=0
    coffQReg=0
    commonScale=0
    --------------------------------
    --------------------------------
    Crosstalk Temp Coff Class Report
    --------------------------------
    coffI=-0.00
    coffQ=0.00
    coffIReg=0
    coffQReg=0
    commonScale=0
    --------------------------------
    --------------------------------
    Crosstalk Temp Coff Class Report
    --------------------------------
    coffI=0.00
    coffQ=-0.00
    coffIReg=0
    coffQReg=0
    commonScale=0
    --------------------------------
    --------------------------------
    Crosstalk Temp Coff Class Report
    --------------------------------
    coffI=-0.00
    coffQ=0.00
    coffIReg=0
    coffQReg=0
    commonScale=0
    --------------------------------
    

    I think these calibration and coefficient calculate is very important , and it is for the manuallySet of factory calibration. Is it right?

    Thanks, looking forward to your reply.

    Best regards

    Joe

  • Hi Joe,

    The line fit to the data has to be performed externally to determine the coefficient. See Figure 3. Illumination crosstalk coefficient determination in https://www.ti.com/lit/ug/slau791/slau791.pdf?ts=1636587921013

    Does this help?

    Best,

    Alex

  • Hi Alex,

    Thanks and hope you all is well.

    For calibration, I have two question for the coefficient calculation:

    (1) CrosstalkTempCoff calculation:

    You told me see the  figure3 , but the coefficient is not suitable for SDK. What is the method of the below picture, the "b=42.47", I am afraid that is not correct, I see the SDK, the coffI and coffQ are between 0~1. So this method is just coffI=(phase1-phase2)/(temp1-temp2) ? 

    The method in the above picture is different from the below picture about the CrosstalkTempCoff calculation


    So which method should I calculate, I am so confused about this!

    (2)  PhaseAmbientCoff calculation

    How can I calculate for PhaseAmbientCoff? For this picture I can't see it use the "PWL", how should I choose the "splitsReg"? This method is also different from the SDK.

    So could tell the detailed method of these coefficient calculation? Why the pdf file and SDK are totally different for the calculation? The method of SDK has any function, I see these coefficient calculation has never used by the main.cpp

    I am very confused about these questions? Alex, could you take a moment to answer my questions patiently. That will be great helpful.

    Many thanks.

     

    Best regards

    Joe

  • Hi Joe,

    1) Please check the linked "how to calibrate document" as it addresses this question. Please see section 3.5: "The SDK uses simple 2 point data slope estimation methods for all the coefficients. This is just a example estimation for simplicity. In real life a more elaborate estimation is recommended using tools capable of plotting and straight line fitting. In the case of temperature coefficient estimation a simple linear fit is what is required, whereas in the case of the ambient coefficient a more complex 4 segment piece-wise-linear fit needs to be used. In the later sections some example plots and best line fits are shown."

    I also want to make sure, you will not copy the line fit from the document as this is example data, correct? Data will vary be design so customer will need to collect the data and perform the line fit to get the coefficients.

    2) We have a simplified calibration process in the SDK quick start users guide. Have you looked at this? When the SDK zip file is downloaded there is a pdf document included as well as python script for performing this piece wise linear fit (PLW). Depending on customer system and given number of questions, I may suggest to use the MSP430 launchpad calibration tool mode mentioned here as the process for calibration is more streamlined and easy with no code changed needed to the SDK.

    Best,

    Alex