Упатство за употреба со сензор за опсег на време на летот ST VL53L3CX

Вовед
VL53L3CX е сензорски модул за опсег за време на летот (ToF).
Целта на ова упатство за корисникот е да го опише моделот за интеграција и множеството функции што треба да се повикаат за да се добијат податоци за опсег со помош на голиот двигател VL53L3CX.
VL53L3CX системот завршиview
Системот VL53L3CX е составен од модулот VL53L3CX и драјвер кој работи на домаќинот.
Овој документ ги опишува функциите на двигателот достапни за Домаќинот, за да го контролира уредот и да добие опсег на податоци за интеграција со хостови што не се Linux.

Слика 1. VL53L3CX систем
Забелешка:
Овој документ ги опишува имплементираните и потврдените функции. Секоја друга функција достапна во драјверите не треба да се користи доколку не е опишана во овој документ.
Голиот драјвер е имплементација на збир на функции потребни за користење на уредот VL53L3CX. Прави минимални претпоставки за интеграцијата и услугите на ОС. Како такви, секвенционирањето на дејствата, моделот на извршување/навојување, адаптацијата на платформата и распределбата на структурите на уредот не се дел од имплементацијата на голи драјвери, туку се оставени отворени за интеграторот.
Редоследот на голите повици на возачот мора да следи низа правила, дефинирани во овој документ.
Опсег на функционален опис
Овој дел накратко ги опишува функционалните способности на уредот за опсег VL53L3CX.
Секвенца на опсег
Уредот работи со механизам за ракување, врз основа на стандардна шема за управување со прекини.
По секое определување, домаќинот ги добива податоците за опсегот и го овозможува следното опсег со бришење на прекинот. Овој процес се нарекува механизам за ракување. Потоа се активира следното рангирање ако тековното е завршено и ако домаќинот го исчистил претходниот прекин на чекање.
Механизмот за прекин овозможува побрз пренос на податоци, без губење на вредноста на опсегот поради проблеми со комуникацијата или асинхронизмот. За време на фазата на ракување, домаќинот врши одредена обработка на податоци. Редоследот на опсегот е функционално опишан на сликата подолу.

Редоследот на ракување овозможува пресметување на внатрешните параметри и нивно применување за следниот опсег.
Ракувањето мора да го изврши корисникот на голиот возач. Доцнењето за да се овозможи нов опсег по добивањето ново мерење е клучот за вкупната стапка на мерење на системот.
Размислувања за тајмингот
Тајмингот се претставени на слика 3. Рангирање низа и тајминг цели.
Домаќинот може да го добие најновиот расположлив опсег за време на траењето (буџетот за тајминг во опсег) на тековниот опсег.
Ако домаќинот воведе доцнење за бришење на прекинот, следниот опсег ќе биде закочен додека не се отстрани прекинот што чека.
Забелешка: Посочени времиња на слика 3. Редоследот на опсегот и целите на тајмингот се типични тајминзи. Домаќинот може да го промени стандардниот буџет за тајмингот со користење на наменска функција на двигател опишана во Дел 5.1 Буџет за тајминг. Домаќинот може да одлучи да го промени буџетот за тајминг или за да се синхронизира со апликацијата или да ја зголеми прецизноста на опсегот.
На следната слика, „Boot“, „SW standby“ и „Init“ траат 40 ms. Овој пат е потребен за да се изврши правилна иницијализација на уредот и е независен од платформата или од користениот тајминг буџет. Првиот опсег, „Опсег1“ не е валиден, бидејќи проверката на обвивката не е можна. Ова значи дека првата валидна вредност на опсегот е „Опсег2“, достапна по 40 ms плус двојно повеќе од времетраењето на буџетот за време.

Слика 3. Секвенца на опсег и цели на тајминг
Опис на основните функции на гол драјвер
Овој дел ги опишува повиците на функциите на возачот што треба да се следат за да се изврши мерење на опсегот
користејќи VL53L3CX.
Возачот VL53L3CX се користи во две класи на апликации:
- Фабрички апликации што се користат за калибрација на уредот, обично при тест за производство на крајниот производ (фабрички тек)
- Теренски апликации, кои ги собираат сите апликации на крајните корисници користејќи го уредот VL53L3CX (протек на опсег)
Гол возач
Фабричкиот тек на голиот возач е илустриран на следната слика.

Слика 4. Проток на опсег на VL53L3CX API (фабрика)
Забелешка: Протокот на калибрација го менува режимот на растојание. Задолжително е да ја повикате функцијата SetDistanceMode() ако сакате да го користите сензорот веднаш по калибрацијата.
Голиот опсег на проток на возачот е илустриран на следната слика.

Слика 5. Проток на опсег на VL53L3CX API (поле)
Иницијализација на системот
Следниот дел ги прикажува повиците на функциите на API потребни за извршување на иницијализацијата на системот, пред да започне мерењето.
Почекајте да се подигне
Функцијата VL53LX_WaitDeviceBooted() гарантира дека уредот е подигнат и подготвен. Не е задолжително да се повика оваа функција.
Забелешка: Оваа функција го блокира извршувањето на домаќинот. Оваа функција не треба да блокира повеќе од 4 ms, под претпоставка:
- 400 kHz I2C фреквенција
- Латентност од 2 ms по трансакција
Податоците започнуваат
Функцијата VL53LX_DataInit() мора да се повикува секогаш кога уредот ќе излезе од состојбата „почетно подигање“. Врши иницијализација на уредот. По повикувањето на функцијата VL53LX_DataInit(), податоците за калибрација треба да се вчитаат со помош на функцијата VL53LX_SetCalibrationData().
Се движи со VL53L3CX
Кај хостовите што не се од Линукс, корисникот на секвенците на голи двигатели го повикува двигателот на начин што е соодветен на потребите на апликацијата, можностите на платформата и правилата за секвенца на повици на голи драјвери.
Започнете со мерење
Функцијата VL53LX_StartMeasurement() мора да се повика за да започне мерењето.
Почекајте резултат: гласање или прекинете
Постојат 3 начини да знаете дека мерењето е достапно. Домаќинот може:
- повикајте функција за гласање
- анкета за функција на возачот
- почекајте физички прекин
Анкета на возачот за да се добие статусот на резултатот
Функцијата VL53LX_WaitMeasurementDataReady() врши анкета за внатрешен статус додека мерењето не биде подготвено.
Забелешка: Оваа функција е блокирана, бидејќи се врши внатрешно гласање.
Домаќин на анкета за да го добиете статусот на резултатот
Домаќинот може да ја анкетира функцијата VL53LX_GetMeasurementDataReady() за да знае кога е подготвено новото мерење. Оваа функција не блокира.
Користење на физички прекин
Алтернативен и префериран начин да се добие статус на опсег е да се користи излезот за физички прекин. Стандардно, GPIO1 се намалува кога новото мерење е подготвено.
Оваа игла е само излезна игла, на овој уред нема игла за прекин на влезот. Прекинот мора да се отстрани со повикување на функцијата на возачот VL53LX_ClearInterruptAndStartMeasurement().
Добијте мерење
Може да се откријат повеќе објекти по опсег, а мерните податоци се пријавени по објект. VL53LX_GetMultiRangingData() може да се користи за да се добијат податоци за опсег кога повеќе објекти се во полето на view. Кога ја повикувате оваа функција за да добиете резултати од повеќе опсег на уредот, се враќа структура наречена VL53LX_MultiRangingData_t.
Стоп за мерење
Во континуиран режим, домаќинот може да го прекине мерењето со повикување на функцијата VL53LX_StopMeasurement(). Ако барањето за запирање се појави за време на мерење на опсегот, тогаш мерењето веднаш се прекинува.
Рангирање на структури на податоци
Структурата наречена VL53LX_MultiRangingData_t ги содржи следните податоци применливи за сите откриени цели:
- Време Свamp: не се спроведува.
- Број на преноси: овој 8-битен цел број дава бројач зголемен во секој опсег. Вредноста започнува од 0, зголемувајќи се од 1 по 1 до 255. Кога ќе достигне 255, повторно започнува од 128 на 255.
- Број на пронајдени предмети: 8-битна цел број вредност што го дава бројот на пронајдени објекти.
- Податоци за опсег [VL53LX_MAX_RANGE_RESULTS]: табела со структура од типот VL53LX_TargetRangeData_t. Максималниот број на цели е даден со VL53LX_MAX_RANGE_RESULTS и стандардно е еднаков на 4.
- Дали вредноста на X разговор е променета: 8-битна целобројна вредност што покажува дали е променета вредноста на преслушувањето.
- Број на ефективни Spad Rtn: 16-битен цел број што го враќа ефективниот број на единечна фотонска лавина диода (SPAD) за тековниот опсег. За да се добие вистинска вредност, треба да се подели со 256.
Откриена е една структура по цел (до 4 стандардно) наречена VL53LX_TargetRangeData_t која ги содржи следните конкретни резултати за секоја откриена цел.
- Опсег МаксМилиметар: е 16-битен цел број, што укажува на поголемото откриено растојание.
- RangeMinMilliMeter: е 16-битен цел број, што укажува на помалото откриено растојание.
- SignalRateRtnMegaCps: оваа вредност е стапката на повратен сигнал во MegaCountPer Second (MCPS), ова е вредност од 16.16 фиксни точки. За да се добие вистинската вредност, треба да се подели со 65536.
- AmbientRateRtnMegaCps: оваа вредност е повратната амбиентална стапка (во MCPS), ова е вредност од 16.16 фиксни точки, што е ефективно мерило за количината на амбиентална светлина измерена од сензорот. За да се добие вистинската вредност, треба да се подели со 65536.
- SigmaMilliMeter: оваа вредност од 16.16 фиксна точка е проценка на стандардното отстапување на тековниот опсег, изразено во милиметар. За да се добие вистинската вредност, треба да се подели со 65536.
- РангМилиметар: е 16-битен цел број што го покажува растојанието на опсегот во милиметар.
- Статус на опсег: ова е 8-битен цел број што го покажува статусот на опсегот за тековното мерење. Вредност = 0 значи дека опсегот е валиден. Видете табела 1. Статус на опсегот.
- Проширен опсег: ова е 8-битен цел број што покажува дали опсегот е одвиткан (само за долги растојанија)
Посебно однесување се спроведува кога целта не е откриена. Ако целта не е откриена и мерењето е валидно, следните вредности се пријавени во структурата VL53LX_TargetRangeData_t:
- RangeMaxMilliMeter: принуден на 8191.
- RangeMinMilliMeter: принуден на 8191.
- SignalRateRtnMegaCps: принуден на 0.
- AmbientRateRtnMegaCps: вредноста на амбиенталната стапка обично се пресметува.
- SigmaMilliMeter: принуден на 0.
- RangeMilliMeter: принуден на 8191.
- Статус на опсег: принуден на 255.
- Проширен опсег: принуден на 0.
Табела 1. Статус на опсегот
| Вредност | Низа за статус на опсег | Коментар |
| 0 | VL53LX_RANGESTATUS_RANGE_VALID | Мерењето на опсегот е валидно |
| 1 | VL53LX_RANGESTATUS_SIGMA_FAIL | Се зголемува ако проверката на сигма проценувачот е над внатрешниот дефиниран праг. Сигма проценувачот дава квалитативни информации за сигналот. |
| 2 | VL53LX_RANGESTATUS_SIGNAL_FAIL | Се зголемува кога сигналот е премногу низок за да се открие цел. |
| 4 | VL53LX_RANGESTATUS_OUTOFBOUNDS_FAIL | Се зголемува кога резултатот од опсегот е надвор од границите |
| 5 | VL53LX_RANGESTATUS_HARDWARE_FAIL | Подигнат во случај на дефект на HW или VCSEL |
| 6 | VL53LX_RANGESTATUS_RANGE_VALID_NO_WR AP_CHECK_FAIL | Не е извршена проверка на обвивката (ова е првиот опсег) |
| 7 | VL53LX_RANGESTATUS_WRAP_TARGET_FAIL | Се случи обвиткување |
| 8 | VL53LX_RANGESTATUS_PROCESSING_FAIL | Внатрешна грешка при обработката |
| 10 | VL53LX_RANGESTATUS_SYNCRONISATION_INT | Подигната еднаш по почетокот, вредноста на опсегот треба да се игнорира |
| 11 | VL53LX_RANGESTATUS_RANGE_VALID_MERGE D_PULSE | Дострелот е во ред, но пријавеното растојание е резултат на споени повеќе цели. |
| 12 | VL53LX_RANGESTATUS_TARGET_PRESENT_LA CK_OF_SIGNAL | Наведете дека има цел, но сигналот е премногу низок за да се пријави опсегот |
| 14 | VL53LX_RANGESTATUS_RANGE_INVALID | Податоците за опсег се негативни и мора да се игнорираат |
| 255 | VL53LX_RANGESTATUS_NONE | Целта не е откриена, без предупредување или покрената грешка |
Првото мерење не вклучува проверка на обвивка. Ова мерење на опсег може да се отфрли.
Забелешка: Статусот на опсегот 1 често е предизвикан од бучни мерења. Сигма проценувачот е под влијание на SNR на третираните сигнали.
Забелешка: Статусот на опсегот 4 се зголемува кога ќе се појави некоја грешка во референцата за мерење. Ова може да предизвика оддалеченост како негативни мерења или екстремно високи вредности.
Опис на дополнителни функции на возачот
Буџет за тајминг
Буџетот за тајминг е времето доделено од корисникот за извршување на едно мерење на опсегот. VL53LX_SetMeasurementTimingBudgetMicroSeconds() е функцијата што се користи за поставување на буџетот за тајмингот. Стандардната вредност на буџетот за тајмингот е 33 ms. Минимумот е 8 ms, максимумот е 500 ms.
За прample, за да го поставите буџетот за тајминг на 66 ms: статус = VL53LX_SetMeasurementTimingBudgetMicroSeconds(&VL53L3Dev, 66000 );
Функцијата VL53LX_GetMeasurementTimingBudgetMicroSeconds() го враќа програмираниот буџет за тајминг.
Режим на растојание
Додадена е функција за оптимизирање на внатрешните поставки во зависност од опсегот на растојанието што го бара корисникот. Придобивките од промената на режимот на растојание е детално опишана во следната табела.
Табела 2. Режими на растојание
| Можно растојание | Придобивка / коментари |
| Кратко | Подобар амбиентален имунитет |
| Средно (стандардно) | Максимално растојание |
| Долго | Пониска потрошувачка на енергија |
Функцијата што треба да се користи се нарекува VL53LX_SetDistanceMode().
Возачот може да му помогне на домаќинот да го избере режимот за оптимално растојание. Специфична вредност се враќа на секој опсег за да го покаже најдобриот избор, во зависност од условите на околината.
Можни вредности се:
- VL53LX_DISTANCE_SHORT
- VL53LX_DISTANCE_MEDIUM
- VL53LX_DISTANCE_LONG
Подесување параметри
Параметрите за подесување овозможуваат да се најде најдоброто вклопување помеѓу сензорот и куќиштето за употреба на домаќинот. За секој случај на употреба, може да се дефинираат множество параметри за подесување и да се вчитаат во драјверот.
Повеќето од параметрите за подесување се приспособливи прагови, кои се користат во алгоритмот за третман на сигнали. Измената на овие параметри му овозможува на алгоритмот да направи технички размени со конкретниот случај на употреба на клиентите.
Поставете параметар за подесување
Постои дополнителна функција за вчитување на параметрите за подесување. За специфична употреба, ST може да препорача некои специфични параметри составени од клуч и вредност.
Списокот на параметри за подесување и нивните стандардни вредности е даден во vl53lx_tuning_parm_defaults.h file. Или сменете ја вредноста на параметарот за подесување во ова file и повторно компајлирајте го кодот или користете ја функцијата VL53LX_SetTuningParameter() за да го вчитате овој параметар за подесување.
Промената на параметарот за подесување може да ги измени перформансите на уредот. ST препорачува да се користат стандардните вредности за оптимални резултати.
Подобрете ја точноста
За да ја подобрите точноста на уредот, користете го параметарот за подесување наречен VL53LX_TUNINGPARM_PHASECAL_PATCH_POWER. Стандардно, овој параметар за подесување не се применува (вредноста е поставена на 0).
ST препорачува да се постават вредностите на калибрација и опсег на текови на 2 по static_init. Во овој случај, времето за извршување на мерењето на референтниот сигнал е зголемено и овозможува подобра точност. Поставувањето на овој параметар на 2 го зголемува времетраењето за да се добие првото мерење за 240 ms.
Подобрете ја латентноста и максималното растојание на опсегот
Кога целта се движи, на VL53L3CX може да му требаат неколку опсези за да реагира, во зависност од сцената. Начин за подобрување на доцнењето е да го подесите параметарот VL53LX_TUNINGPARM_RESET_MERGE_THRESHOLD. Стандардна вредност е 15000. Може да се намали за да се подобри латентноста, но максималното растојание на опсег ќе влијае.
Ако корисникот ја зголеми вредноста, максималното растојание на опсег може да се подобри, но доцнењето е под влијание.
Откривање на дамки од стакло на капакот
Прекршувањето може да биде засегнато од дамки на стаклото на капакот. VL53L3CX вградува функција која може да детектира дамка во лет и да примени нова вредност за корекција на разговорот. Корисникот може да ја овозможи/оневозможи оваа функција со повикување на VL53LX_SmudgeCorrectionEnable().
Следниве три опции може да се постават со оваа функција:
- VL53LX_SMUDGE_CORRECTION_NONE за да се оневозможи корекцијата
- VL53LX_SMUDGE_CORRECTION_CONTINUOUS за да се овозможи континуирана корекција
- VL53LX_SMUDGE_CORRECTION_SINGLE за да се овозможи една корекција откако ќе се прими команда за почеток.
Откривањето дамки работи на секој опсег. Ако се исполнети некои услови (нема објект под 80 cm, ниво на амбиентална светлина под праг и вредност на преслушување над 1 kcps), се пресметува нова вредност на вкрстување.
Ако е поставена корекција на дамки, вредноста на преслушувањето се коригира и се поставува знаменцето HasXtalkValueChanged. Ова знаменце автоматски се брише на следниот опсег.
Забелешка: Корекцијата на дамките е ограничена на:
- 1.2 m користејќи режим на кратко растојание
- 1.7 m користејќи режим на средно растојание
- 3.8 m користејќи режим на долги растојанија.
I2C адреса
Стандардната I2C адреса на VL53L3CX е 0x52. Некои апликации треба да постават различна адреса на уредот I2C. Така е, на прample, кога неколку VL53L3CX делови ја делат истата магистрала I2C.
Клиентот треба да ја примени следнава процедура:
- Плочката што ја монтира VL53L3CX треба да биде внимателно дизајнирана. Пиновите Xshut и GPIO1 (прекин) треба да се контролираат поединечно за секој VL53L3CX
- Домаќинот треба да го стави во мирување HW, поставувајќи го пинот Xshut ниско, целиот VL53L3CX.
- Домаќинот ја крева иглата Xshut од 1 од VL53L3CX
- Домаќинот ја повикува функцијата VL53LX_SetDeviceAddress()
- Домаќинот ги повторува последните три точки бидејќи сите VL53L3CX адреси се правилно поставени.
За прample, со повикување на функцијата: status = VL53LX_SetDeviceAddress(&VL53L3Dev, WantedAddress) вредноста на WantedAddress се поставува како нова I2C адреса.
Функции за калибрација на фабричките клиенти
Со цел да се искористат целосните перформанси на уредот, двигателот VL53L3CX вклучува функции за калибрација што треба да се извршуваат еднаш на производната линија на клиентите.
Постапките за калибрација треба да се извршат за да се компензираат параметрите од дел до дел што може да влијаат на перформансите на уредот. Податоците за калибрација складирани во хостот треба да се вчитаат во VL53L3CX при секое стартување со помош на наменска функција за двигател. Потребни се три калибрации: refSPAD, crosstalk и offset.
Редоследот на калибрационите функции се нарекуваат на следниов начин:
- refSPAD
- вкрстување
- офсет
Трите функции за калибрација може да се вршат во секвенцијален режим или поединечно. Кога се извршува поединечно, податоците од претходниот чекор треба да се вчитаат пред да се изврши калибрацијата.
Калибрација RefSPAD
Бројот на единечна фотонска лавинска диода (SPAD) е калибриран при последниот тест на модулот во ST. Оваа вредност од дел до дел се складира во NVM и автоматски се вчитува во уредот за време на подигањето.
Оваа калибрација овозможува да се прилагоди бројот на SPAD за да се оптимизира динамиката на уредот.
Сепак, додавањето капак стакло на врвот на модулот може да влијае на оваа калибрација. ST препорачува клиентот да ја изврши оваа калибрација повторно при примената на финалниот производ. Истиот алгоритам што работи на FMT се применува кога се повикува оваа функција: алгоритмот пребарува низ три локации: 1 (1x атенуирани SPAD), 2 (5 x атенуирани SPAD) и 3 (10 x атенуирани SPAD). Бројот на избрани SPAD-и е направен за да се избегне заситеност на сигналот.
Функција за калибрација RefSPAD
Следната функција е достапна за калибрација на SPAD: VL53LX_PerformRefSpadManagement(VL53LX_DEV Dev)
Забелешка: Оваа функција мора прво да се повика во постапката за калибрација.
Функцијата може да ги емитува следните три предупредувачки пораки:
- VL53LX_WARNING_REF_SPAD_CHAR_NOT_ENOUGH_SPA S Помалку од 5 Добри SPAD достапни, излезот не е валиден
- VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_HIGH На крајот од пребарувањето референтна стапка > 40.0 Mcps Стабилноста на офсет може да биде намалена.
- VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_LOW На крајот од пребарувањето референтна стапка < 10.0 Mcps. Стабилноста на офсет може да биде намалена.
Постапка за калибрација RefSPAD
Не мора да се почитуваат посебни услови за оваа калибрација, освен тоа што не треба да се става цел на врвот на уредот.
Времето за извршување на оваа калибрација е само неколку милисекунди.
Оваа функција треба да се повика откако ќе се повика функцијата VL53LX_DataInit().
Добивање резултати од калибрација refSPAD
Функцијата VL53LX_GetCalibrationData() ги враќа сите податоци за калибрација. Вратената структура VL53LX_CalibrationData_t содржи друга структура наречена VL53LX_customer_nvm_managed_t, која ги содржи осумте параметри за калибрација refSPAD:
- ref_spad_man__num_requested_ref_spads: оваа вредност е помеѓу 5 и 44. Го дава бројот на избрани SPAD
- ref_spad_man__ref_location: оваа вредност може да биде 1, 2 или 3. Ја дава локацијата на SPAD-овите во референтната област.
- шест дополнителни параметри ги даваат точните мапи на spad за избраната локација:
- global_config__spad_enables_ref_0
- global_config__spad_enables_ref_1
- global_config__spad_enables_ref_2
- global_config__spad_enables_ref_3
- global_config__spad_enables_ref_4
- global_config__spad_enables_ref_5
Поставување податоци за калибрација refSPAD
При секое стартување, по првичното подигање, апликацијата за корисничко поле може да ги вчита податоците за калибрација refSPAD откако ќе се повика функцијата VL53LX_DataInit(), со користење на VL53LX_SetCalibrationData().
Се препорачува да се добие целата структура за калибрација со повикување на VL53LX_GetCalibrationData(). Изменете ги осумте параметри опишани во Дел 6.1.3 Добивање резултати од калибрацијата refSPAD и повикајте VL53LX_SetCalibrationData().
Калибрација на Crosstalk
Преслушување (XTalk) се дефинира како количина на сигнал примен на низата за враќање што се должи на рефлексијата на светлината VCSEL во заштитниот прозорец (стакло за покривање) додаден на врвот на модулот од естетски причини.
Во зависност од квалитетот на стаклото на капакот, овој паразитски сигнал може да влијае на перформансите на уредот. VL53L3CX има вградена корекција што го компензира овој проблем.
Калибрацијата на Crosstalk се користи за да се процени количината на корекција потребна за да се компензира ефектот на стаклото за покривање додадено на врвот на модулот.
Излезот од калибрацијата на вкрстеното зборување содржи многу параметри кои го дефинираат моделот на вкрстување, како што е опишано во Дел 6.2.3 Добивање резултати од калибрацијата на вкрстеното разговор.
Функција за калибрација на Crosstalk
Следната наменска функција е достапна за калибрација на вкрстено разговор: VL53LX_PerformXTalkCalibration(&VL53L3Dev);
Забелешка: Оваа функција мора да се повика на втората позиција во постапката за калибрација, откако ќе се изврши калибрацијата refSPAD, и пред калибрацијата со офсет.
Постапка за калибрација на Crosstalk
За да се изврши калибрацијата на вкрстеното зборување, целта треба да се постави на растојание од 600 mm од уредот. Калибрацијата на Crosstalk треба да се спроведе во темна средина без IR придонес. Откако ќе се повикаат функциите VL53LX_DataInit() и VL53LX_PerformRefSpadManagement(), треба да се повика наменската функција за калибрација, користејќи: VL53LX_PerformXTalkCalibration(&VL53L3Dev). Кога ќе се повикаат овие функции, се врши калибрација на вкрстениот разговор и стандардно се применува корекција на разговорот.
Добивање резултати од калибрација на разговорот
Резултатите од калибрацијата се состојат, меѓу другото, од хистограм и параметар наречен „рамнина поместување“. Поместувањето на рамнината го претставува износот на применетата корекција, а хистограмот е повторна поделба на корекцијата на секоја корпа. Функцијата VL53LX_GetCalibrationData() ги враќа сите податоци за калибрација. Вратената структура VL53LX_CalibrationData_t содржи други структури. Рамното поместување е содржано во VL53LX_customer_nvm_managed_t: algo_crosstalk_compensation_plane_offset_kcps е шифрирана вредност со фиксна точка 7.9. Треба да се подели со 512 за да се добие вистинскиот број.
Се враќаат уште две релевантни структури: VL53LX_xtalk_histogram_data_t и algo__xtalk_cpo_HistoMerge_kcps. Задолжително е да се чуваат.
Поставување податоци за калибрација на разговорот
Откако ќе се повика функцијата VL53LX_DataInit(), клиентот може да ги вчита податоците за калибрација на разговорот користејќи: VL53LX_SetCalibrationData()
Подобро е да се повика VL53LX_GetCalibrationData(), да се изменат параметрите опишани во претходниот дел, вклучена е структурата на xtalk_histogram и да се повика VL53LX_SetCalibrationData()
Овозможи/оневозможи компензација на препреки
Функцијата VL53LX_SetXTalkCompensationEnable() ја овозможува или оневозможува компензацијата на разговорот.
Забелешка: Надоместувањето за прекршување е стандардно оневозможено. За да ја овозможите компензацијата на преслушување, јавете се на V53LX_SetXTalkCompensationEnable&VL53L3Dev, 1);
За да ја оневозможите компензацијата за прекршување, повикајте го VL53LX_SetXTalkCompensationEnable&VL53L3Dev, 0);
Забелешка: Оваа функција не врши никаква калибрација или вчитување на податоци, туку само ја овозможува компензацијата.
Забелешка: Калибрацијата, или вчитувањето на функцијата за податоци за калибрација, треба да се повика одделно од оваа функција за овозможување/оневозможување (видете ги деловите погоре).
Офсет калибрација
Лемењето на уредот на таблата за купувачи или додавањето капак стакло може да доведе до поместување во опсегот. Ова поместување од дел до дел треба да се мери за време на калибрацијата на офсет. Калибрацијата со офсет овозможува и калибрирање на вредноста dmax, користејќи ги истите услови за калибрација како калибрацијата со офсет.
Функции за калибрација на офсет
Следниве две функции се достапни за офсет калибрација:
- VL53LX_PerformOffsetSimpleCalibration(Dev, CalDistanceMilliMeter)
- VL53LX_PerformOffsetPerVCELКалибрација (Dev, CalDistanceMilliMeter)
Аргументот на функциите е целното растојание во милиметри. Калибрацијата на офсет треба да се изврши по корекција на преслушувањето.
VL53LX_PerformOffsetPerVCELКалибрацијата е најточната функција, но потребно е подолго време за да се изврши калибрацијата (време помножено со 3).
Постапка за калибрација на офсет
Клиентите можат да изберат која било рефлексија на графиконот поставена на кое било растојание (користејќи го истото поставување како и калибрацијата за презборување). Единствената точка што треба да се провери е да се осигура дека брзината на сигналот се мери помеѓу 2 и 80 MCps со избраното поставување.
Табела 3. Поставување калибрација со офсет
| Графикон | Растојание | Амбиентални услови | Стапка на сигнал |
| Било кој | Било кој | Темно (без IR придонес) | 2MCps < Стапка на сигнал <80Mcps |
Две предупредувачки пораки се враќаат со овие функции:
- VL53LX_WARNING_OFFSET_CAL_INSUFFICIENT_MM1_SP DS Сигналот е премногу низок, Точноста на калибрацијата на офсет може да биде намалена.
- VL53LX_WARNING_OFFSET_CAL_PRE_RANGE_RATE_TOO_H GH Сигналот е превисок. Точноста на офсет калибрацијата може да биде намалена.
Добивање резултати од калибрација со офсет
Функцијата VL53LX_GetCalibrationData() ги враќа сите податоци за калибрација. Вратената структура VL53LX_CalibrationData_t содржи друга структура наречена VL53LX_customer_nvm_managed_t која ги содржи трите резултати од калибрацијата на офсет:
- algo__part_to_part_range_offset_mm
- mm_config__inner_offset_mm
- mm_config__outer_offset_mm
Целокупното поместување применето на уредот е просекот на двете последни вредности. Ако се избере perVCSECalibration, излезот од функцијата ги вклучува следните податоци:
- краток_а_поместување_мм
- краток_б_поместување_мм
- средно_а_поместување_мм
- средно_б_поместување_мм
- долго_а_поместување_мм
- long_bb_offset_mm
Во зависност од избраниот режим на растојание (период VCSEL), едно од овие поместувања се применува автоматски.
Избор на режим за корекција на поместување
Режимот за корекција на поместување може да се постави со две опции, користејќи ја функцијата VL53LX_SetOffsetCorrectionMode.
Забелешка: VL53LX_OFFSETCORRECTIONMODE_PERVCSEL треба да се користи стандардно. Овозможува да се зголеми точноста на офсет по период VCSEL.
Табела 4. Опции за корекција на офсет
| Повикана е офсет калибрационата функција | Опција за режим на корекција што ќе се користи |
| Изведете SimpleOffsetCalibration | VL53LX_OFFSETCORRECTIONMODE_STANDARD |
| Изведете PerVCSELOffsetCalibration | VL53LX_OFFSETCORRECTIONMODE_PERVCSEL |
Забелешка: Ако е достапен само еден тип на калибрација на поместување, задолжително е да го поставите режимот за корекција на поместување на соодветната опција. Ова не се прави автоматски.
Поставување на офсет податоци за калибрација
Клиентот може да ги вчита податоците за офсет калибрација откако ќе се повика функцијата VL53LX_DataInit(), со користење на VL53LX_SetCalibrationData().
Подобро е да се повика VL53LX_GetCalibrationData(), да се изменат параметрите опишани во претходните делови и да се повика VL53LX_SetCalibrationData()
Калибрации на продавница за поправка на клиенти
Во случај да се изгубат вредностите за калибрација, поради промена на компонентата во продавница за поправка, клиентот може да примени наменска процедура, каде што не е потребно специфично поставување (цели).
Калибрацијата се состои од три чекори:
- RefSpad
- Преслушување
- Офсет калибрации
RefSpad и Xtalk се исти како што е опишано во Дел 6.1 Калибрација RefSPAD и Дел 6.2 Калибрација Crosstalk.
Достапна е посебна функција за извршување на калибрација на офсет: VL53LX_PerformOffsetZeroDistanceCalibration.
Треба да се постави мета пред уредот, допирајќи го капакот стакло. Целта може да биде едноставен лист хартија (без посебна потреба од рефлексија на хартијата).
Горенаведената функција треба да се повика и резултатите може да се вратат слично на процесот опишан во претходните делови.
Голи возачки грешки и предупредувања
Се пријавува грешка на возачот кога се повикува која било функција на возачот. Можните вредности за грешки на возачот се опишани во следната табела. Има предупредувања за да го информираат корисникот дека некои параметри не се оптимизирани. Предупредувањата не се блокирачки за домаќинот.
Табела 5. Опис на голи возачки грешки и предупредувања
| Вредност на грешка | Низа за грешка на API | Појава |
| 0 | VL53LX_ERROR_NONE | Нема грешка |
| -1 | VL53LX_ERROR_CALIBRATION_WARNING | Неважечки податоци за калибрација |
| -4 | VL53LX_ERROR_INVALID_PARAMS | Неважечки параметар е поставен во функција |
| -5 | VL53LX_ERROR_NOT_SUPPORTED | Бараниот параметар не е поддржан во програмираната конфигурација |
| -6 | VL53LX_ERROR_RANGE_ERROR | Статусот на прекин е неточен |
| -7 | VL53LX_ERROR_TIME_OUT | Рангирањето е прекинато поради тајмаут |
| -8 | VL53LX_ERROR_MODE_NOT_SUPPORTED | Бараниот режим не е поддржан |
| -10 | VL53LX_ERROR_COMMS_BUFFER_TOO_SMALL | Испорачаниот бафер е поголем од поддржувачите на I2C |
| -13 | VL53LX_ERROR_CONTROL_INTERFACE | Пријавена грешка од функцијата IO |
| -14 | VL53LX_ERROR_INVALID_COMMAND | Командата е неважечка |
| -16 | VL53LX_ERROR_REF_SPAD_INIT | Се појави грешка при калибрацијата на Reference SPAD |
| -17 | VL53LX_ERROR_GPH_SYNC_CHECK_FAIL | Возач не е синхронизиран со уредот. Можеби ќе биде потребно стопирање/стартување или рестартирање |
| -18 | VL53LX_ERROR_STREAM_COUNT_CHECK_FAIL | |
| -19 | VL53LX_ERROR_GPH_ID_CHECK_FAIL | |
| -20 | VL53LX_ERROR_ZONE_STREAM_COUNT_CHEC K_FAIL | |
| -21 | VL53LX_ERROR_ZONE_GPH_ID_CHECK_FAIL | |
| -22 | VL53LX_ERROR_XTALK_EXTRACTION_FAIL | Нема успешни сamples кога се користи целосната низа до sampле од разговорот. Во овој случај нема доволно информации за да се генерира нова вредност на разговорот. Функцијата ќе излезе и ќе ги остави непроменетите тековните параметри за разговор |
| -23 | VL53LX_ERROR_XTALK_EXTRACTION_SIGMA_L IMIT_FAIL | Проценката на средната сигма на преслушувањето сample е > од максималната дозволена граница. Во овој случај, преслушувањето сampе премногу бучно за мерење. Функцијата ќе излезе и ќе ги остави непроменетите тековните параметри за разговор |
| -24 | VL53LX_ERROR_OFFSET_CAL_NO_SAMPLE_FA IL | Настана грешка при калибрацијата на офсет. Проверете дали поставувањето е во согласност со препораките на ST. |
| -25 | VL53LX_ERROR_OFFSET_CAL_NO_SPADS_ENA BLED_FAIL | |
| -28 | VL53LX_WARNING_REF_SPAD_CHAR_NOT_MK OUGH_SPADS | Предупредување: бројот на пронајдени прагови е премногу мал за да се добие точна калибрација на refSpadManagement. Проверете дали поставувањето е во согласност со препораките на ST. |
| -29 | VL53LX_WARNING_REF_SPAD_CHAR_RATE_TO O_HIGH | Предупредување: стапката на сигнал е премногу мала за да се добие точна калибрација на refSpadManagement. Проверете дали поставувањето е во согласност со препораките на ST. |
| -30 | VL53LX_WARNING_REF_SPAD_CHAR_RATE_TO O_LOW | Предупредување: Бројот на лопатки е пренизок за да се добие точна калибрација на поместување. Проверете дали поставувањето е во согласност со препораките на ST. |
| -31 | VL53LX_WARNING_OFFSET_CAL_MISSING_SA MPLES | Се појави предупредување за време на калибрацијата на офсет. Проверете дали поставувањето е во согласност со препораките на ST. |
| -32 | VL53LX_WARNING_OFFSET_CAL_SIGMA_TOO_ HIGH | |
| -33 | VL53LX_WARNING_OFFSET_CAL_RATE_TOO_HI GH | |
| -34 | VL53LX_WARNING_OFFSET_CAL_SPAD_COUNT_TOO_LOW | |
| -38 | VL53LX_WARNING_XTALK_MISSING_SAMPLES | Предупредувањето се случи за време на калибрацијата на преслушувањето. Проверете дали поставувањето е во согласност со препораките на ST. |
| -41 | VL53LX_ERROR_NOT_IMPLEMENTED | Функцијата повикана не е имплементирана |
Историја на ревизии
| Датум | Верзија | Промени |
| 28-сеп-2020 година | 1 | Почетно ослободување |
| 02-Дек-2021 | 2 | Ажурирани структурите вратени во Дел 6.2.3 Добивање резултати од калибрација на вкрстеното разговор |
| 03-јуни-2022 | 3 | Дел 3.1 Гол возач: додаде белешка во врска со калибрацијата. |
ВАЖНО НАПОМЕНА – ПРОЧИТАЈТЕ ВНИМАТЕЛНО
STMicroelectronics NV и нејзините подружници („ST“) го задржуваат правото да прават промени, корекции, подобрувања, модификации и подобрувања на производите на ST и/или на овој документ во секое време без најава. Купувачите треба да ги добијат најновите релевантни информации за производите на ST пред да направат нарачки. Производите на ST се продаваат во согласност со одредбите и условите за продажба на ST кои се на сила во моментот на потврдата на нарачката.
Набавувачите се единствено одговорни за изборот, изборот и употребата на производите на ST и ST не презема никаква одговорност за помош при апликација или дизајнирање на производите на купувачите.
Ниту една лиценца, експлицитна или имплицитна, за кое било право на интелектуална сопственост не е дадена од страна на ST овде.
Препродажбата на производите на ST со одредби различни од информациите наведени овде ќе ја поништи секоја гаранција дадена од ST за таков производ. ST и логото ST се заштитни знаци на ST. За дополнителни информации за заштитните марки ST, погледнете во www.st.com/trademarks. Сите други имиња на производи или услуги се сопственост на нивните соодветни сопственици.
Информациите во овој документ ги заменуваат и заменуваат информациите претходно доставени во која било претходна верзија на овој документ. © 2022 STMicroelectronics – Сите права се задржани
Документи / ресурси
![]() |
ST VL53L3CX Сензор за опсег на време на летот [pdf] Упатство за користење VL53L3CX Сензор за опсег на летот, VL53L3CX, сензор за опсег на летот, сензор за опсег на летот, сензор за опсег |




