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

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.
Rendszer végeview
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ó.
Ranging Sequence

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.
Időzítési szempontok
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.
Csupasz sofőr
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.
API-tartomány-folyamat

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:

  1. hívjon le egy lekérdezési funkciót
  2. lekérdezés egy driver funkcióról
  3. 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ő:

  1. refSPAD
  2. áthallás
  3. 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:

  1. RefSpad
  2. Áthallás
  3. 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ő

Hivatkozások

Hagyj megjegyzést

E-mail címét nem tesszük közzé. A kötelező mezők meg vannak jelölve *