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: application questions

Part Number: OPT3101

Hi expert,

We have 2 questions on OPT3101:

1. For estimating the phase environment coefficient, what is the data on the x axis? If the light intensity is measured by other instruments, what is the coefficient change caused by the scaling of the x axis?

2. What is the reason for choosing halogen lamps? Is it because the luminescence of halogen lamps is stable or is it wavelength-differentiated?

Thanks!

Joyce

  • Joyce,

     The idea of using a light measuring device is to increase the light levels higher than indoor ambient light, closer to indirect sunlight levels in lux. This is to help with ambient light off set correction using in the calibration method. A Halogen light is recommended because it is the closest man made light to imitating the sun. It has a wider bandwidth and peaks that resemble natural sunlight. 

    I don't understand your reference to the x axis unless it is in the GUI Latte. It is based on time or number of samples. 

  • Hi Gordon,

    Thanks for your reply. We also met an issue that, we put the device in a 70-degree incubator. After one night, the temp value (from framedata.tmain) remained roughly unchanged at 2864. What is the reason for this? What does 2864 mean?

    Thanks!

    Joyce

  • Here is the screenshot from customer:

  • Joyce,

    TMAINC is the actual temperature inside of the OPT3101. it is based on 1degree C resolution and 1degree C accuracy. Because the controller is non floating point there are no digits below the decimal point. TMAIN is a calculated temperature value to get better resolution and is used in all calculations.

    The conversion formula for TMAIN from TMAINC:

    Temperature (°C) = TMAINC = (TMAIN / 8) – 256

    This is covered in the data sheet for more reference. 

  • Hi Gordon

    Here I have a few questions about performance and some printed data to consult.

    1.After 5 calibration steps, I conducted relevant tests on the accuracy and repeatability of the ranging. Figure 1 and Figure 2 below are my initialization Settings, and only TX0 is used on the hardware. Figure 3 shows the curve tested by us. The horizontal coordinate is the actual physicaldistance (unit: mm), and the vertical coordinate is the distance read by opt3101 (phase*0.23). At close range, the accuracy and repeatability of the range is good, but the performance at long distance is not very good. According to the upper and lower limits of my automatic HDR design, the white detection object is 150mm-10000mm, and the lighting driver uses a higher current (31*5.6mA). Why is there such a difference in performance between close and long distance? Figure 4 shows the maximum - minimum values of the distance read at each distance(the actual physical distance will be slightly biased).

    2.Apply this->measureIllumCrosstalkSet(true); When the function is calibrated for illumination crosstalk, what does the magnitude variable mean and why the value I get is very strange, as shown in Figure 5. (You can only focus on TX0 data, only TX0 is used)

    3.When performing crosstalk lighting calibration and phase offset calibration, do you need to add a lens on the photodiode and laser?

  • Hi Gordon,

    Just one more question to add

    1.envController.setTargetDistance(refDistanceInMM); This function is an empty function, can I manually move the white object to the distance I need (between 16000 and 24000 amplitude), and offset the large current and the small current separately. measurePhaseOffsetSet(true); Under this function, when c1=0 and c1=1, will opt3101 automatically switch the size current? Can I distinguish the two cases manually? When c1=0, it is a small current and 150mm aluminum plate is used for calibration? When c1=1, it is a high current and is calibrated with a white reflector at 150mm. (can meet the amplitude between 16000 and 24000 conditions)

    Thank!

  • Meiling,

      You will have 4 currents for the calibration. You will manually set each current, and use white or black backgrounds. Adjust the distance until you achieve the amplitude code between 16000 and 24000. I try for 20000 for best accuracy. Enter the information for all 4 currents and move to the calibration procedure. When asked place the background at the predetermined distance for the actual clibration. See below. 

    In HDR mode you will have 4 currents. In HDR mode, the current can switch between 2 current settings on one TX channel, and with super-HDR, TX1 can be used to add 2 more current settings.

    The currents are set in the Configurator tool based on the design of your system. Then output the cpp by selecting the create configuration file in the lower right corner. Replace the existing "OPT3101_configuration.cpp" with the new file.

    You need to determine the correct distances for each current. The documentation recommends doing phase offset calibration at a target distance where the amplitude is between 16000-24000. The preset values in the SDK are arbitrary and definitely don’t follow this rule. The values are set like below in OPT3101Coefficients.cpp.

     

    void environmentalController::manuallySetReferenceDistances(){

           this->refDistancesInMM[0][0]=50;

           this->refDistancesInMM[0][1]=120;

           this->refDistancesInMM[1][0]=60;

           this->refDistancesInMM[1][1]=150;

           this->refDistancesInMM[2][0]=0;

           this->refDistancesInMM[2][1]=0;

    }

     

    The indexing on refDistancesInMM is [Tx channel] and [current setting, 0 being H and 1 being L]. In order for them to find the proper distances to set for each current and tx setting, you will need to change your configuration to do just one current, flash that, and see at what distance you can get 16000-24000 codes for that particular current. At higher currents, that distance will be pretty far with a white background, so you can use darker backgrounds in order to get lower amplitude settings, but they’ll need to remember what current settings used what color background when you do the calibration.

     Once you know these distances, you can enter that into OPT3101Coefficients.cpp and then use super-HDR configuration and perform the calibration.

  • Hi Gordon

    Here I have a few questions about performance and some printed data to consult.

    1.After 5 calibration steps, I conducted relevant tests on the accuracy and repeatability of the ranging. Figure 1 and Figure 2 below are my initialization Settings, and only TX0 is used on the hardware. Figure 3 shows the curve tested by us. The horizontal coordinate is the actual physicaldistance (unit: mm), and the vertical coordinate is the distance read by opt3101 (phase*0.23). At close range, the accuracy and repeatability of the range is good, but the performance at long distance is not very good. According to the upper and lower limits of my automatic HDR design, the white detection object is 150mm-10000mm, and the lighting driver uses a higher current (31*5.6mA). Why is there such a difference in performance between close and long distance? Figure 4 shows the maximum - minimum values of the distance read at each distance(the actual physical distance will be slightly biased).

    2.Apply this->measureIllumCrosstalkSet(true); When the function is calibrated for illumination crosstalk, what does the magnitude variable mean and why the value I get is very strange, as shown in Figure 5. (You can only focus on TX0 data, only TX0 is used)

    3.When performing crosstalk lighting calibration and phase offset calibration, do you need to add a lens on the photodiode and laser?

    Thank!

  • Hi Meiling,

    Gordon is out of office but will be able to answer your questions when he returns next week.

    Best regards,
    Nicole

  • Meiling,

      You indicate that you only use TX0. In order to get distances up to 10000mm you will need Super HDR and all 4 currents. This will require calibration of all 4 currents in order to get accuracy to the required distance. Use the System Estimator to understand your optics, mode and distance. It will also define your accuracy if setup correctly.

    system estimator tool:  http://www.ti.com/tool/OPT3101ESTIMATOR-SW

  • Hi Gordon

    We used the HDR mode, in the case of only TX0, 10m data can be measured, but the repetition accuracy after 4m is not very good. TX0 alone cannot use the super HDR mode。

  • Meiling,

      You are correct. HDR uses only TXO with 2 currents. Super HDR uses TXO and TX1 with 4 currents. I do not believe that it is possible to get more than 5 meters with accuracy using only HDR. It will take Super HDR to get 10m -15m distance with accuracy.

    I recommend using the system estimator tool:  http://www.ti.com/tool/OPT3101ESTIMATOR-SW so that you will know what kind of accuracy and distances with your optics.

  • Gordon,

    In calibrationSession_firstTimeBringUp, the calibration file requires an amplitude of less than 30 to be measured, but based on the printed information from this function, there is no information about the amplitude

  • Meiling,

      The first calibration is internal and helps to cancel out electrical and optical crosstalk. By covering the photodiode with black out material, like black tape or using an actual black out tape, it is possible to measure the noise that is left over after the photodiode is cut off. The system corrects for electrical crosstalk and optical cross talk. When the corrections have been completed and applied, read the amplitude level. It should be less than 30 LSB codes. This is a good level to start with because it indicates that you have low noise in the system. If you still have more than 30 LSB codes of amplitude, then you need to look at your system. It may indicate a problem. Read out the amplitude register to see this value. The EVM GUI provides this value to you. 

  • Gordon,

      I used HDR mode. After calibration, I found that the phase at 0~1m was not monotonously increasing. Can you tell me which calibration might have a problem?

  • Meiling,

      I pointed this out a little bit ago. Make sure you pick distances that produce 16000-24000 LSB codes. for each distance. Typically this is where you will see this kind of error. Remember you can change the reflectivity of the back ground, either white or black to get the correct amplitude while determining the distances. See below. 

      You will have 4 currents for the calibration. You will manually set each current, and use white or black backgrounds. Adjust the distance until you achieve the amplitude code between 16000 and 24000. I try for 20000 for best accuracy. Enter the information for all 4 currents and move to the calibration procedure. When asked place the background at the predetermined distance for the actual clibration. See below. 

    In HDR mode you will have 4 currents. In HDR mode, the current can switch between 2 current settings on one TX channel, and with super-HDR, TX1 can be used to add 2 more current settings.

    The currents are set in the Configurator tool based on the design of your system. Then output the cpp by selecting the create configuration file in the lower right corner. Replace the existing "OPT3101_configuration.cpp" with the new file.

    You need to determine the correct distances for each current. The documentation recommends doing phase offset calibration at a target distance where the amplitude is between 16000-24000. The preset values in the SDK are arbitrary and definitely don’t follow this rule. The values are set like below in OPT3101Coefficients.cpp.

     

    void environmentalController::manuallySetReferenceDistances(){

           this->refDistancesInMM[0][0]=50;

           this->refDistancesInMM[0][1]=120;

           this->refDistancesInMM[1][0]=60;

           this->refDistancesInMM[1][1]=150;

           this->refDistancesInMM[2][0]=0;

           this->refDistancesInMM[2][1]=0;

    }