ST VL53L3CX Repülési idő távolságmérő Használati útmutató

Bevezetés
A VL53L3CX egy repülési idő (ToF) távolságmérő érzékelő modul.
Ennek a felhasználói kézikönyvnek az a célja, hogy leírja az integrációs modellt és a függvénykészletet, amelyet a VL53L3CX csupasz illesztőprogram segítségével meg kell hívni a tartományadatok lekéréséhez.
VL53L3CX rendszer végeview
A VL53L3CX rendszer a VL53L3CX modulból és a gazdagépen futó illesztőprogramból áll.
Ez a dokumentum leírja a gazdagép számára elérhető illesztőprogram-funkciókat, amelyek az eszköz vezérlését és a nem linuxos gazdagépekkel való integrációhoz szükséges tartományadatok beszerzését szolgálják.

1. ábra VL53L3CX rendszer
Jegyzet:
Jelen dokumentum a megvalósított és érvényesített funkciókat írja le. Az illesztőprogramokban elérhető bármely más funkciót nem szabad használni, ha az nincs leírva ebben a dokumentumban.
A csupasz illesztőprogram a VL53L3CX eszköz használatához szükséges funkciók egy sorának megvalósítása. Minimális feltételezéseket tesz az operációs rendszer integrációjával és szolgáltatásaival kapcsolatban. Mint ilyen, a műveletek sorrendje, a végrehajtási/szálképzési modell, a platform adaptációja és az eszközstruktúrák kiosztása nem része a csupasz illesztőprogram-megvalósításnak, hanem nyitva marad az integrátor számára.
A csupasz illesztőprogram-hívások sorrendjének követnie kell a jelen dokumentumban meghatározott szabályokat.
Határozott funkcionális leírás
Ez a rész röviden leírja a VL53L3CX hatótávolság-mérő eszköz funkcionális képességeit.
Tartózkodási sorrend
Az eszköz kézfogási mechanizmussal működik, szabványos megszakításkezelési séma alapján.
Minden tartomány megadása után a gazdagép beszerzi a tartományadatokat, és a megszakítás törlésével engedélyezi a következő tartományozást. Ezt a folyamatot kézfogási mechanizmusnak nevezik. A következő tartomány akkor aktiválódik, ha az aktuális befejeződött, és ha a gazdagép törölte az előző függőben lévő megszakítást.
A megszakítási mechanizmus gyorsabb adatátvitelt tesz lehetővé anélkül, hogy kommunikációs vagy aszinkronizálási problémák miatt bármilyen tartományi érték elveszne. A kézfogási fázis során a gazdagép bizonyos adatfeldolgozást végez. A mérési sorrend funkcionális leírása az alábbi ábrán látható.

A kézfogási sorrend lehetővé teszi a belső paraméterek kiszámítását és alkalmazását a következő tartományban.
A kézfogást a csupasz vezető használójának kell végrehajtania. Az új mérés vétele utáni új tartomány engedélyezésének késleltetése kulcsfontosságú a rendszer általános mérési sebességéhez.
Időzítési szempontok
Az időzítések bemutatásra kerülnek a 3. ábrán. Szekvencia és időzítési célok mérése.
A gazdagép megkaphatja a legfrissebb elérhető tartományt az aktuális tartomány időtartama (tartomány-időzítési költségvetése) során.
Ha a gazdagép késleltetést vezet be a megszakítás törléséhez, a következő tartomány leáll, amíg a függőben lévő megszakítást törlik.
Jegyzet: Időpontok jelezve a 3. ábrán. A tartományok sorrendje és az időzítési célok tipikus időzítések. A gazdagép módosíthatja az alapértelmezett időzítési költségkeretet az 5.1 Időzítési költségvetésben leírt dedikált illesztőprogram-funkció használatával. A gazdagép dönthet úgy, hogy módosítja az időzítési költségkeretet az alkalmazás szinkronizálása vagy a tartomány pontosságának növelése érdekében.
A következő ábrán a „Boot”, „SW standby” és „Init” 40 ms-ig tart. Ez az idő az eszköz helyes inicializálásához szükséges, és független a platformtól vagy a felhasznált időzítési költségvetéstől. Az első tartomány, a „Tartomány1”, nem érvényes, mivel az átfogó ellenőrzés nem lehetséges. Ez azt jelenti, hogy az első érvényes tartományérték a „Tartomány2”, amely 40 ms és az időzítési költségvetés időtartamának kétszerese után érhető el.

3. ábra: Hatósági sorrend és időzítési célok
Csupasz driver alapvető funkciók leírása
Ez a rész azokat az illesztőprogram-hívási folyamatokat írja le, amelyeket követni kell a távolságmérés végrehajtásához
a VL53L3CX használatával.
A VL53L3CX illesztőprogramot két alkalmazási osztályban használják:
- Az eszközök kalibrálásához használt gyári alkalmazások, jellemzően a végtermék gyártási tesztje során (gyári áramlás)
- Terepi alkalmazások, amelyek összegyűjtik az összes végfelhasználói alkalmazást a VL53L3CX eszköz használatával (tartományos áramlás)
Csupasz sofőr
A csupasz meghajtó gyári folyamatát a következő ábra szemlélteti.

4. ábra: VL53L3CX API tartomány-áramlás (gyári)
Jegyzet: A kalibrációs áramlás megváltoztatja a távolság módot. A SetDistanceMode() függvény meghívása kötelező, ha az érzékelőt közvetlenül kalibrálás után szeretné használni.
A csupasz vezető hatótávolság-áramlását a következő ábra szemlélteti.

5. ábra: VL53L3CX API tartomány-folyamat (mező)
Rendszer inicializálása
A következő szakasz a mérés megkezdése előtt a rendszer inicializálásához szükséges API függvényhívásokat mutatja be.
Várja meg a rendszerindítást
A VL53LX_WaitDeviceBooted() függvény biztosítja, hogy az eszköz elinduljon és készen álljon. Ennek a függvénynek a meghívása nem kötelező.
Jegyzet: Ez a funkció blokkolja a gazdagép végrehajtását. Ez a funkció nem blokkolhat 4 ms-nál tovább, feltételezve:
- 400 kHz I2C frekvencia
- 2 ms késleltetés tranzakciónként
Adat init
A VL53LX_DataInit() függvényt minden alkalommal meg kell hívni, amikor az eszköz kilép a „kezdeti rendszerindítási” állapotból. Elvégzi az eszköz inicializálását. A VL53LX_DataInit() függvény meghívása után a kalibrációs adatokat a VL53LX_SetCalibrationData() függvény segítségével kell betölteni.
VL53L3CX-től kezdve
A nem Linux gépeken a csupasz illesztőprogram felhasználója az alkalmazás igényeinek, a platform képességeinek és a csupasz illesztőprogram-hívási sorrend szabályainak megfelelő módon hívja meg az illesztőprogramot.
Indítson el egy mérést
A mérés elindításához meg kell hívni a VL53LX_StartMeasurement() függvényt.
Várja meg az eredményt: lekérdezés vagy megszakítás
Háromféleképpen lehet tudni, hogy rendelkezésre áll-e a mérés. A házigazda:
- hívjon le egy lekérdezési funkciót
- lekérdezés egy driver funkcióról
- várja meg a fizikai megszakítást
Driver lekérdezés az eredmény állapotának lekéréséhez
A VL53LX_WaitMeasurementDataReady() függvény belső állapotot kérdez le, amíg a mérés készen nem áll.
Jegyzet: Ez a funkció blokkol, mivel belső lekérdezés történik.
Gazda lekérdezése az eredmény állapotának lekéréséhez
A gazdagép lekérdezheti a VL53LX_GetMeasurementDataReady() függvényt, hogy tudja, mikor áll készen az új mérés. Ez a funkció nem blokkol.
Fizikai megszakítás használata
Egy alternatív és előnyben részesített módja a tartomány státuszának megszerzésének a fizikai megszakítási kimenet használata. Alapértelmezés szerint a GPIO1 lecsökken, amikor egy új mérés készen áll.
Ez a láb csak egy kimeneti láb, ezen az eszközön nincs bemeneti megszakító érintkező. A megszakítást a VL53LX_ClearInterruptAndStartMeasurement() illesztőprogram függvény meghívásával kell törölni.
Szerezzen mérést
Tartományonként több objektum is észlelhető, és objektumonként mérési adatok jelenthetők. A VL53LX_GetMultiRangingData() használható távolsági adatok lekérésére, ha több objektum van a tartományban. view. Ha ezt a függvényt hívja meg, hogy az eszköz több hatótávolságú eredményt kapjon, a VL53LX_MultiRangingData_t nevű struktúra kerül visszaadásra.
Állítsa le a mérést
Folyamatos módban a gazdagép leállíthatja a mérést a VL53LX_StopMeasurement() függvény meghívásával. Ha a leállítási kérés tartománymérés közben történik, akkor a mérés azonnal megszakad.
Adatstruktúrák rangsorolása
A VL53LX_MultiRangingData_t struktúra a következő adatokat tartalmazza, amelyek az összes észlelt célpontra vonatkoznak:
- Idő St.amp: nincs implementálva.
- Streamek száma: ez a 8 bites egész szám minden tartományban növelt számlálót ad. Az érték 0-val kezdődik, és 1-gyel növekszik 1-ig. Amikor eléri a 255-öt, újra 255-ról 128-re kezdődik.
- Talált objektumok száma: 8 bites egész szám, amely megadja a talált objektumok számát.
- Tartományadatok [VL53LX_MAX_RANGE_RESULTS]: egy VL53LX_TargetRangeData_t típusú szerkezeti táblázat. A célok maximális számát a VL53LX_MAX_RANGE_RESULTS adja meg, és alapértelmezés szerint 4.
- Megváltozott az X talk értéke: 8 bites egész érték, amely jelzi, ha az áthallás értéke megváltozott.
- Hatékony Spad Rtn szám: 16 bites egész szám, amely visszaadja az effektív egyfoton-lavinadióda (SPAD) számát az aktuális tartományhoz. A valós érték meghatározásához el kell osztani 256-tal.
Egy észlelt célpontonként egy szerkezet (alapértelmezés szerint legfeljebb 4), VL53LX_TargetRangeData_t néven, amely a következő konkrét eredményeket tartalmazza minden egyes észlelt cél esetében.
- TartományMaxMilliMeter: egy 16 bites egész szám, amely a nagyobb észlelt távolságot jelzi.
- Tartomány minMilliméter: egy 16 bites egész szám, amely a kisebb észlelt távolságot jelzi.
- SignalRateRtnMegaCps: ez az érték a visszatérési jel aránya MegaCountPer Second-ban (MCPS), ez egy 16.16-os fixpont érték. A valós érték meghatározásához el kell osztani 65536-tal.
- AmbientRateRtnMegaCps: ez az érték a visszatérő környezeti sebesség (MCPS-ben), ez egy 16.16-os fixpontos érték, amely gyakorlatilag az érzékelő által mért környezeti fény mennyiségét mutatja. A valós érték meghatározásához el kell osztani 65536-tal.
- SigmaMilliMeter: ez a 16.16-os fixpontérték az áramtartomány szórásának becslése, milliméterben kifejezve. A valós érték meghatározásához el kell osztani 65536-tal.
- Tartomány Milliméter: egy 16 bites egész szám, amely a tartomány távolságát jelzi milliméterben.
- Tartomány állapota: ez egy 8 bites egész szám, amely az aktuális mérés tartományának állapotát jelzi. Az érték = 0 azt jelenti, hogy a tartomány érvényes. Lásd: 1. táblázat. Tartomány állapota.
- Kiterjesztett hatótáv: ez egy 8 bites egész szám, amely azt jelzi, hogy a tartomány feloldásra került (csak nagy távolságok esetén)
Egy adott viselkedés akkor valósul meg, ha a célpont nem észlelhető. Ha a cél nem észlelhető, és a mérés érvényes, akkor a következő értékek jelennek meg a VL53LX_TargetRangeData_t struktúrában:
- RangeMaxMilliMeter: 8191-re kényszerítve.
- RangeMinMilliMeter: kényszerítve 8191-re.
- SignalRateRtnMegaCps: 0-ra kényszerítve.
- AmbientRateRtnMegaCps: a környezeti sebesség értékét általában a rendszer számítja ki.
- SigmaMilliMeter: 0-ra kényszerítve.
- RangeMilliMeter: 8191-re kényszerülve.
- RangeStatus: 255-re kényszerítve.
- ExtendedRange: 0-ra kényszerítve.
1. táblázat: Tartomány állapota
| Érték | RangeStatus String | Megjegyzés |
| 0 | VL53LX_RANGESTATUS_RANGE_VALID | A távolságmérés érvényes |
| 1 | VL53LX_RANGESTATUS_SIGMA_FAIL | Növeli, ha a szigmabecslő ellenőrzése meghaladja a belső meghatározott küszöbértéket. A szigma becslő minőségi információt ad a jelről. |
| 2 | VL53LX_RANGESTATUS_SIGNAL_FAIL | Felemelkedik, ha a jel túl alacsony a cél észleléséhez. |
| 4 | VL53LX_RANGESTATUS_OUTOFBOUNDS_FAIL | Emelve, ha a tartomány eredménye kívül esik a határokon |
| 5 | VL53LX_RANGESTATUS_HARDWARE_FAIL | HW vagy VCSEL hiba esetén emelik |
| 6 | VL53LX_RANGESTATUS_RANGE_VALID_NO_WR AP_CHECK_FAIL | Nem végeztek átfogó ellenőrzést (ez a legelső tartomány) |
| 7 | VL53LX_RANGESTATUS_WRAP_TARGET_FAIL | Megtörtént a körözés |
| 8 | VL53LX_RANGESTATUS_PROCESSING_FAIL | Belső feldolgozási hiba |
| 10 | VL53LX_RANGESTATUS_SYNCRONISATION_INT | Az init után egyszer emelve a tartomány értéket figyelmen kívül kell hagyni |
| 11 | VL53LX_RANGESTATUS_RANGE_VALID_MERGE D_PULSE | A távolság rendben van, de a közölt távolság több cél egyesítésének eredménye. |
| 12 | VL53LX_RANGESTATUS_TARGET_PRESENT_LA CK_OF_SIGNAL | Jelzi, hogy van cél, de a jel túl alacsony a távolság jelentéséhez |
| 14 | VL53LX_RANGESTATUS_RANGE_INVALID | A tartományadatok negatívak, és figyelmen kívül kell őket hagyni |
| 255 | VL53LX_RANGESTATUS_NONE | A cél nem észlelhető, figyelmeztetés vagy hiba nélkül |
A legelső mérés nem tartalmaz körvizsgálatot. Ez a távolságmérés elvehető.
Jegyzet: Az 1. tartományállapotot gyakran a zajos mérések okozzák. A szigma becslést a kezelt jelek SNR-je befolyásolja.
Jegyzet: A 4. tartomány állapota megemelkedik, ha a mérési referencia hiba lép fel. Ez kiugró értékeket okozhat negatív mérési eredményekként vagy rendkívül magas tartományi értékekként.
További illesztőprogram-funkciók leírása
Időzítési költségvetés
Az időzítési költségkeret az az idő, amelyet a felhasználó egy tartománymérés elvégzésére szán. A VL53LX_SetMeasurementTimingBudgetMicroSeconds() az időzítési költségvetés beállítására szolgáló függvény. Az alapértelmezett időzítési költségkeret értéke 33 ms. Minimum 8 ms, maximum 500 ms.
Plample, az időzítési költségkeret 66 ms-ra történő beállításához: status = VL53LX_SetMeasurementTimingBudgetMicroSeconds(&VL53L3Dev, 66000 );
A VL53LX_GetMeasurementTimingBudgetMicroSeconds() függvény a programozott időzítési költségvetést adja vissza.
Távolság mód
Egy funkció került hozzáadásra a belső beállítások optimalizálására a felhasználó által kért távolságtól függően. A távolság mód megváltoztatásának előnyeit az alábbi táblázat részletezi.
2. táblázat Távolsági módok
| Lehetséges távolság mód | Előny / megjegyzések |
| Rövid | Jobb környezeti immunitás |
| Közepes (alapértelmezett) | Maximális távolság |
| Hosszú | Alacsonyabb energiafogyasztás |
A használandó függvény neve VL53LX_SetDistanceMode().
A sofőr segíthet a gazdának az optimális távolsági mód kiválasztásában. A környezeti feltételektől függően minden tartományban egy adott érték jelenik meg, amely jelzi a legjobb választást.
A lehetséges értékek a következők:
- VL53LX_DISTANCE_SHORT
- VL53LX_DISTANCE_MEDIUM
- VL53LX_DISTANCE_LONG
Hangolási paraméterek
A hangolási paraméterek lehetővé teszik, hogy megtalálják a legjobb illeszkedést az érzékelő és a gazdagép használati esetei között. Minden használati esethez hangolási paraméterek készlete definiálható és betölthető a meghajtóba.
A legtöbb hangolási paraméter hangolható küszöbérték, amelyet a jelkezelési algoritmusban használnak. Ezeknek a paramétereknek a módosítása lehetővé teszi az algoritmus számára, hogy technikai kompromisszumokat hozzon létre az adott ügyfél használati esetéhez képest.
Állítson be egy hangolási paramétert
Létezik egy extra funkció a hangolási paraméterek betöltésére. Speciális felhasználási esetekben az ST javasolhat néhány speciális paramétert, amelyek egy kulcsból és egy értékből állnak.
A hangolási paraméterek listája és alapértelmezett értékeik a vl53lx_tuning_parm_defaults.h fájlban találhatók. file. Ebben vagy módosítsa a hangolási paraméter értékét file és fordítsa újra a kódot, vagy használja a VL53LX_SetTuningParameter() függvényt a hangolási paraméter betöltéséhez.
A hangolási paraméter megváltoztatása módosíthatja az eszköz teljesítményét. Az ST az alapértelmezett értékek használatát javasolja az optimális eredmény érdekében.
Javítsa a pontosságot
Az eszköz pontosságának javítása érdekében használja a VL53LX_TUNINGPARM_PHASECAL_PATCH_POWER hangolási paramétert. Alapértelmezés szerint ez a hangolási paraméter nincs alkalmazva (az érték 0-ra van állítva).
Az ST azt javasolja, hogy a static_init után 2-re állítsa a kalibrálás és az áramlások tartományának értékét. Ebben az esetben a referenciajel mérésének végrehajtási ideje megnő, és nagyobb pontosságot tesz lehetővé. A paraméter 2-re állítása 240 ms-mal növeli az első mérés időtartamát.
Javítja a késleltetést és a maximális hatótávolságot
Amikor a cél mozog, a VL53L3CX-nek több tartományra is szüksége lehet a reakcióhoz, a jelenettől függően. A várakozási idő javításának egyik módja a VL53LX_TUNINGPARM_RESET_MERGE_THRESHOLD paraméter hangolása. Az alapértelmezett érték 15000 XNUMX. Csökkenthető a késleltetés javítása érdekében, de ez befolyásolja a maximális hatótávolságot.
Ha a felhasználó növeli az értéket, a maximális hatótávolság javítható, de a késleltetés kihat.
A fedőüveg elkenődésének észlelése
Az áthallást befolyásolhatja a fedőüveg elkenődése. A VL53L3CX beágyazott egy funkciót, amely képes észlelni a foltokat menet közben, és új áthalláskorrekciós értéket alkalmazni. A felhasználó engedélyezheti/letilthatja ezt a funkciót a VL53LX_SmudgeCorrectionEnable() meghívásával.
A következő három lehetőség állítható be ezzel a funkcióval:
- VL53LX_SMUDGE_CORRECTION_NONE a korrekció letiltásához
- VL53LX_SMUDGE_CORRECTION_CONTINUOUS a folyamatos korrekció engedélyezéséhez
- VL53LX_SMUDGE_CORRECTION_SINGLE az indítási parancs fogadása utáni egyetlen javítás engedélyezéséhez.
A foltészlelés minden tartományon fut. Ha bizonyos feltételek teljesülnek (nincs tárgy 80 cm alatt, a környezeti megvilágítás szintje egy küszöb alatt van, és az áthallási érték 1 kcps feletti), új áthallási érték kerül kiszámításra.
Ha a foltjavítás be van állítva, akkor az áthallási érték korrigálásra kerül, és a HasXtalkValueChanged jelző be van állítva. Ez a jelző automatikusan törlődik a következő tartományban.
Megjegyzés: A foltjavítás a következőkre korlátozódik:
- 1.2 m rövid távolság módban
- 1.7 m közepes távolság módban
- 3.8 m távolsági üzemmódban.
I2C cím
A VL2L53CX alapértelmezett I3C-címe 0x52. Egyes alkalmazásoknak más I2C-eszközcímet kell beállítaniuk. Ez a helyzet plample, amikor több VL53L3CX alkatrész osztozik ugyanazon az I2C buszon.
Az ügyfélnek a következő eljárást kell alkalmaznia:
- A VL53L3CX táblát körültekintően kell megtervezni. Az Xshut és a GPIO1 (megszakítási) érintkezőket külön kell vezérelni minden VL53L3CX esetén
- A gazdagépnek be kell állítania a HW Standby-t, alacsonyra állítva az Xshut tűt, az összes VL53L3CX-et.
- A gazdagép felemeli a VL1L53CX 3. Xshut lábát
- A gazdagép meghívja a VL53LX_SetDeviceAddress() függvényt
- A gazdagép megismétli az utóbbi három pontot, mivel az összes VL53L3CX cím helyesen van beállítva.
Plample, a status = VL53LX_SetDeviceAddress(&VL53L3Dev, WantedAddress) függvény meghívásával a WantedAddress értéke lesz beállítva új I2C címként.
Ügyfél gyári kalibrációs funkciói
Az eszköz teljes teljesítményének kihasználása érdekében a VL53L3CX illesztőprogram olyan kalibrációs funkciókat tartalmaz, amelyeket egyszer kell futtatni az ügyfél gyártósorán.
Kalibrációs eljárásokat kell futtatni, hogy kompenzálják azokat a paramétereket, amelyek befolyásolhatják az eszköz teljesítményét. A gazdagépen tárolt kalibrációs adatokat minden indításkor be kell tölteni a VL53L3CX-be egy dedikált illesztőprogram segítségével. Három kalibráció szükséges: refSPAD, áthallás és offset.
A kalibrációs függvények sorrendje a következő:
- refSPAD
- áthallás
- beszámítás
A három kalibrációs funkció elvégezhető szekvenciális módban vagy külön-külön is. Egyedi futtatáskor az előző lépés adatait be kell tölteni a kalibráció futtatása előtt.
RefSPAD kalibráció
Az egyfoton lavinadióda (SPAD) számát az ST-nél végzett utolsó modulteszt során kalibrálják. Ezt a részenkénti értéket az NVM tárolja, és a rendszerindítás során automatikusan betöltődik az eszközbe.
Ez a kalibráció lehetővé teszi a SPAD-ok számának beállítását az eszköz dinamikájának optimalizálása érdekében.
Ha azonban fedőüveget helyez a modul tetejére, ez befolyásolhatja ezt a kalibrációt. Az ST azt javasolja, hogy az ügyfél a végtermék alkalmazásakor ismételten végezze el ezt a kalibrálást. Ugyanez az FMT-n futó algoritmus kerül alkalmazásra a függvény meghívásakor: az algoritmus három helyen keres: 1 (1x csillapított SPAD), 2 (5x csillapított SPAD) és 3 (10 x csillapított SPAD). A kiválasztott SPAD-ok száma a jeltelítettség elkerülése érdekében történik.
RefSPAD kalibrációs funkció
A SPAD-kalibrációhoz a következő funkció érhető el: VL53LX_PerformRefSpadManagement(VL53LX_DEV Dev)
Jegyzet: Ezt a funkciót kell először meghívni a kalibrálási eljárás során.
A funkció a következő három figyelmeztető üzenetet képes megjeleníteni:
- VL53LX_WARNING_REF_SPAD_CHAR_NOT_ENOUGH_SPA S Kevesebb mint 5 jó SPAD áll rendelkezésre, a kimenet nem érvényes
- VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_HIGH A keresés végén > 40.0 Mcps Offset-stabilitás romolhat.
- VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_LOW A keresés végén a referenciasebesség < 10.0 Mcps. Az eltolási stabilitás romolhat.
RefSPAD kalibrációs eljárás
Ehhez a kalibrációhoz nem kell különösebb feltételeket betartani, kivéve azt, hogy nem szabad céltárgyat helyezni a készülék tetejére.
A kalibrálás végrehajtásának ideje mindössze néhány milliszekundum.
Ezt a függvényt a VL53LX_DataInit() függvény meghívása után kell meghívni.
A refSPAD kalibrálási eredmények lekérése
A VL53LX_GetCalibrationData() függvény az összes kalibrációs adatot visszaadja. A VL53LX_CalibrationData_t visszaadott struktúra egy másik VL53LX_customer_nvm_managed_t struktúrát tartalmaz, amely a nyolc refSPAD kalibrációs paramétert tartalmazza:
- ref_spad_man__num_requested_ref_spads: ez az érték 5 és 44 között van. Megadja a kiválasztott SPAD-ek számát
- ref_spad_man__ref_location: ez az érték 1, 2 vagy 3 lehet. Megadja a SPAD-ok helyét a referenciaterületen.
- hat további paraméter adja meg a megfelelő spad térképeket a kiválasztott helyhez:
- 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
A refSPAD kalibrációs adatok beállítása
Minden indításkor, a kezdeti rendszerindítás után, az ügyfél mezőbeli alkalmazás betöltheti a refSPAD kalibrációs adatokat a VL53LX_DataInit() függvény meghívása után a VL53LX_SetCalibrationData() használatával.
Javasoljuk, hogy a teljes kalibrációs struktúrát a VL53LX_GetCalibrationData() meghívásával kapja meg. Módosítsa a 6.1.3 A refSPAD kalibrálási eredmények lekérése részben leírt nyolc paramétert, és hívja meg a VL53LX_SetCalibrationData() parancsot.
Áthallás kalibrálása
Az áthallás (XTalk) a visszatérő tömbön kapott jel mennyisége, amely a modul tetejére esztétikai okokból a védőablak (takaróüveg) belüli VCSEL-fényvisszaverődésnek köszönhető.
A fedőüveg minőségétől függően ez a parazita jel befolyásolhatja a készülék teljesítményét. A VL53L3CX beépített korrekcióval rendelkezik, amely kompenzálja ezt a problémát.
Az áthallás kalibrálása a modul tetejére helyezett fedőüveg hatásának kompenzálásához szükséges korrekció mértékének becslésére szolgál.
Az áthallás kalibrálásának kimenete számos olyan paramétert tartalmaz, amelyek meghatározzák az áthallási modellt, amint azt a 6.2.3 Az áthallás kalibrálási eredményeinek lekérése című részben ismertetjük.
Áthallás kalibrációs funkció
A következő dedikált funkció érhető el az áthallás kalibrálásához: VL53LX_PerformXTalkCalibration(&VL53L3Dev);
Jegyzet: Ezt a funkciót a kalibrálási eljárás második pozíciójában kell meghívni, a refSPAD kalibráció elvégzése után és az eltolás kalibrálása előtt.
Áthallás kalibrálási eljárás
Az áthallás kalibrálásához egy célpontot kell elhelyezni a készüléktől 600 mm távolságra. Az áthallás kalibrálását sötét környezetben kell elvégezni, infravörös hozzájárulás nélkül. A VL53LX_DataInit() és VL53LX_PerformRefSpadManagement() függvények meghívása után a dedikált kalibrációs függvényt kell meghívni a VL53LX_PerformXTalkCalibration(&VL53L3Dev) használatával. Amikor ezeket a funkciókat hívják, a rendszer áthallás kalibrációt hajt végre, és alapértelmezés szerint alkalmazza az áthallás korrekcióját.
Az áthallás kalibrálási eredményeinek lekérése
A kalibrációs eredmények többek között egy hisztogramból és egy „síkeltolás” nevű paraméterből állnak. A síkbeli eltolás az alkalmazott korrekció mértékét jelöli, a hisztogram pedig a korrekciónak az egyes tálcákon történő újraosztását. A VL53LX_GetCalibrationData() függvény az összes kalibrációs adatot visszaadja. A VL53LX_CalibrationData_t visszaadott struktúra más struktúrákat is tartalmaz. A síkeltolást a VL53LX_customer_nvm_managed_t tartalmazza: algo_crosstalk_compensation_plane_offset_kcps egy fixpont 7.9 kódolt érték. El kell osztani 512-vel, hogy megkapjuk a tényleges számot.
Két másik releváns struktúra jelenik meg: VL53LX_xtalk_histogram_data_t és algo__xtalk_cpo_HistoMerge_kcps. Tárolásuk kötelező.
Az áthallás kalibrálási adatainak beállítása
A VL53LX_DataInit() függvény meghívása után az ügyfél betöltheti az áthallás kalibrálási adatait a következő használatával: VL53LX_SetCalibrationData()
Jobb a VL53LX_GetCalibrationData() meghívása, az előző részben leírt paraméterek módosítása, beleértve az xtalk_histogram szerkezetet, és meghívja a VL53LX_SetCalibrationData() parancsot.
Az áthallás kompenzáció engedélyezése/letiltása
A VL53LX_SetXTalkCompensationEnable() függvény engedélyezi vagy letiltja az áthallás kompenzációt.
Jegyzet: Az áthallás kompenzációja alapértelmezés szerint le van tiltva. Az áthallás kompenzáció engedélyezéséhez hívja a V53LX_SetXTalkCompensationEnable&VL53L3Dev, 1);
Az áthallás kompenzáció letiltásához hívja a VL53LX_SetXTalkCompensationEnable&VL53L3Dev, 0;
Jegyzet: Ez a funkció nem végez kalibrálást vagy áthallás adatbetöltést, csak a kompenzációt engedélyezi.
Jegyzet: A kalibrálást vagy a kalibrációs adatok betöltését ettől az engedélyezési/letiltási funkciótól külön kell meghívni (lásd a fenti szakaszokat).
Offset kalibrálás
Ha a készüléket a vevőtáblára forrasztjuk, vagy fedőüveget helyezünk rá, a hatótávolság eltolást eredményezhet. Ezt a rész-rész eltolást az eltolás kalibrálása során kell mérni. Az eltolás kalibrálása lehetővé teszi a dmax érték kalibrálását is, ugyanazokkal a kalibrációs feltételekkel, mint az eltolás kalibrálása.
Offset kalibrációs funkciók
A következő két funkció érhető el az eltolás kalibrálásához:
- VL53LX_PerformOffsetSimpleCalibration(Dev, CalDistanceMilliMeter)
- VL53LX_PerformOffsetPerVCSELCalibration(Dev, CalDistanceMilliMeter)
A függvények argumentuma a céltávolság milliméterben. Az eltolás kalibrálását az áthallás korrekciója után kell elvégezni.
VL53LX_PerformOffsetPerVCSEL A kalibrálás a legpontosabb funkció, de tovább tart a kalibrálás végrehajtása (az idő 3-mal szorozva).
Offset kalibrálási eljárás
Az ügyfelek bármilyen távolságra elhelyezett diagramreflexiót kiválaszthatnak (ugyanazt a beállítást használva, mint az áthallás kalibrálásánál). Csak azt kell ellenőrizni, hogy a jelsebesség mérése 2 és 80 MCps között legyen a kiválasztott beállítás mellett.
3. táblázat: Offset kalibrálás beállítása
| Diagram | Távolság | Környezeti feltételek | Jelátviteli sebesség |
| Bármilyen | Bármilyen | Sötét (IR hozzájárulás nélkül) | 2MCps < jelsebesség <80Mcps |
Ezek a függvények két figyelmeztető üzenetet adnak vissza:
- VL53LX_WARNING_OFFSET_CAL_INSUFFICIENT_MM1_SP DS A jel túl alacsony. Az eltolási kalibrálás pontossága romolhat.
- VL53LX_WARNING_OFFSET_CAL_PRE_RANGE_RATE_TOO_H GH A jel túl magas. Az eltolás kalibrálásának pontossága csökkenhet.
Eltolásos kalibrálási eredmények beszerzése
A VL53LX_GetCalibrationData() függvény az összes kalibrációs adatot visszaadja. A VL53LX_CalibrationData_t visszaadott struktúra egy másik VL53LX_customer_nvm_managed_t struktúrát tartalmaz, amely a három eltolási kalibrálás eredményét tartalmazza:
- algo__part_to_part_range_offset_mm
- mm_config__inner_offset_mm
- mm_config__outer_offset_mm
Az eszközre alkalmazott teljes eltolás a két utolsó érték átlaga. Ha perVCSELCalibration van kiválasztva, a függvény kimenete a következő adatokat tartalmazza:
- short_a_offset_mm
- short_b_offset_mm
- közepes_a_eltolás_mm
- közepes_b_eltolás_mm
- long_a_offset_mm
- long_bb_offset_mm
A választott távolságmódtól (VCSEL periódus) függően az eltolások egyike automatikusan alkalmazásra kerül.
Az eltoláskorrekciós mód kiválasztása
Az eltoláskorrekciós mód két opcióval állítható be, a VL53LX_SetOffsetCorrectionMode funkció segítségével.
Jegyzet: Alapértelmezés szerint a VL53LX_OFFSETCORRECTIONMODE_PERVCSEL értéket kell használni. Lehetővé teszi az eltolási pontosság növelését VCSEL periódusonként.
4. táblázat: Eltoláskorrekciós lehetőségek
| Eltolás kalibrációs funkció hívva | Használandó korrekciós mód opció |
| Végezzen SimpleOffsetCalibration | VL53LX_OFFSETCORRECTIONMODE_STANDARD |
| PerformPerVCSELOoffsetCalibration | VL53LX_OFFSETCORRECTIONMODE_PERVCSEL |
Jegyzet: Ha csak egy eltolás-kalibrálási típus áll rendelkezésre, akkor kötelező az eltoláskorrekciós módot a megfelelő opcióra állítani. Ez nem történik meg automatikusan.
Eltolás kalibrálási adatok beállítása
Az ügyfél a VL53LX_DataInit() függvény meghívása után töltheti be az eltolási kalibrációs adatokat a VL53LX_SetCalibrationData() használatával.
Jobb a VL53LX_GetCalibrationData() meghívása, az előző részekben leírt paraméterek módosítása és a VL53LX_SetCalibrationData() meghívása.
Vevői javítóműhely kalibrálása
Abban az esetben, ha a kalibrálási értékek elvesznek a javítóműhelyben történt alkatrészcsere miatt, az ügyfél egy erre a célra szolgáló eljárást alkalmazhat, ahol nincs szükség speciális beállításra (célokra).
A kalibrálás három lépésből áll:
- RefSpad
- Áthallás
- Offset kalibrációk
A RefSpad és az Xtalk megegyezik a 6.1. szakasz RefSPAD kalibrálása és a 6.2. szakasz Crosstalk kalibrálása című részben leírtakkal.
Egy dedikált funkció áll rendelkezésre az eltoláskalibrálás végrehajtásához: VL53LX_PerformOffsetZeroDistanceCalibration.
Célt kell kitűzni a készülék elé, érintve a fedőüveget. A cél lehet egy egyszerű papírlap (a papír visszaverődésének különösebb igénye nélkül).
A fenti függvényt meg kell hívni, és az eredményeket az előző részekben leírt folyamathoz hasonlóan lehet lekérni.
Csupasz vezetői hibák és figyelmeztetések
Az illesztőprogram hibája bármely illesztőprogram-funkció meghívásakor jelenik meg. Az illesztőprogram-hibák lehetséges értékeit a következő táblázat írja le. A figyelmeztetések célja, hogy tájékoztassák a felhasználót arról, hogy egyes paraméterek nincsenek optimalizálva. A figyelmeztetések nem blokkolják a gazdagépet.
5. táblázat: Csupasz illesztőprogram-hibák és figyelmeztetések leírása
| Hiba érték | API hiba karakterlánc | Esemény |
| 0 | VL53LX_ERROR_NONE | Nincs hiba |
| -1 | VL53LX_ERROR_CALIBRATION_WARNING | Érvénytelen kalibrációs adatok |
| -4 | VL53LX_ERROR_INVALID_PARAMS | Érvénytelen paraméter van beállítva egy függvényben |
| -5 | VL53LX_ERROR_NOT_SUPPORTED | A kért paraméter nem támogatott a programozott konfigurációban |
| -6 | VL53LX_ERROR_RANGE_ERROR | A megszakítás állapota nem megfelelő |
| -7 | VL53LX_ERROR_TIME_OUT | Időtúllépés miatt a mérés megszakad |
| -8 | VL53LX_ERROR_MODE_NOT_SUPPORTED | A kért mód nem támogatott |
| -10 | VL53LX_ERROR_COMMS_BUFFER_TOO_SMALL | A mellékelt puffer nagyobb, mint az I2C támogatás |
| -13 | VL53LX_ERROR_CONTROL_INTERFACE | Hiba jelent meg az IO funkcióból |
| -14 | VL53LX_ERROR_INVALID_COMMAND | A parancs érvénytelen |
| -16 | VL53LX_ERROR_REF_SPAD_INIT | Hiba történt a referencia SPAD kalibráció során |
| -17 | VL53LX_ERROR_GPH_SYNC_CHECK_FAIL | Az illesztőprogram nincs szinkronban az eszközzel. Leállítás/indítás vagy újraindítás szükséges lehet |
| -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 | Nincs sikeres samples, ha a teljes tömböt használjuk s-hezample az áthallás. Ebben az esetben nincs elég információ az új áthallási érték létrehozásához. A funkció kilép, és változatlanul hagyja az aktuális áthallási paramétereket |
| -23 | VL53LX_ERROR_XTALK_EXTRACTION_SIGMA_L IMIT_FAIL | Az áthallás átlagos szigma becslése sample > a megengedett maximális határértéknél. Ebben az esetben az áthallás sample túl zajos a méréshez. A funkció kilép, és változatlanul hagyja az aktuális áthallási paramétereket |
| -24 | VL53LX_ERROR_OFFSET_CAL_NO_SAMPLE_FA IL | Hiba történt az eltolás kalibrálása során. Az ellenőrzés beállítása összhangban van az ST ajánlásokkal. |
| -25 | VL53LX_ERROR_OFFSET_CAL_NO_SPADS_ENA BLED_FAIL | |
| -28 | VL53LX_WARNING_REF_SPAD_CHAR_NOT_EN OUGH_SPADS | Figyelmeztetés: a talált spad-ok száma túl alacsony a pontos refSpadManagement kalibrációhoz. Győződjön meg arról, hogy a beállítás összhangban van az ST ajánlásokkal. |
| -29 | VL53LX_WARNING_REF_SPAD_CHAR_RATE_TO O_HIGH | Figyelmeztetés: a jelfrekvencia túl alacsony a refSpadManagement pontos kalibrálásához. Győződjön meg arról, hogy a beállítás összhangban van az ST ajánlásokkal. |
| -30 | VL53LX_WARNING_REF_SPAD_CHAR_RATE_TO O_LOW | Figyelmeztetés: A spad-ok száma túl alacsony a pontos offset-kalibráláshoz. Győződjön meg arról, hogy a beállítás összhangban van az ST ajánlásokkal. |
| -31 | VL53LX_WARNING_OFFSET_CAL_MISSING_SA MPLES | Figyelmeztetés az eltolás kalibrálása közben. Győződjön meg arról, hogy a beállítás összhangban van az ST ajánlásokkal. |
| -32 | VL53LX_WARNING_OFFSET_CAL_SIGMA_TOO_ MAGAS | |
| -33 | VL53LX_WARNING_OFFSET_CAL_RATE_TOO_HI GH | |
| -34 | VL53LX_WARNING_OFFSET_CAL_SPAD_COUNT_TOO_LOW | |
| -38 | VL53LX_WARNING_XTALK_MISSING_SAMPLES | Figyelmeztetés az áthallás kalibrálása közben. Győződjön meg arról, hogy a beállítás összhangban van az ST ajánlásokkal. |
| -41 | VL53LX_ERROR_NOT_IMPLEMENTED | A meghívott függvény nincs megvalósítva |
Revíziótörténet
| Dátum | Változat | Változások |
| 28. szeptember 2020 | 1 | Kezdeti kiadás |
| 02. december 2021 | 2 | Frissítette a 6.2.3 Áthallás kalibrálási eredmények lekérése szakaszban visszaadott struktúrákat |
| 03-június 2022 | 3 | 3.1. szakasz Csupasz illesztőprogram: megjegyzés hozzáadva a kalibrációhoz. 5.4. szakasz Fedőüveg szennyeződés-észlelés: megjegyzés hozzáadva a foltjavításhoz |
FONTOS MEGJEGYZÉS – OLVASSA EL FIGYELMESEN
Az STMicroelectronics NV és leányvállalatai („ST”) fenntartják a jogot, hogy bármikor, előzetes értesítés nélkül módosítsák, javítsák, bővítsék, módosítsák és tökéletesítsék az ST-termékeket és/vagy ezt a dokumentumot. A vásárlóknak meg kell szerezniük a legfrissebb releváns információkat az ST-termékekről a rendelés leadása előtt. Az ST termékek értékesítése a megrendelés visszaigazolásakor érvényes ST értékesítési feltételek szerint történik.
Kizárólag a vásárlók felelősek az ST-termékek kiválasztásáért, kiválasztásáért és használatáért, és az ST nem vállal felelősséget az alkalmazási segítségért vagy a vásárlók termékeinek tervezéséért.
Az ST jelen dokumentumban semmilyen szellemi tulajdonjogra nem ad kifejezett vagy hallgatólagos licencet.
Az ST termékeknek az itt leírtaktól eltérő rendelkezésekkel történő viszonteladása érvénytelenít minden, az ST által az ilyen termékre adott garanciát. Az ST és az ST logó az ST védjegyei. Az ST védjegyekkel kapcsolatos további információkért lásd: www.st.com/trademarks. Minden egyéb termék- vagy szolgáltatásnév a megfelelő tulajdonosok tulajdona.
A jelen dokumentumban szereplő információk felülírják és felváltják a jelen dokumentum bármely korábbi verziójában korábban megadott információkat. © 2022 STMicroelectronics – Minden jog fenntartva
Dokumentumok / Források
![]() |
ST VL53L3CX Repülési idő távolságérzékelő [pdf] Felhasználói kézikönyv VL53L3CX Repülési idő-távolság-érzékelő, VL53L3CX, Repülési idő-távolság-érzékelő, Repülési távolság-érzékelő, Távolság-érzékelő |




