ST VL53L3CX Uživatelská příručka snímače vzdálenosti letu
Zavedení
VL53L3CX je modul senzoru pro měření doby letu (ToF).
Účelem této uživatelské příručky je popsat integrační model a sadu funkcí, které je třeba volat pro získání dat o rozsahu pomocí holého ovladače VL53L3CX.
Konec systému VL53L3CXview
Systém VL53L3CX se skládá z modulu VL53L3CX a ovladače běžícího na hostiteli.
Tento dokument popisuje funkce ovladače přístupné hostiteli pro ovládání zařízení a získávání dat o rozsahu pro integraci s hostiteli mimo Linux.
Obrázek 1. Systém VL53L3CX
Poznámka:
Tento dokument popisuje implementované a ověřené funkce. Žádné další funkce dostupné v ovladačích by neměly být používány, pokud nejsou popsány v tomto dokumentu.
Holý ovladač je implementací sady funkcí požadovaných pro použití zařízení VL53L3CX. Vytváří minimální předpoklady ohledně integrace OS a služeb. Pořadí akcí, model provádění/vláknění, přizpůsobení platformy a alokace struktur zařízení jako takové nejsou součástí implementace holého ovladače, ale jsou ponechány otevřené integrátorovi.
Pořadí volání holých ovladačů se musí řídit sadou pravidel definovaných v tomto dokumentu.
Rozsah funkčního popisu
Tato část stručně popisuje funkční schopnosti zaměřovacího zařízení VL53L3CX.
Pořadí měření
Zařízení pracuje s mechanismem handshake, který je založen na standardním schématu správy přerušení.
Po každém určování rozsahu hostitel získá data o rozsahu a povolí další rozsah vymazáním přerušení. Tento proces se nazývá mechanismus podání ruky. Další rozsah je pak spuštěn, pokud je aktuální dokončeno a pokud hostitel vymazal předchozí čekající přerušení.
Mechanismus přerušení umožňuje rychlejší přenos dat, aniž by došlo ke ztrátě jakékoli hodnoty rozsahu kvůli problémům s komunikací nebo asynchronismem. Během fáze handshake hostitel provádí určité zpracování dat. Sekvence zaměřování je funkčně popsána na obrázku níže.
Sekvence handshake umožňuje výpočet vnitřních parametrů a jejich použití pro další rozsah.
Podání ruky musí provést uživatel holého ovladače. Zpoždění umožňující nový rozsah po přijetí nového měření je klíčem k celkové rychlosti měření systému.
Úvahy o načasování
Časování je uvedeno na obrázku 3. Měření sekvence a načasování cílů.
Hostitel může získat poslední dostupný rozsah během trvání (rozpočet načasování rozsahu) aktuálního rozsahu.
Pokud hostitel zavede zpoždění pro odstranění přerušení, další rozsah se zastaví, dokud nebude vymazáno čekající přerušení.
Poznámka: Uvedeny časování na obrázku 3. Zaměřovací sekvence a cíle časování jsou typické časování. Hostitel může změnit výchozí časový rozpočet pomocí speciální funkce ovladače popsané v části 5.1 Časový rozpočet. Host se může rozhodnout změnit časový rozpočet, aby se synchronizoval s aplikací nebo zvýšil přesnost dosahu.
Na následujícím obrázku „Boot“, „SW standby“ a „Init“ trvá 40 ms. Tento čas je potřebný k provedení správné inicializace zařízení a je nezávislý na platformě nebo použitém časovém rozpočtu. První rozsah, „Range1“, není platný, protože kontrola obtékání není možná. To znamená, že první platná hodnota rozsahu je „Range2“, dostupná po 40 ms plus dvojnásobek trvání časového rozpočtu.
Obrázek 3. Sekvence měření a načasování cílů
Popis základních funkcí holého ovladače
Tato část popisuje tok volání funkcí ovladače, který by se měl dodržovat při provádění měření rozsahu
pomocí VL53L3CX.
Ovladač VL53L3CX se používá ve dvou třídách aplikací:
- Tovární aplikace používané pro kalibraci zařízení, obvykle při zkoušce výroby konečného produktu (tovární tok)
- Polní aplikace, které shromažďují všechny aplikace koncových uživatelů pomocí zařízení VL53L3CX (rozsahový tok)
Holý řidič
Tovární tok holého ovladače je znázorněn na následujícím obrázku.
Obrázek 4. VL53L3CX API rozsah toku (tovární)
Poznámka: Kalibrační tok mění režim vzdálenosti. Pokud chcete senzor použít hned po kalibraci, je povinné zavolat funkci SetDistanceMode().
Na následujícím obrázku je znázorněn tok prostého nastavování rozsahu ovladače.
Obrázek 5. VL53L3CX API tok rozsahu (pole)
Inicializace systému
Následující část ukazuje volání funkcí API, které jsou nutné k provedení inicializace systému před zahájením měření.
Počkejte na spuštění
Funkce VL53LX_WaitDeviceBooted() zajišťuje, že je zařízení spuštěno a připraveno. Volání této funkce není povinné.
Poznámka: Tato funkce blokuje spuštění hostitele. Tato funkce by neměla blokovat déle než 4 ms, za předpokladu:
- Frekvence I400C 2 kHz
- Latence 2 ms na transakci
Data init
Funkce VL53LX_DataInit() musí být volána pokaždé, když zařízení opustí stav „počátečního spuštění“. Provádí inicializaci zařízení. Po volání funkce VL53LX_DataInit() je třeba načíst kalibrační data pomocí funkce VL53LX_SetCalibrationData().
Rozsah s VL53L3CX
Na hostitelích jiných než Linux uživatel sekvencí holých ovladačů volá ovladač způsobem, který odpovídá potřebám aplikace, možnostem platformy a pravidlům sekvence volání holých ovladačů.
Spusťte měření
Ke spuštění měření je nutné zavolat funkci VL53LX_StartMeasurement().
Počkejte na výsledek: dotazování nebo přerušení
Existují 3 způsoby, jak zjistit, že je měření k dispozici. Hostitel může:
- volání funkce dotazování
- anketa o funkci řidiče
- čekat na fyzické přerušení
Dotazování řidiče k získání stavu výsledku
Funkce VL53LX_WaitMeasurementDataReady() se dotazuje na interní stav, dokud není měření připraveno.
Poznámka: Tato funkce je blokována, protože se provádí interní dotazování.
Uspořádejte hlasování, abyste získali stav výsledku
Host může dotazovat funkci VL53LX_GetMeasurementDataReady(), aby věděl, kdy je připraveno nové měření. Tato funkce není blokována.
Použití fyzického přerušení
Alternativní a preferovaný způsob, jak získat stav rozsahu, je použít výstup fyzického přerušení. Ve výchozím nastavení se GPIO1 sníží, když je připraveno nové měření.
Tento pin je pouze výstupní, na tomto zařízení není žádný vstupní pin přerušení. Přerušení musí být zrušeno voláním funkce ovladače VL53LX_ClearInterruptAndStartMeasurement().
Získejte měření
Na jeden rozsah lze detekovat více objektů a naměřená data jsou hlášena na objekt VL53LX_GetMultiRangingData() lze použít k získání dat rozsahu, když je v poli více objektů view. Při volání této funkce za účelem získání výsledků více rozsahů zařízení je vrácena struktura nazvaná VL53LX_MultiRangingData_t.
Zastavte měření
V nepřetržitém režimu může hostitel zastavit měření voláním funkce VL53LX_StopMeasurement(). Pokud se během měření vzdálenosti objeví požadavek na zastavení, měření se okamžitě přeruší.
Rozsah datových struktur
Struktura s názvem VL53LX_MultiRangingData_t obsahuje následující data použitelná pro všechny detekované cíle:
- Čas svamp: není implementováno.
- Počet streamů: toto 8bitové celé číslo poskytuje čítač navýšený v každém rozsahu. Hodnota začíná na 0, zvyšuje se 1 o 1 až na 255. Když dosáhne 255, začne znovu od 128 do 255.
- Počet nalezených objektů: 8bitová celočíselná hodnota, která udává počet nalezených objektů.
- Údaje o rozsahu [VL53LX_MAX_RANGE_RESULTS]: tabulka struktury typu VL53LX_TargetRangeData_t. Maximální počet cílů je dán VL53LX_MAX_RANGE_RESULTS a ve výchozím nastavení je roven 4.
- Má X talk změněnou hodnotu: 8bitová celočíselná hodnota, která označuje, zda byla změněna hodnota přeslechu.
- Efektivní počet Spad Rtn: 16bitové celé číslo, které vrací efektivní počet jednofotonových lavinových diod (SPAD) pro aktuální rozsah. Abychom získali skutečnou hodnotu, měli bychom ji vydělit 256.
Jedna struktura na každý detekovaný cíl (ve výchozím nastavení až 4) s názvem VL53LX_TargetRangeData_t, která obsahuje následující specifické výsledky pro každý detekovaný cíl.
- Rozsah MaxMillimetr: je 16bitové celé číslo označující větší detekovanou vzdálenost.
- DosahMinMillimetr: je 16bitové celé číslo označující menší detekovanou vzdálenost.
- SignalRateRtnMegaCps: tato hodnota je rychlost zpětného signálu v MegaCountPer Second (MCPS), jedná se o hodnotu pevného bodu 16.16. Chcete-li získat skutečnou hodnotu, je třeba ji vydělit 65536.
- AmbientRateRtnMegaCps: tato hodnota je návratová míra okolního prostředí (v MCPS), jedná se o hodnotu pevného bodu 16.16, která je v podstatě mírou množství okolního světla měřeného senzorem. Chcete-li získat skutečnou hodnotu, je třeba ji vydělit 65536.
- SigmaMilliMeter: tato hodnota pevného bodu 16.16 je odhadem standardní odchylky aktuálního rozsahu, vyjádřené v milimetrech. Chcete-li získat skutečnou hodnotu, je třeba ji vydělit 65536.
- Dosah milimetr: je 16bitové celé číslo udávající vzdálenost dosahu v milimetrech.
- Stav rozsahu: toto je 8bitové celé číslo udávající stav rozsahu pro aktuální měření. Hodnota = 0 znamená, že rozsah je platný. Viz Tabulka 1. Stav rozsahu.
- Rozšířený rozsah: toto je 8bitové celé číslo označující, zda byl rozsah rozbalen (pouze pro dlouhé vzdálenosti)
Konkrétní chování je implementováno, když není detekován cíl. Pokud cíl není detekován a měření je platné, jsou ve struktuře VL53LX_TargetRangeData_t hlášeny následující hodnoty:
- RangeMaxMilliMeter: nuceně na 8191.
- RangeMinMilliMeter: vynucen na 8191.
- SignalRateRtnMegaCps: vynuceno na 0.
- AmbientRateRtnMegaCps: hodnota ambient rate se normálně vypočítává.
- SigmaMilliMeter: vynucen na 0.
- RangeMilliMeter: nuceně na 8191.
- RangeStatus: vynucen na 255.
- ExtendedRange: vynuceno na 0.
Tabulka 1. Stav rozsahu
Hodnota | RangeStatus String | Komentář |
0 | VL53LX_RANGESTATUS_RANGE_VALID | Měření vzdálenosti je platné |
1 | VL53LX_RANGESTATUS_SIGMA_FAIL | Zvýšeno, pokud je kontrola sigma estimatoru nad interní definovanou prahovou hodnotou. Sigma estimator poskytuje kvalitativní informace o signálu. |
2 | VL53LX_RANGESTATUS_SIGNAL_FAIL | Vyvoláno, když je signál příliš nízký na to, aby detekoval cíl. |
4 | VL53LX_RANGESTATUS_OUTOFBOUNDS_FAIL | Zvýšeno, když je výsledek z rozsahu mimo meze |
5 | VL53LX_RANGESTATUS_HARDWARE_FAIL | Zvýšeno v případě selhání HW nebo VCSEL |
6 | VL53LX_RANGESTATUS_RANGE_VALID_NO_WR AP_CHECK_FAIL | Nebyla provedena žádná kontrola obtékání (toto je úplně první rozsah) |
7 | VL53LX_RANGESTATUS_WRAP_TARGET_FAIL | Došlo k obtékání |
8 | VL53LX_RANGESTATUS_PROCESSING_FAIL | Interní chyba zpracování |
10 | VL53LX_RANGESTATUS_SYNCRONISATION_INT | Zvýší se jednou po inicializaci, hodnota rozsahu musí být ignorována |
11 | VL53LX_RANGESTATUS_RANGE_VALID_MERGE D_PULSE | Rozsah je v pořádku, ale hlášená vzdálenost je výsledkem sloučení více cílů. |
12 | VL53LX_RANGESTATUS_TARGET_PRESENT_LA CK_OF_SIGNAL | Označte, že existuje cíl, ale signál je příliš slabý na to, aby hlásil dosah |
14 | VL53LX_RANGESTATUS_RANGE_INVALID | Údaje o rozsahu jsou negativní a je třeba je ignorovat |
255 | VL53LX_RANGESTATUS_NONE | Cíl nebyl detekován, bez varování nebo chyby |
Úplně první měření nezahrnuje kontrolu obtékání. Toto měření rozsahu lze zrušit.
Poznámka: Stav rozsahu 1 je často způsoben hlučným měřením. Sigma estimator je ovlivněn SNR zpracovaných signálů.
Poznámka: Stav rozsahu 4 se zvýší, když dojde k nějaké chybě v referenční hodnotě měření. To může způsobit odlehlé hodnoty jako negativní měření nebo extrémně vysoké hodnoty v rozsahu.
Popis doplňkových funkcí ovladače
Časový rozpočet
Časový rozpočet je čas přidělený uživatelem k provedení jednoho měření rozsahu. VL53LX_SetMeasurementTimingBudgetMicroSeconds() je funkce, kterou lze použít k nastavení časového rozpočtu. Výchozí hodnota časového rozpočtu je 33 ms. Minimum je 8 ms, maximum je 500 ms.
Napřample, pro nastavení časového rozpočtu na 66 ms: status = VL53LX_SetMeasurementTimingBudgetMicroSeconds(&VL53L3Dev, 66000 );
Funkce VL53LX_GetMeasurementTimingBudgetMicroSeconds() vrací naprogramovaný časový rozpočet.
Režim vzdálenosti
Byla přidána funkce pro optimalizaci vnitřního nastavení v závislosti na vzdálenosti požadované uživatelem. Výhody změny režimu vzdálenosti jsou podrobně uvedeny v následující tabulce.
Tabulka 2. Režimy vzdálenosti
Možný režim vzdálenosti | Výhoda / komentáře |
Krátký | Lepší okolní imunita |
Střední (výchozí) | Maximální vzdálenost |
Dlouho | Nižší spotřeba energie |
Funkce, která se má použít, se nazývá VL53LX_SetDistanceMode().
Ovladač může hostiteli pomoci vybrat optimální režim vzdálenosti. V každém rozsahu se vrací konkrétní hodnota, která označuje nejlepší volbu v závislosti na okolních podmínkách.
Možné hodnoty jsou:
- VL53LX_DISTANCE_SHORT
- VL53LX_DISTANCE_MEDIUM
- VL53LX_DISTANCE_LONG
Parametry ladění
Parametry ladění umožňují najít nejlepší shodu mezi senzorem a hostitelským případem použití. Pro každý případ použití lze definovat sadu parametrů ladění a načíst ji do ovladače.
Většina parametrů ladění jsou laditelné prahové hodnoty, používané v algoritmu zpracování signálu. Úprava těchto parametrů umožňuje algoritmu provádět technické kompromisy pro konkrétní případ použití zákazníka.
Nastavte parametr ladění
Existuje další funkce pro načtení parametrů ladění. Pro konkrétní případy použití může ST doporučit některé specifické parametry složené z klíče a hodnoty.
Seznam parametrů ladění a jejich výchozí hodnoty jsou uvedeny v souboru vl53lx_tuning_parm_defaults.h file. Buď v tomto změňte hodnotu parametru ladění file a znovu zkompilujte kód nebo použijte funkci VL53LX_SetTuningParameter() k načtení tohoto parametru ladění.
Změna parametru ladění může změnit výkon zařízení. ST doporučuje použít výchozí hodnoty pro optimální výsledky.
Zlepšete přesnost
Chcete-li zlepšit přesnost zařízení, použijte parametr ladění s názvem VL53LX_TUNINGPARM_PHASECAL_PATCH_POWER. Ve výchozím nastavení se tento parametr ladění nepoužívá (hodnota je nastavena na 0).
ST doporučuje nastavit hodnoty kalibračních a rozsahových průtoků na 2 po static_init. V tomto případě se doba pro provedení měření referenčního signálu prodlouží a umožňuje lepší přesnost. Nastavením tohoto parametru na 2 se prodlouží doba trvání prvního měření o 240 ms.
Zlepšete latenci a maximální dosah
Když se cíl pohybuje, může VL53L3CX k reakci potřebovat několik vzdáleností, v závislosti na scéně. Způsob, jak zlepšit latenci, je vyladit parametr VL53LX_TUNINGPARM_RESET_MERGE_THRESHOLD. Výchozí hodnota je 15000. Lze ji snížit, aby se zlepšila latence, ale bude ovlivněna maximální dosahová vzdálenost.
Pokud uživatel zvýší hodnotu, může se zlepšit maximální dosahová vzdálenost, ale ovlivní se latence.
Detekce šmouh na krycím skle
Přeslechy mohou být ovlivněny šmouhami na krycím skle. VL53L3CX obsahuje funkci schopnou detekovat šmouhy za chodu a aplikovat novou hodnotu korekce přeslechů. Uživatel může tuto funkci povolit/zakázat voláním VL53LX_SmudgeCorrectionEnable().
Pomocí této funkce lze nastavit následující tři možnosti:
- VL53LX_SMUDGE_CORRECTION_NONE pro zakázání opravy
- VL53LX_SMUDGE_CORRECTION_CONTINUOUS pro povolení nepřetržité opravy
- VL53LX_SMUDGE_CORRECTION_SINGLE pro povolení jediné opravy po přijetí příkazu ke spuštění.
Detekce šmouh je spuštěna v každém rozsahu. Pokud jsou splněny některé podmínky (žádný objekt pod 80 cm, úroveň okolního světla pod prahovou hodnotou a hodnota přeslechu nad 1 kcps), vypočítá se nová hodnota přeslechu.
Pokud je nastavena korekce šmouh, opraví se hodnota přeslechu a nastaví se příznak HasXtalkValueChanged. Tento příznak se automaticky vymaže při dalším rozsahu.
Poznámka: Oprava šmouh je omezena na:
- 1.2 m v režimu krátké vzdálenosti
- 1.7 m při použití režimu střední vzdálenosti
- 3.8 m v režimu dlouhé vzdálenosti.
I2C adresa
Výchozí adresa I2C VL53L3CX je 0x52. Některé aplikace potřebují nastavit jinou adresu zařízení I2C. To je případ, napřample, když několik dílů VL53L3CX sdílí stejnou sběrnici I2C.
Zákazník by měl uplatnit následující postup:
- Montáž desky VL53L3CX musí být navržena pečlivě. Piny Xshut a GPIO1 (přerušení) je třeba ovládat samostatně pro každý VL53L3CX
- Hostitel musí přepnout HW Standby a nastavit pin Xshut na nízkou úroveň, všechny VL53L3CX.
- Hostitel zvedne kolík Xshut 1 na VL53L3CX
- Hostitel volá funkci VL53LX_SetDeviceAddress()
- Hostitel opakuje poslední tři body, protože všechny adresy VL53L3CX jsou správně nastaveny.
Napřample, voláním funkce: status = VL53LX_SetDeviceAddress(&VL53L3Dev, WantedAddress) se hodnota WantedAddress nastaví jako nová adresa I2C.
Zákaznické tovární kalibrační funkce
Aby bylo možné využít plný výkon zařízení, obsahuje ovladač VL53L3CX funkce kalibrace, které lze spustit jednou na výrobní lince zákazníka.
Je třeba provést kalibrační procedury, aby se kompenzovaly parametry jednotlivých částí, které mohou ovlivnit výkon zařízení. Kalibrační data uložená v hostiteli je třeba načíst do VL53L3CX při každém spuštění pomocí vyhrazené funkce ovladače. Jsou zapotřebí tři kalibrace: refSPAD, přeslech a offset.
Pořadí, ve kterém se kalibrační funkce nazývají:
- refSPAD
- přeslechy
- offset
Tři kalibrační funkce lze provádět v sekvenčním režimu nebo jednotlivě. Při samostatném běhu je třeba před spuštěním kalibrace načíst data předchozího kroku.
Kalibrace RefSPAD
Počet jednofotonových lavinových diod (SPAD) je kalibrován během závěrečného testu modulu v ST. Tato hodnota mezi částmi je uložena v NVM a automaticky načtena do zařízení během spouštění.
Tato kalibrace umožňuje upravit počet SPADů pro optimalizaci dynamiky zařízení.
Přidání krycího skla na modul však může tuto kalibraci ovlivnit. ST doporučuje, aby zákazník provedl tuto kalibraci znovu v konečné aplikaci produktu. Při volání této funkce je použit stejný algoritmus běžící na FMT: algoritmus prohledává tři místa: 1 (1x zeslabený SPAD), 2 (5 x zeslabený SPAD) a 3 (10 x zeslabený SPAD). Počet zvolených SPADů se provádí tak, aby nedocházelo k saturaci signálu.
Kalibrační funkce RefSPAD
Pro kalibraci SPAD je k dispozici následující funkce: VL53LX_PerformRefSpadManagement(VL53LX_DEV Dev)
Poznámka: Tato funkce musí být vyvolána jako první v kalibrační proceduře.
Funkce může vydat následující tři varovné zprávy:
- VL53LX_WARNING_REF_SPAD_CHAR_NOT_ENOUGH_SPA S K dispozici méně než 5 dobrých SPAD, výstup není platný
- VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_HIGH Na konci referenční frekvence vyhledávání > 40.0 Mcps Stabilita ofsetu může být zhoršena.
- VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_LOW Na konci vyhledávání referenční frekvence < 10.0 Mcps. Stabilita ofsetu může být snížena.
Postup kalibrace RefSPAD
Pro tuto kalibraci nemusí být dodrženy žádné zvláštní podmínky, kromě toho, že by na horní část zařízení neměl být umístěn žádný cíl.
Doba provedení této kalibrace je pouze několik milisekund.
Tato funkce musí být volána po volání funkce VL53LX_DataInit().
Získání výsledků kalibrace refSPAD
Funkce VL53LX_GetCalibrationData() vrací všechna kalibrační data. Vrácená struktura VL53LX_CalibrationData_t obsahuje další strukturu nazvanou VL53LX_customer_nvm_managed_t, která obsahuje osm parametrů kalibrace refSPAD:
- ref_spad_man__num_requested_ref_spads: tato hodnota je mezi 5 a 44. Udává počet vybraných SPADů
- ref_spad_man__ref_location: tato hodnota může být 1, 2 nebo 3. Udává umístění SPADů v referenční oblasti.
- šest dalších parametrů poskytuje správné mapy spadu pro vybrané umístění:
- 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
Nastavení kalibračních dat refSPAD
Při každém spuštění, po úvodním spuštění, může zákaznická aplikace načíst kalibrační data refSPAD po volání funkce VL53LX_DataInit() pomocí VL53LX_SetCalibrationData().
Doporučuje se získat celou kalibrační strukturu voláním VL53LX_GetCalibrationData(). Upravte osm parametrů popsaných v části 6.1.3 Získání výsledků kalibrace refSPAD a zavolejte VL53LX_SetCalibrationData().
Kalibrace přeslechů
Crosstalk (XTalk) je definován jako množství signálu přijatého na zpětném poli, které je způsobeno odrazem světla VCSEL uvnitř ochranného okénka (krycího skla) přidaného na vrch modulu z estetických důvodů.
V závislosti na kvalitě krycího skla může tento parazitní signál ovlivnit výkon zařízení. VL53L3CX má vestavěnou korekci, která tento problém kompenzuje.
Kalibrace přeslechů se používá k odhadu velikosti korekce potřebné ke kompenzaci účinku krycího skla přidaného na modul.
Výstup kalibrace přeslechu obsahuje mnoho parametrů, které definují model přeslechu, jak je popsáno v části 6.2.3 Získání výsledků kalibrace přeslechů.
Funkce kalibrace přeslechů
Pro kalibraci přeslechů je k dispozici následující vyhrazená funkce: VL53LX_PerformXTalkCalibration(&VL53L3Dev);
Poznámka: Tato funkce musí být vyvolána na druhé pozici v kalibrační proceduře, po provedení kalibrace refSPAD a před kalibrací offsetu.
Postup kalibrace přeslechů
Pro provedení kalibrace přeslechů musí být cíl umístěn ve vzdálenosti 600 mm od zařízení. Kalibrace přeslechu by měla být prováděna v tmavém prostředí bez IR příspěvku. Po volání funkcí VL53LX_DataInit() a VL53LX_PerformRefSpadManagement() je třeba zavolat vyhrazenou kalibrační funkci pomocí: VL53LX_PerformXTalkCalibration(&VL53L3Dev). Když jsou tyto funkce volány, provede se kalibrace přeslechů a ve výchozím nastavení se použije korekce přeslechů.
Získání výsledků kalibrace přeslechů
Výsledky kalibrace se skládají mimo jiné z histogramu a parametru zvaného „rovinný offset“. Posun roviny představuje množství aplikované korekce a histogram je rozdělení korekce na každé přihrádce. Funkce VL53LX_GetCalibrationData() vrací všechna kalibrační data. Vrácená struktura VL53LX_CalibrationData_t obsahuje další struktury. Posun roviny je obsažen ve VL53LX_customer_nvm_managed_t: algo_crosstalk_compensation_plane_offset_kcps je kódovaná hodnota s pevným bodem 7.9. Pro získání skutečného čísla je nutné jej vydělit 512.
Jsou vráceny další dvě relevantní struktury: VL53LX_xtalk_histogram_data_t a algo__xtalk_cpo_HistoMerge_kcps. Je povinné je uchovávat.
Nastavení kalibračních dat přeslechů
Po zavolání funkce VL53LX_DataInit() může zákazník načíst kalibrační data přeslechů pomocí: VL53LX_SetCalibrationData()
Je lepší zavolat VL53LX_GetCalibrationData(), upravit parametry popsané v předchozí části, včetně struktury xtalk_histogram, a zavolat VL53LX_SetCalibrationData()
Povolit/zakázat kompenzaci přeslechů
Funkce VL53LX_SetXTalkCompensationEnable() povolí nebo zakáže kompenzaci přeslechů.
Poznámka: Kompenzace přeslechů je ve výchozím nastavení zakázána. Chcete-li povolit kompenzaci přeslechů, volejte V53LX_SetXTalkCompensationEnable&VL53L3Dev, 1);
Chcete-li zakázat kompenzaci přeslechů, volejte VL53LX_SetXTalkCompensationEnable&VL53L3Dev, 0);
Poznámka: Tato funkce neprovádí žádnou kalibraci ani načítání přeslechových dat, pouze umožňuje kompenzaci.
Poznámka: Kalibraci nebo načtení funkce kalibračních dat je třeba volat odděleně od této funkce zapnutí/vypnutí (viz sekce výše).
Ofsetová kalibrace
Připájením zařízení na zákaznickou desku nebo přidáním krycího skla může dojít k posunu v dosahu. Tento offset mezi částmi se musí změřit během kalibrace ofsetu. Offsetová kalibrace také umožňuje kalibrovat hodnotu dmax za použití stejných kalibračních podmínek jako offsetová kalibrace.
Funkce offsetové kalibrace
Pro kalibraci offsetu jsou k dispozici následující dvě funkce:
- VL53LX_PerformOffsetSimpleCalibration(Dev, CalDistanceMilliMeter)
- VL53LX_PerformOffsetPerVCSELCalibration(Dev, CalDistanceMilliMeter)
Argumentem funkcí je cílová vzdálenost v milimetrech. Po korekci přeslechů je nutné provést kalibraci offsetu.
VL53LX_PerformOffsetPerVCSELCalibration je nejpřesnější funkce, ale provedení kalibrace trvá déle (čas vynásobený 3).
Postup kalibrace offsetu
Zákazníci si mohou vybrat libovolnou odrazivost grafu umístěnou v jakékoli vzdálenosti (s použitím stejného nastavení jako kalibrace přeslechů). Jediným bodem, který je třeba zkontrolovat, je zajistit, aby byla rychlost signálu měřena mezi 2 a 80 MCps se zvoleným nastavením.
Tabulka 3. Nastavení kalibrace offsetu
Schéma | Vzdálenost | Okolní podmínky | Rychlost signálu |
Žádný | Žádný | Tmavé (žádný IR příspěvek) | 2MCps < Rychlost signálu <80Mcps |
Tyto funkce vrátí dvě varovné zprávy:
- VL53LX_WARNING_OFFSET_CAL_INSUFFICIENT_MM1_SP DS Signál je příliš nízký, přesnost kalibrace offsetu může být snížena.
- VL53LX_WARNING_OFFSET_CAL_PRE_RANGE_RATE_TOO_H Signál GH je příliš vysoký. Přesnost ofsetové kalibrace může být snížena.
Získání výsledků offsetové kalibrace
Funkce VL53LX_GetCalibrationData() vrací všechna kalibrační data. Vrácená struktura VL53LX_CalibrationData_t obsahuje další strukturu nazvanou VL53LX_customer_nvm_managed_t, která obsahuje tři výsledky kalibrace offsetu:
- algo__part_to_part_range_offset_mm
- mm_config__inner_offset_mm
- mm_config__outer_offset_mm
Celkový posun použitý na zařízení je průměrem dvou posledních hodnot. Pokud je vybrána perVCSELCalibration, výstup funkce obsahuje následující data:
- short_a_offset_mm
- short_b_offset_mm
- medium_a_offset_mm
- medium_b_offset_mm
- long_a_offset_mm
- long_bb_offset_mm
V závislosti na zvoleném režimu vzdálenosti (perioda VCSEL) se automaticky použije jeden z těchto posunů.
Výběr režimu korekce posunu
Režim korekce posunu lze nastavit dvěma možnostmi pomocí funkce VL53LX_SetOffsetCorrectionMode.
Poznámka: Ve výchozím nastavení by měl být použit VL53LX_OFFSETCORRECTIONMODE_PERVCSEL. Umožňuje zvýšit přesnost offsetu za periodu VCSEL.
Tabulka 4. Možnosti korekce odsazení
Volána funkce kalibrace offsetu | Možnost použití režimu korekce |
ProveďteSimpleOffsetCalibration | VL53LX_OFFSETCORRECTIONMODE_STANDARD |
ProveďtePerVCSELOffsetCalibration | VL53LX_OFFSETCORRECTIONMODE_PERVCSEL |
Poznámka: Pokud je k dispozici pouze jeden typ kalibrace offsetu, je nutné nastavit režim korekce offsetu na odpovídající možnost. To se neprovádí automaticky.
Nastavení offsetových kalibračních dat
Zákazník může načíst offsetová kalibrační data po volání funkce VL53LX_DataInit() pomocí VL53LX_SetCalibrationData().
Je lepší zavolat VL53LX_GetCalibrationData(), upravit parametry popsané v předchozích částech a zavolat VL53LX_SetCalibrationData()
Kalibrace v zákaznické opravně
V případě, že dojde ke ztrátě kalibračních hodnot v důsledku výměny komponentu v opravně, může zákazník použít speciální postup, kde není potřeba žádné specifické nastavení (cíle).
Kalibrace se skládá ze tří kroků:
- RefSpad
- Přeslechy
- Offsetové kalibrace
RefSpad a Xtalk jsou stejné, jak je popsáno v části 6.1 Kalibrace RefSPAD a části 6.2 Kalibrace přeslechů.
K provedení kalibrace offsetu je k dispozici vyhrazená funkce: VL53LX_PerformOffsetZeroDistanceCalibration.
Před zařízením musí být umístěn terč dotýkající se krycího skla. Cílem může být jednoduchý list papíru (bez zvláštní potřeby odrazivosti papíru).
Výše uvedená funkce musí být vyvolána a výsledky mohou být získány podobně jako proces popsaný v předchozích částech.
Holé chyby a varování řidiče
Při volání jakékoli funkce ovladače je hlášena chyba ovladače. Možné hodnoty chyb ovladače jsou popsány v následující tabulce. Upozornění slouží k informování uživatele, že některé parametry nejsou optimalizovány. Upozornění nejsou pro hostitele blokující.
Tabulka 5. Popis chyb a varování holých ovladačů
Chybová hodnota | Chybový řetězec API | Výskyt |
0 | VL53LX_ERROR_NONE | Žádná chyba |
-1 | VL53LX_ERROR_CALIBRATION_WARNING | Neplatná kalibrační data |
-4 | VL53LX_ERROR_INVALID_PARAMS | Ve funkci je nastaven neplatný parametr |
-5 | VL53LX_ERROR_NOT_SUPPORTED | Požadovaný parametr není v naprogramované konfiguraci podporován |
-6 | VL53LX_ERROR_RANGE_ERROR | Stav přerušení je nesprávný |
-7 | VL53LX_ERROR_TIME_OUT | Rozsah je přerušen kvůli vypršení časového limitu |
-8 | VL53LX_ERROR_MODE_NOT_SUPPORTED | Požadovaný režim není podporován |
-10 | VL53LX_ERROR_COMMS_BUFFER_TOO_SMALL | Dodávaná vyrovnávací paměť je větší než podporuje I2C |
-13 | VL53LX_ERROR_CONTROL_INTERFACE | Chyba hlášená z funkce IO |
-14 | VL53LX_ERROR_INVALID_COMMAND | Příkaz je neplatný |
-16 | VL53LX_ERROR_REF_SPAD_INIT | Během kalibrace referenčního SPADu došlo k chybě |
-17 | VL53LX_ERROR_GPH_SYNC_CHECK_FAIL | Ovladač není synchronizován se zařízením. Může být potřeba stop/start nebo restart |
-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 | Žádná úspěšná samples při použití celého pole na sample přeslechy. V tomto případě není dostatek informací pro generování nové hodnoty přeslechu. Funkce se ukončí a aktuální parametry přeslechu zůstanou nezměněny |
-23 | VL53LX_ERROR_XTALK_EXTRACTION_SIGMA_L IMIT_FAIL | Avg sigma odhad přeslechů sample je > než maximální povolený limit. V tomto případě přeslechy sample je pro měření příliš hlučné. Funkce se ukončí a aktuální parametry přeslechu zůstanou nezměněny |
-24 | VL53LX_ERROR_OFFSET_CAL_NO_SAMPLE_FA IL | Při kalibraci offsetu došlo k chybě. Zkontrolujte, zda je nastavení v souladu s doporučeními ST. |
-25 | VL53LX_ERROR_OFFSET_CAL_NO_SPADS_ENA BLED_FAIL | |
-28 | VL53LX_WARNING_REF_SPAD_CHAR_NOT_EN OUGH_SPADS | Varování: Počet nalezených padů je příliš nízký na získání přesné kalibrace refSpadManagement. Ujistěte se, že je nastavení v souladu s doporučeními ST. |
-29 | VL53LX_WARNING_REF_SPAD_CHAR_RATE_TO O_HIGH | Varování: Rychlost signálu byla zjištěna příliš nízká na získání přesné kalibrace refSpadManagement. Ujistěte se, že je nastavení v souladu s doporučeními ST. |
-30 | VL53LX_WARNING_REF_SPAD_CHAR_RATE_TO O_LOW | Varování: Počet nalezených padů je příliš nízký pro získání přesné kalibrace offsetu. Ujistěte se, že je nastavení v souladu s doporučeními ST. |
-31 | VL53LX_WARNING_OFFSET_CAL_MISSING_SA MPLES | Během kalibrace offsetu došlo k varování. Ujistěte se, že nastavení je v souladu s doporučeními 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 | Během kalibrace přeslechů došlo k varování. Ujistěte se, že je nastavení v souladu s doporučeními ST. |
-41 | VL53LX_ERROR_NOT_IMPLEMENTED | Volaná funkce není implementována |
Historie revizí
Datum | Verze | Změny |
28. září - 2020 | 1 | Počáteční vydání |
02. prosince - 2021 | 2 | Aktualizovány struktury vrácené v části 6.2.3 Získání výsledků kalibrace přeslechů |
03. června 2022 | 3 | Část 3.1 Holý ovladač: přidána poznámka týkající se kalibrace Část 5.4 Detekce šmouh na krycím skle: přidána poznámka týkající se opravy šmouh |
DŮLEŽITÉ UPOZORNĚNÍ – ČTĚTE POZORNĚ
STMicroelectronics NV a její dceřiné společnosti (“ST”) si vyhrazují právo provádět změny, opravy, vylepšení, úpravy a vylepšení produktů ST a/nebo tohoto dokumentu kdykoli bez upozornění. Kupující by měli před zadáním objednávky získat nejnovější relevantní informace o produktech ST. Produkty ST jsou prodávány v souladu s prodejními podmínkami ST platnými v době potvrzení objednávky.
Kupující jsou výhradně odpovědní za výběr, výběr a použití produktů ST a ST nepřebírá žádnou odpovědnost za pomoc s aplikací nebo design produktů kupujících.
Společnost ST zde neuděluje žádnou výslovnou ani předpokládanou licenci k právu duševního vlastnictví.
Další prodej produktů ST s ustanoveními odlišnými od informací uvedených v tomto dokumentu ruší jakoukoli záruku poskytnutou společností ST na takový produkt. ST a logo ST jsou ochranné známky společnosti ST. Další informace o ochranných známkách ST viz www.st.com/trademarks. Všechny ostatní názvy produktů nebo služeb jsou majetkem jejich příslušných vlastníků.
Informace v tomto dokumentu nahrazují a nahrazují informace dříve uvedené v předchozích verzích tohoto dokumentu. © 2022 STMicroelectronics – Všechna práva vyhrazena
Dokumenty / zdroje
![]() |
ST VL53L3CX Snímač doby letu [pdfUživatelská příručka VL53L3CX Snímač doby letu, VL53L3CX, Snímač vzdálenosti letu, Snímač vzdálenosti letu, Snímač vzdálenosti |