World Smallest Time-of-Flight Ranging And Gesture .

2y ago
38 Views
2 Downloads
901.93 KB
26 Pages
Last View : 2d ago
Last Download : 3m ago
Upload by : Tia Newell
Transcription

UM2039User ManualWorld smallest Time-of-Flight ranging and gesture detection sensorApplication Programming InterfaceIntroductionVL53L0X is a ranging and gesture detection sensor.The purpose of this User Manual is to describe the Application Programming Interface(API), and the calibration procedures from a user perspective.The API is a turnkey solution. It consists of a set of C functions which enables fastdevelopment of end user applications, without the complication of direct multiple registeraccess. The API is structured in a way that it can be compiled on any kind of platformthrough a well isolated platform layer.The API package allows the user to take full benefit of VL53L0X capabilitiesFigure 1. VL53L0X ranging sensor moduleReferences1.June 2016VL53L0X Datasheet (DS11555)DocID029105 Rev 11/26www.st.com26

ContentsUM2039Contents1Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42Initial customer manufacturing calibration . . . . . . . . . . . . . . . . . . . . . . . 52.1Data init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2Static Init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3Reference SPADs calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.12.4Ref (temperature) calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4.12.5345Offset calibration procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Cross-talk calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.6.1Cover window impact on ranging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.6.2Cross-talk calibration distance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.6.3Cross-talk calibration procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Range profile phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.1Initialization/calibration phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103.2Ranging phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10System initialization/calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.1Data init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.2Static Init . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.3Load calibration data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.3.1Reference SPADs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.3.2Ref calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.3.3Offset calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.3.4Cross-talk correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.4Device mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.5Polling and interrupt mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Ranging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155.12/26Ref calibration procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Offset calibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.5.12.6Reference SPADs calibration procedure . . . . . . . . . . . . . . . . . . . . . . . . . 6Start a measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15DocID029105 Rev 1

UM203967Contents5.1.1Start measurement only . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155.1.2Start measurement and wait for data ready . . . . . . . . . . . . . . . . . . . . . . 155.1.3Start measurement, wait for data ready and report the data . . . . . . . . . 155.2Stop a measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155.3Get a result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.3.1Host polling to get the result status . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.3.2Get measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16API useful additional functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.1Overall timing budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.2Limit settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176.3Timed ranging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186.4API versions and product revision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186.5API state and API error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196.6I2C device address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.7Reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.8Interrupt settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Example API range profiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227.1High accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227.2Long range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227.3High speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238Acronyms and abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25DocID029105 Rev 13/2626

Overview1UM2039OverviewVL53L0X API is based on Photonic Abstraction Layer (PAL) specification. API is defined asthe implementation of the PAL.The API exposes high level functions to be used by the customer application to control thedevice.Note:4/26Full API documentation is available, as part of the API package, in chm and pdf formats.DocID029105 Rev 1

UM20392Initial customer manufacturing calibrationInitial customer manufacturing calibrationThere is an initial, once only, calibration step required that should be applied at customerlevel during the manufacturing process. This flow takes into account all parameters (coverglass, temperature & voltage) from the application.The customer manufacturing calibration flow is described in Figure 2 below.Figure 2. Customer manufacturing calibration flowDataInitDeviceinitialization 40ms*SPADscalibration 10ms*Temperaturecalibration 40ms*Offsetcalibration 300ms*CrossTalkcalibration rationdataCalibrationdataKeyHost actionCalibrationdata - HostHost calls APIfunctionTargetneededCalibrationData result* : Timings are given for information only, they can varydepending on the Host capabilitiesThe following sections detail the API function calls required to perform the initial systemcalibration.2.1Data initVL53L0X DataInit() function is called one time, and it performs the device initialization.To be called once and only once after device is brought out of reset.DocID029105 Rev 15/2626

Initial customer manufacturing calibration2.2UM2039Static InitVL53L0X StaticInit() function allows to load device settings specific for a given usecase.2.3Reference SPADs calibrationIn order to optimize the dynamic of the system, the reference SPADs have to be calibrated.This step is performed on the bare modules during Final Module Test at STMicroelectronics,and the calibration data (SPAD numbers and type) are stored into the device NVM.In case a cover glass is used on top of VL53L0X, the reference SPADs have to be recalibrated by the customer.Reference SPAD calibration needs to be done only once during the initial manufacturingcalibration, calibration data should then be stored on the Host.When calibration is performed and calibration data is available on the Host, the data can beloaded without re-performing the calibration.These functions can be called after VL53L0X StaticInit(). It has to be done before RefCalibration, VL53L0X PerformRefCalibration().2.3.1Reference SPADs calibration procedureNo particular conditions have to be used. The calibration does not require specific target orlighting conditions.The following procedure has to be performed: Call VL53L0X PerformRefSpadManagement()–This function outputs the number and type of reference SPADs to be used.–At the end of this function, the reference SPADs number and type is programmedin the device.Host has to store these 2 values. See Section 4.3.1 for loading calibration data fromHost.Note:If a highly reflective target is covering the VL53L0X module during reference SPADcalibration, too much signal will be received on the reference array and the calibration mayfail, reporting a ‘-50’ status code. In this case, user has to remove the target away fromdevice2.4Ref (temperature) calibrationRef calibration is the calibration of two parameters (VHV and phase cal) which aretemperature dependent. These two parameters are used to set the device sensitivity.Ref calibration allows the adjustment of the device sensitivity when temperature varies.Ref calibration must be performed during initial manufacturing calibration, it should beperformed again when temperature varies more than 8degC compared to the initialcalibration temperature.If temperature does not vary, the ref calibration data can be loaded without re-performingthe calibration procedure.6/26DocID029105 Rev 1

UM20392.4.1Initial customer manufacturing calibrationRef calibration procedureUser has two options:1.Perform the calibration after VL53L0X PerformRefSPADManagement,by callingVL53L0X PerformRefCalibration().2.If user wants to improve the boot time, they can load only the calibration parametersafter VL53L0X PerformRefSPADManagement by usingVL53L0X SetRefCalibration(). This assumes that user has previouslyperformed a calibration and stored the two parameters in the Host memory. SeeSection 4.3.2.There is no specific setup needed to perform ref calibration. It has only to be done beforeoffset and cross-talk calibrations, after Reference SPADs management and before the firstranging is performed.2.5Offset calibrationRange offset is performed during Final Module Test at STMicroelectronics, and the offset isstored into the device NVM.For some cases, it can appear that the value programmed in the NVM is not correct. Thiscan happen when the customer is using a cover window. In this case, ranging can beaffected by an offset, due to the cover window and so the customer should perform a newoffset calibration on its manufacturing line.2.5.12.6Offset calibration procedure Recommendation is to use a white (88%reflectance) target at 100mm, in a darkenvironment. Target distance can be changed depending on customer’s constraints,but it has to be chosen in the linear part of the ranging curve. Both Reference SPADs and Ref calibrations have to be performed before calling offsetcalibration. A dedicated API function has to be called to compute the offset:VL53L0X PerformOffsetCalibration(). The output of this function is the offset calibration value, in micrometers. Offset calibration value has to be stored into Host memory. See Section 4.3.3 forloading calibration data from Host.Cross-talk calibrationThis section presents the effect of the cover window on ranging, and proposes a method forcross-talk calibration.2.6.1Cover window impact on rangingThe ranging performance is dependent on the quality of the cover window. Figure 3 showsthe cover window impact on ranging with low, medium and high cross-talk.The ideal curve (with no cover window) is the green dotted line.DocID029105 Rev 17/2626

Initial customer manufacturing calibrationUM2039Figure 3. Cover window impact on rangingThe cross-talk correction is basically a weighted gain applied to the ranging data, based ona calibration result.Correcting low cross-talk is easier than correcting high cross-talk.2.6.2Cross-talk calibration distanceThe calibration distance is dependent on the quality of the cover window. Low cross-talk orhigh cross-talk calibration cannot be performed at the same distance.The starting point of the valid distance to perform cross-talk calibration is when the actualsignal starts to deviate from the ideal curve.If the cross-talk calibration is performed in the linear area of the ranging curve, thecorrection factor will be too low, and the correction will have almost no effect.The valid distance ends when the signal is starting to be too low (ranging distance starting todecrease).Figure 4: Cross-talk calibration valid distances gives an example of exclusion areas wherethe cross-talk correction should not be performed.In this figure, the valid distance for cross-talk calibration is from point A to point B.8/26DocID029105 Rev 1

UM2039Initial customer manufacturing calibrationFigure 4. Cross-talk calibration valid distances2.6.3Cross-talk calibration procedureThe following procedure has to be performed:Note: Perform Offset calibration, refer to Section 2.5: Offset calibration Choose the calibration distance, based on a ranging with cover window to be used, asdescribed in Section 2.6.2: Cross-talk calibration distance. Use a grey 17% reflectance target. Call the API calibration function: VL53L0X PerformXTalkCalibration(). The input of this function is the calibration distance in millimeters. The output is the cross-talk factor. This has to be stored on Host memory. The function applies and enables the cross-talk correction. Store the cross-talk factor on the Host memory. See Section 4.3.4 for loadingcalibration data from Host.The API function VL53L0X PerformXTalkCalibration() performs severalmeasurements, means and computation. Nothing has to be done on the Host side, exceptcalling this function, all is performed by the API.DocID029105 Rev 19/2626

Range profile phases3UM2039Range profile phasesThis section describes the 3 phases that are required to perform the first rangemeasurement after reset, using the VL53L0X.There are 3 phases: Initialization & load calibration data Ranging Digital housekeeping - see Section 6.2: Limit settings.3.1Initialization/calibration phaseThe initialization/calibration flow is described in Figure 5: Initialization flow on page 11.All initialization functions are defined in Section 4: System initialization/calibration onpage 13.initialization/calibration phase should be run only after reset or system/setup change.3.2Ranging phaseThe ranging flow is described in Figure 6: VL53L0X API ranging flow on page 12.The first range measurement (after reset) has to be preceded by an initialization andcalibration flow.Basic functions used in the ranging flow are described in Section 5: Ranging on page 15.10/26DocID029105 Rev 1

UM2039Range profile phasesFigure 5. Initialization flowDataInitDeviceinitialization 40ms*Calibration dataloading 1ms*System settings ationdataCalibrationdataAdditional orOptional SettingsSetDeviceModeSetGPIORANGINGKeyHost actionHost calls APIfunctionCalibrationdata - Host* : Timings are given for information only, theycan vary depending on the Host capabilitiesDocID029105 Rev 111/2626

12/26DocID029105 Rev 1HOST gingMeasurementDataHOST GNGINTERRUPTINTDataEndInterrupt clearedataCONTINUEDataGetRangingMeasu rementDataGetRangingMeasurementDInterrupt receivedStartContinuousPolling/interrup tCONTINUOUS & TIMEDClear interruptData1- StartSingleMeas2- WaitDataReady(on Ranging Status)3- GetValueAPI POLLINGCONTINUOUS /SINGLEDataGetRangingMeasu rementData1- StartSingleMeas2- WaitDataReady(on Ranging Status)API POLLINGHOST / APIStartSingleRangingHOST POLLINGGetRangingMeasu rementDataDataData resultPOLLING / INTERRUPTHOST POLLINGfunctionHost calls APIGetMeasuremenDataReadyPOLLINGSINGLEHost actionKeyInterru pt clearedDataGetRangingMeasu remenDataInterrupt receivedStartSingleMeasINTERRUPTAPI internal actionRange profile phasesUM2039Figure 6. VL53L0X API ranging flow

UM20394System initialization/calibrationSystem initialization/calibrationThe following section shows the API function calls required to perform the systeminitialization, before starting the first range measurement after reset.4.1Data initVL53L0X DataInit() function is called one time, and it performs the device initialization.To be called once and only once after device is brought out of reset.4.2Static InitVL53L0X StaticInit() function allows to load device settings specific for a given usecase.4.3Load calibration data4.3.1Reference SPADsVL53L0X SetReferenceSpads() and VL53L0X GetReferenceSpads() can be usedto set/get the number and type of reference SPADs.If the calibration has not been performed (usingVL53L0X PerformRefSpadManagement()), or if the Host has not programmed thenumber and type of SPADs (using VL53L0X SetReferenceSpads()),VL53L0X GetReferenceSpads() will return the number and type of reference SPADsprogrammed into the device NVM.4.3.2Ref calibrationLoad calibration parameters by using VL53L0X SetRefCalibration(). This assumesthat user has previously performed a calibration and stored the two parameters in the Hostmemory.4.3.3Offset calibrationHost has to load the offset calibration data at each startup of the device.The offset value expressed in micrometers has to be set in the device using API function:VL53L0X k correctionIn a standard usage, the Host will have to program the cross-talk correction factor andenable the cross-talk correction.The correction factor is the result of the calibration and has to be stored in the Host.DocID029105 Rev 113/2626

System initialization/calibrationUM2039Cross-talk correction value can be set using the API functionVL53L0X SetXTalkCompensationRateMegaCps(), and is enabled usingVL53L0X SetXTalkCompensationEnable().4.4Device modeVL53L0X SetDeviceMode() selects one of the following modes of operation: Single Ranging Continuous Ranging Continuous Timed RangingVL53L0X GetDeviceMode()is used to know which mode is actually programmed.These modes are described in the VL53L0X datasheet.4.5Polling and interrupt modeOnce a measurement is ready, the Host either receives an interrupt or poll on ameasurement status.VL53L0X SetGPIOConfig() function configures the system interrupt mode.Interrupt options and modes of operation are described in a Section 5: Ranging.14/26DocID029105 Rev 1

UM2039Ranging5Ranging5.1Start a measurementThe API allows to get a measurement in different ways, depending on the userrequirements:5.1.1 Start measurement only Start measurement and wait for data ready Start measurement, wait for data ready and report the dataStart measurement onlyVL53L0X StartMeasurement() function must be called to start a measurement. Thedevice will start a measurement using the chosen mode (single or continuous)5.1.2Start measurement and wait for data readyVL53L0X PerformSingleMeasurement() function starts a measurement and waits fordata ready, by polling on the ranging status or on the interrupt status.The 2 following API functions are called internally: 5.1.3VL53L0X StartMeasurement()VL53L0X GetMeasurementDataReady()Start measurement, wait for data ready and report the dataVL53L0X PerformSingleRangingMeasurement() function starts a measurement,waits for data ready (by polling on the ranging status or on the interrupt status) and reportsthe data. This function also clears the interrupt after the measurement.The 3 following API functions are called internally: 5.2VL53L0X PerformSingleMeasurement()VL53L0X GetRangingMeasurementData()VL53L0X ClearInterruptMask()Stop a measurementIn continuous mode, Host can stop the measurement by callingVL53L0X StopMeasurement() function.If the stop request occurs during a range measurement, then the measurement iscompleted before stopping. If it occurs during the inter-measurement period then the stopcommand takes immediate effect.If the user wants to call an additional API function after the stop command (for example reftemperature calibration if required - see Section 2.4), they have to ensure that the currentranging measurement is finished first.Therefore it is recommended to call VL53L0X GetStopCompletedStatus() and pollthis function to ensure that the ranging measurement is completed, before calling additionalAPI functions.DocID029105 Rev 115/2626

RangingUM20395.3Get a result5.3.1Host polling to get the result statusVL53L0X GetMeasurementDataReady() function allows the Host to get a status on theongoing measurement.5.3.2Get measurementVL53L0X GetRangingMeasurementData() function returns the ranging data.The function returns a buffer which contains the tnCountRangeStatus: Refer to Table 1Table 1. Range StatusRangeStatusvalueRangeStatusString0Range Valid1Sigma FailSigma fail will trigger particularly in ambient light, when the amount of ambientlight is adding too much noise onto the ranging measurement.2Signal FailSignal fail will trigger when the return signal is too low to give enoughconfidence on the range measured. The limit will be given by either the signallimit or the RIT (Range Ignore Threshold).3Min Range Fail4Phase Fail5Hardware Fail255No UpdateCommentRanging measurement is validNot enabled as default.Phase fail will trigger when wraparound conditions are detected or when noiseon signal is too high.Hardware Fail will trigger if a VCSEL failure, or VHV fail are detected.This error should not trigger.Ranging status string is available by calling VL53L0X GetRangeStatusString()functionNote:VL53L0X GetDeviceErrorStatus()function shall be called only for debug purposes. Itshould not be used, unless requested by ST to customer.Note:SignalRateRtnMegaCps includes the crosstalk correction (if the correction is enabled). If theuser wants to get the signal rate without crosstalk correction, they can callVL53L0X GetTotalSignalRate() function.16/26DocID029105 Rev 1

UM2039API useful additional functions6API useful additional functions6.1Overall timing budgetThe timing budget is the time allocated by the user to perform one range measurement. TheAPI takes care of splitting this timing budget into dedicated sub steps in the ranging process.The user only has to set the overall timing budget in micro seconds, and the functionallocates the timings internally. A check is performed to know which part of the scheduler isenabled or disabled, in order to maximize Final Range timing budget.VL53L0X SetMeasurementTimingBudgetMicroSeconds()andVL53L0X GetMeasurementTimingBudgetMicroSeconds()The default timing budget value is 33ms, while the minimum is 20ms.Example of use:Status VL53L0X 6000) setsthe overall timing budget to 66ms.Note:Increasing the timing budget increases the range measurement accuracy.That is: x N on timing budget standard deviation / square root of N.For example is the timing budget is increased by a factor of x 2, then the rangemeasurement standard deviation decreases by square root of 2.6.2Limit settingsUser can enable/disable limit checks and values.Disabling or relaxing these limits can allow longer ranging, in this case, standard deviationwill increase and measurement outliers will be received by the Host.Applicable limits are: Sigma:VL53L0X CHECKENABLE SIGMA FINAL RANGESigma is the time difference (shift) between the reference and return SPAD arrays. AsSigma represents time of flight and this translates to distance, this parameter is expressedin mm. Return Signal RateVL53L0X CHECKENABLE SIGNAL RATE FINAL RANGEReturn signal rate measurement, expressed in MCPS. This represents the amplitude of thesignal reflected from the target and detected by the device. Range Ignore ThresholdVL53L0X CHECKENABLE RANGE IGNORE THRESHOLDSignal rate minimum threshold. Measurements with signal rates below this value areignored. This ensures that false measurements are not made due to reflection from thehousing.DocID029105 Rev 117/2626

API useful additional functionsUM2039Use VL53L0X SetLimitCheckEnable() and VL53L0X GetLimitCheckEnable() toenable/disable a limit.The limit value is set using VL53L0X SetLimitCheckValue() andVL53L0X GetLimitCheckValue().Two additional functions give access to the current value and state against which the limit iscompared:VL53L0X GetLimitCheckCurrent() and VL53L0X GetLimitCheckStatus()Table 2 gives the default limit states and values.Table 2. Default limit states and valuesLimit IDDefault limit stateDefault limit valueSigmaEnabled18mmReturn SignalEnabled0.25McpsRange Ignore ThresholdDisabledN x Xtalk Mcps/spadwhere N 1.5 by defaultExample of use:Status VL53L0X SetLimitCheckEnable(pMyDevice,VL53L0X CHECKENABLE SIGNAL RATE FINAL RANGE, 1);Status VL53L0X SetLimitCheckValue(pMyDevice,VL53L0X CHECKENABLE SIGNAL RATE FINAL RANGE, 0.40*65536);The current sigma value (the actual one, not the limit) can be accessed by calling:Status VL53L0X GetLimitCheckCurrent(pMyDevice,VL53L0X CHECKENABLE SIGMA FINAL RANGE, &Sigma);6.3Timed rangingWhen the ranging mode is set to timed ranging, user has to define the period of timebetween two consecutive measurements.VL53L0X SetInterMeasurementPeriodMilliSeconds()andVL53L0X GetInterMeasurementPeriodMilliSeconds()6.4API versions and product revisionUser can get the API version and the PAL specification version.VL53L0X GetVersion()VL53L0X GetPalSpecVersion()VL53L0X GetProductRevision() functions returns the device cut ID.18/26DocID029105 Rev 1

UM20396.5API useful additional functionsAPI state and API errorVL53L0X GetPalState() function gives the state of the API. All different states aregiven in Table 3.VL53L0X GetPalStateString() function returns the status string.Table 3. API state descriptionAPI statevalueAPI state stringComment0POWERDOWN stateDevice is in HW reset1Wait for StaticInit StateDevice is initialized and wait for static initialization2STANDBY StateDevice is in low power Standby mode3IDLE StateNot used4RUNNING StateDevice is performing measurement98UNKNOWN StateDevice is in unknown state and needs to be rebooted99ERROR StateDevice is in error state and needs to be rebootedAn API error code is reported when any API function is called. Possible values for API errorsare described in Table 4.VL53L0X GetPalErrorString() function returns the error string.Table 4. API error values and error strings descriptionAPIerrorvalueAPI error stringOccurrencePossible root cause0No Error---1Calibrationwarning errorNot implemented, cannot happen N/A-2Min clipped errorNot implemented, cannot happen N/A-3Undefined errorNot implemented, cannot happen N/A-4Invalid parameters Parameter passed is invalid orerrorout of rangeWrong API programming (wrong setting used), orI2C transaction corrupted-5Not supportederrorFunction is not supported incurrent mode or configurationWrong API programming (non implementedfunction called), or I2C transaction corrupted-6Range errorDevice reports a ranging errorinterrupt statusWrong API programming (syntax error), or notarget present during offset calibration, or I2Ctransaction corrupted-7Time out errorAborted due to time outDevice is functionally failing, or I2C transactioncorrupted-8Mode notsupported errorRequested mode is notsupported by the deviceWrong API programming (non existent modecalled), or I2C transaction corrupted-9Buffer too smallCannot happenN/ADocID029105 Rev 119/2626

API useful additional functionsUM2039Table 4. API error values and error strings description (continued)APIerrorvalueAPI error stringOccurrencePossible root cause-10GPIO not existingUser tried to set up a non-existing Wrong API programming (wrong setting used), orGPIO pinI2C transaction corrupted-11GPIO functionalitynot supportedUnsupported GPIO functionalityWrong API programming (wrong setting used), orI2C transaction corrupted-20Control InterfaceErrorError reported from IO functions(comm error)I2C comm error-30Invalid CommandErrorCannot happenN/A-40Division by zeroErrorCannot occur in cut1.1N/A-50Reference SPADInit ErrorError during reference SPADinitializationBad NVM programming, module aperture blockedwith high reflective target, I2C transactioncorrupted (wrong programming)-99Not implementederrorNot implementedN/A6.6I2C device addressUser can change the I2C address of the device.VL53L0X SetDeviceAddress()6.7ResetThis functions resets the device and waits for the boot up.VL53L0X ResetDevice()6.8Interrupt settingsUse VL53L0X SetGpioConfig()and VL53L0X GetGpioConfig() to set/get thefunctionality of the interrupt.Options are: No Interrupt Level Low (value thresh low) Level High (value thresh high) Out Of Window (value thresh low OR value thresh high)There is a dedicated procedure embedded in the API for when the interrupt threshold isprogrammed to be larger than 254mm and also set to continuous or continuous timed mode.In this case some specific tuning parameters are loaded by the API at each ranging startwhich will introduce a delay of a few milliseconds (depending on the host I2C performance)to the very first ranging measurement.20/26DocID029105 Rev 1

UM2039API useful additional fun

Host action Target needed * : Timings are given for information only, they can vary depending on the Host capabilities Calibration Data result Calibration data Calibration data Calibration data Calibration data Device initialization SPADs calibration Temperature calibration Offset calibrat

Related Documents:

Flight Operation Quality Assurance (FOQA) programs are today customary among major . EASA European Aviation Safety Agency F/D Flight Director . FAF Final Approach and Fix point FCOM Flight Crew Operating Manual FCTM Flight Crew Training Manual FDAP Flight Data Analysis Program FDM Flight Data Monitoring FLCH Flight Level Change FMC Flight .

Using ASA’s Flight Planner A flight log is an important part in the preparation for a safe flight. The flight log is needed during flight to check your groundspeed and monitor flight progress to ensure you are staying on course. The Flight Planner has two sections; the Preflight side is used for pre-

‘757 Captain’ Sim FLIGHT MANUAL Part III – Normal Procedures DO NOT USE FOR FLIGHT AMPLIFIED PROCEDURES EXTERIOR INSPECTION Prior to each flight, a flight crew member or the maintenance crew must verify the airplane is acceptable for flight. Check: - Flight control surfaces unobstructed and all surfaces clear of ice, snow, or frost.

means before the flight becomes official. A flight of less than 60 seconds duration will be considered a delayed flight; one delayed flight shall be allowed for each of the five official flights. After a delayed flight, the next launch shall result in an official flight being recorde

offically licensed cessna products from saitek pro flight avilable at: www.saitek.com pro flight cessna rudder pedals flight pedals with toe brakes pro flight cessna yoke system flight yoke and 3 lever quadrant modual pro flight cessna trim wheel

GLOSSARY ACMS: Aircraft Condition Monitoring System AFDAU: Auxiliary Flight Data Acquisition Unit APM: Aircraft Performance Monitoring ASR: Aviation Safety Report CRM: Crew Resource Management CVR: Cockpit Voice Recorder DFDR: Digital Flight Data Recorder FDA: Flight Data Analysis FDAU: Flight Data Acquisition Unit FDEP: Flight Data Entry Panel FDM: Flight Data Monitoring

Flight Center will participate in flight training activities to verify safe and effective flight training. 2.2 Chief Flight Instructor The Chief Flight Instructor is responsible for the day-to-day operations of the Flight Center. He is the principle point-of-contact to the FAA for the University of Dubuque. He ensures

Jay Flight SLX: Page 4 The 2017 Jay Flight SLX lineup features numerous easy-to-tow models Jay Flight: Page 6 The 2017 Jay Flight lineup boasts family-friendly floorplans ranging from 23 to 38 feet in length Jay Flight Bungalow: Page 14 Each spacious 2017 Jay Flight Bungalow model includes several standard residential features