Modulu Sensor VL53L8CX
Manuale d'usu
Introduzione
U scopu di stu manuale d'utilizatore hè di spiegà cumu manighjà u sensoru VL53L8X Time-of-Flight (ToF), utilizendu l'API Ultra Lite Driver (ULD). Descrive e funzioni principali per programà u dispusitivu, i calibrazioni, è i risultati di output.
Basatu nantu à a tecnulugia FlightSense di ST, u VL53L8CX incorpora una lente metasuperficiale efficiente (DOE) posta nantu à l'emettitore laser chì permette a proiezione di un FoV quadratu di 45 ° x 45 ° nantu à a scena.
A so capacità multizona furnisce una matrice di zoni 8 × 8 (zoni 64) è pò travaglià à velocità veloci (60 Hz) finu à 400 cm.
Grazie à u modu autonomu cù u sogliu di distanza programmabile, u VL53L8CX hè perfettu per qualsiasi applicazione chì richiede a rilevazione di l'utilizatori di bassa putenza. L'algoritmi patentati di ST è a custruzione di moduli innovativi permettenu à u VL53L8CX di detectà, in ogni zona, parechji oggetti in u FoV cun una cunniscenza di prufundità. L'algoritmi di l'istogramma ST assicuranu l'immunità di a diafonia di u vetru di copertura oltre 60 cm.
Cum'è tutti i sensori Time-of-Flight (ToF) basati nantu à a tecnulugia FlightSense di ST, u VL53L8CX registra, in ogni zona, una distanza assoluta indipendentemente da u culore di destinazione è a riflettanza.
Allughjatu in un pacchettu reflowable in miniatura chì integra un array SPAD, u VL53L8CX ottene u megliu rendimentu in diverse cundizioni di illuminazione ambientale, è per una larga gamma di materiali di vetru di copertura.
Tutti i sensori ToF di ST integranu un VCSEL chì emette una luce IR 940 nm completamente invisibile, chì hè totalmente sicura per l'ochji (certificazione di Classe 1).

Acronimi è abbreviazioni
| Acronimu/abbreviazione | Definizione |
| DOE | Elementu otticu diffrattivu |
| FoV | campu di view |
| I2C | circuitu inter-integratu (bus seriale) |
| Kcps/SPAD | Kilo-count per seconda per spad (unità utilizata per quantificà u numeru di fotoni in l'array SPAD) |
| RAM | memoria d'accessu aleatoriu |
| SCL | linea di clock seriale |
| SDA | dati seriali |
| SPAD | un diodu di valanga di fotoni unicu |
| ToF | Tempu di volu |
| ULD | driver ultra lite |
| VCSEL | diode emettitore di superficie di cavità verticale |
| Xtalk | diafonia |
Descrizzione funziunale
2.1 Sistema finituview
U sistema VL53L8CX hè cumpostu da un modulu hardware è u software di driver ultra lite (VL53L8CX ULD) chì funziona nantu à un host (vede a figura sottu). U modulu hardware cuntene u sensor ToF. STMicroelectronics furnisce u driver di u software, chì hè chjamatu in stu documentu "u driver". Stu documentu descrive e funzioni di u driver, chì sò accessibili à l'ospite. Queste funzioni cuntrolanu u sensoru è uttene e dati chì varienu.

2.2 Orientazione efficace
U modulu include una lente sopra l'apertura RX, chì flips (orizzontalmente è verticalmente) l'imaghjini catturati di u mira. In cunseguenza, a zona identificata cum'è a zona 0, in u fondu fondu à manca di l'array SPAD, hè illuminata da un mira situatu à a parte superiore destra di a scena.

2.3 Schematics è cunfigurazione I2C/SPI
A cumunicazione trà u driver è u firmware hè gestita da l'I2C o SPI. A capacità massima di l'I2C hè 1 MHz, è a capacità massima di l'SPI hè 20 MHz. L'implementazione di ogni protokollu di cumunicazione richiede pull ups cum'è descrittu in a datasheet VL53L8CX.
U dispusitivu VL53L8CX hà un indirizzu I2C predeterminatu di 0x52. Tuttavia, hè pussibule cambià l'indirizzu predeterminatu per evità cunflitti cù altri dispositi, o per facilità l'aghjunzione di più moduli VL53L8CX à u sistema per un sistema FoV più grande. L'indirizzu I2C pò esse cambiatu cù a funzione vl53l8cx_set_i2c_address(). Per utilizà l'SPI, u multisensore hè cablatu cù una cunfigurazione slave indipendente (u pin NCS).


Per permette à un dispositivu di avè u so indirizzu I2C cambiatu senza affettà l'altri in u bus I2C, hè impurtante
disattivà a cumunicazione I2C di i dispositi chì ùn sò micca cambiati. A prucedura hè a siguenti:
- Accende u sistema cum'è normale.
- Pull down the LPn pin of the device chì ùn hà micca cambiatu u so indirizzu.
- Tira u pin LPn di u dispusitivu chì hà cambiatu l'indirizzu I2C.
- Prugrammà l'indirizzu I2C à u dispusitivu utilizendu a funzione set_i2c_address() funzione.
- Tira u pin LPn di u dispusitivu chì ùn hè micca riprogrammatu.
Tutti i dispusitivi devenu avà esse dispunibule nantu à u bus I2C. Repetite i passi sopra per tutti i dispositi in u sistema chì necessitanu un novu indirizzu I2C.
U cuntenutu di u pacchettu è u flussu di dati
3.1 Architettura di cunduttore è cuntenutu
U pacchettu VL53L8CX ULD hè cumpostu di quattru cartulare. U driver hè situatu in u cartulare /VL53L8CX_ULD_API.
U cunduttore hè cumpostu da ubligatoriu è facultativu files. Opcional files sò plugins utilizatu per allargà e funzioni ULD.
Ogni plugin cumencia cù a parolla "vl53l8cx_plugin" (per esempiu vl53l8cx_plugin_xtalk.h). Se l'utilizatore ùn vole micca a pruposta plugins, ponu esse sguassati senza impactà l'altri funziunalità di u driver. A figura seguente rapprisenta u obligatoriu files è l'opzionale plugins.
Nota:
L'utilizatore hà ancu bisognu di implementà dui files situatu in u cartulare /Platform. A piattaforma pruposta hè una cunchiglia viota, è deve esse piena di funzioni dedicate.
Piattaforma.h file cuntene macros obligatorii per utilizà l'ULD. Tutti i file u cuntenutu hè ubligatoriu per aduprà currettamente u ULD.
3.2 Flussu di calibrazione
Crosstalk (Xtalk) hè definitu cum'è a quantità di signale ricevuta nantu à l'array SPAD, chì hè dovutu à a riflessione di luce VCSEL in a finestra protettiva (vetru di coperta) aghjuntu nantu à u modulu. U modulu VL53L8CX hè autocalibratu, è pò esse usatu senza alcuna calibrazione supplementaria.
A calibrazione Xtalk pò esse dumandata se u modulu hè prutettu da un vetru di copertura. U VL53L8CX hè immune à Xtalk oltre 60 cm grazia à un algoritmu di istogramma. In ogni casu, à brevi distanzi sottu à 60 cm, Xtalk pò esse più grande di u signale riturnatu propiu. Questu dà una lettura falsa di mira o face chì i miri appariscenu più vicini di ciò chì sò veramente. Tutte e funzioni di calibrazione Xtalk sò incluse in un plugin Xtalk (opcional). L'utilizatore hà bisognu à aduprà file 'vl53l8cx_plugin_xtalk'.
L'Xtalk pò esse calibratu una volta, è i dati ponu esse salvati per pudè esse riutilizzati dopu. Hè necessariu un mira à distanza fissa, cù una riflettanza cunnisciuta. A distanza minima necessaria hè 600 mm, è u mira deve copre tuttu u FoV. Sicondu a cunfigurazione, l'utilizatore pò mudificà i paràmetri per adattà a calibrazione Xtalk, cum'è prupostu in a tabella seguente.
Table 1. Paràmetri dispunibili per a calibrazione
| Paràmetru | Min | Pruposta da STMicroelectronics |
Max |
| Distanza [mm] | 600 | 600 | 3000 |
| Numaru di samples | 1 | 4 | 16 |
| Riflettanza [%] | 1 | 3 | 99 |
Nota:
Aumentà u numeru di samples aumenta a precisione, ma aumenta ancu u tempu di calibrazione. U tempu relative à u numeru di samples hè lineare, è i valori seguitanu u timeout apprussimativu:
- 1 sample ≈ 1 seconde
- 4 samples ≈ 2.5 seconde
- 16 samples ≈ 8.5 seconde
A calibrazione hè fatta cù a funzione vl53l8cx_calibrate_xtalk(). Sta funzione pò esse usata in ogni mumentu.
Tuttavia, u sensoru deve esse inizializatu prima. A figura seguente rapprisenta u flussu di calibrazione xtalk.
Figura 7. Flussu di calibrazione Xtalk

3.3 Flussu chì varieghja
A figura seguente rapprisenta u flussu chì varieghja utilizatu per ottene misure. A calibrazione Xtalk è e chjama di funzione opzionale devenu esse usate prima di inizià a sessione di gamma. E funzioni get / set ùn ponu micca esse aduprate durante una sessione di intervallu, è a prugrammazione "on-the-fly" ùn hè micca supportata.

Funzioni dispunibili
L'API VL53L8CX ULD include parechje funzioni, chì permettenu à l'utilizatore per sintonizà u sensoru, secondu u casu d'usu. Tutte e funzioni dispunibuli per u driver sò scritte in e seguenti sezzioni.
4.1 Inizializazione
L'inizializazione deve esse fatta prima di utilizà u sensor VL53L8CX. Questa operazione richiede à l'utilizatore:
- Accende u sensoru (VDDIO, AVDD, CORE_1V8 è pins LPn impostati à High
- Chjamate a funzione vl53l8cx_init(). A funzione copia u firmware (~ 84 Kbytes) à u modulu. Questu hè fattu per carricà u codice nantu à l'interfaccia I2C / SPI, è eseguisce una rutina di boot per compie l'inizializazione.
4.2 Gestione di reset di sensori
Per resettate u dispositivu, i pins seguenti anu da esse toggled:
- Pone i pin VDDIO, AVDD è CORE_1V8 pins à bassu.
- Aspetta 10 ms.
- Pone i pin VDDIO, AVDD è CORE_1V8 pins à altu.
Nota:
Toggling solu pin I2C_RST resetta a cumunicazione I2C.
4.3 Risoluzione
A risoluzione currisponde à u numeru di zoni dispunibili. U sensoru VL53L8CX hà duie risoluzioni pussibuli: 4 × 4 (zoni 16) è 8 × 8 (zoni 64). Per automaticamente, u sensoru hè programatu in 4 × 4.
A funzione vl53l8cx_set_resolution() permette à l'utilizatori di cambià a risoluzione. Siccomu a frequenza di variazione dipende da a risoluzione, sta funzione deve esse aduprata prima di aghjurnà a frequenza di distanza. Inoltre, cambià a risoluzione aumenta ancu a dimensione di u trafficu nantu à l'autobus I2C / SPI quandu i risultati sò leghje.
4.4 Frequenza chì varieghja
A frequenza di variazione pò esse usata per cambià a frequenza di misurazione. Siccomu a frequenza massima hè sfarente trà 4 × 4 è 8 × 8 risoluzioni, sta funzione deve esse usata dopu a scelta di una risoluzione. I valori minimi è massimi permessi sò listati in a tavula seguente.
Tabella 2. Frequenze minime è massime
| Risoluzione | Frequenza minima [Hz] | Frequenza massima di gamma [Hz] |
| 4 × 4 | 1 | 60 |
| 8 × 8 | 1 | 15 |
A frequenza di variazione pò esse aghjurnata utilizendu a funzione vl53l8cx_set_ranging_frequency_hz(). Per automaticamente, a freccia di distanza hè stabilita à 1 Hz.
4.5 Modu di distanza
U modu di variazione permette à l'utilizatore di sceglie trà un altu rendimentu o un cunsumu d'energia bassu.
Ci sò dui modi pruposti:
- Cuntinuu: U dispusitivu piglia continuamente frames cù una frequenza chì varieghja definita da l'utilizatore. U VCSEL hè attivatu durante tutte e varieghja, cusì a distanza massima è l'immunità ambientale sò megliu. Questa modalità hè cunsigliata per misurazioni veloci o prestazioni elevate.
- Autonomu: Questu hè u modu predeterminatu. U dispusitivu piglia continuamente frames cù una frequenza chì varieghja definita da l'utilizatore. U VCSEL hè attivatu durante un periodu definitu da l'utilizatore, utilizendu a funzione vl53l8cx_set_integration_time_ms(). Siccomu u VCSEL ùn hè micca sempre attivatu, u cunsumu di energia hè ridutta. I beneficii sò più evidenti cù una freccia ridutta. Stu modu hè cunsigliatu per applicazioni di bassa putenza.
U modu di variazione pò esse cambiatu cù a funzione vl53l8cx_set_ranging_mode ().
4.6 Tempu di integrazione
U tempu d'integrazione hè una funzione solu dispunibule cù u Modu di intervallu autonomu (consultate a Sezione 4.5 Modalità di intervallu).
Permette à l'utilizatori di cambià l'ora mentre VCSEL hè attivatu. U cambiamentu di u tempu d'integrazione se u modalità Ranging hè cuntinuu ùn hà micca effettu. U tempu di integrazione predeterminatu hè stabilitu à 5 ms.
L'effettu di u tempu d'integrazione hè diversu per risoluzioni 4 × 4 è 8 × 8. A risoluzione 4 × 4 hè cumpostu di un tempu d'integrazione, è a risoluzione 8 × 8 hè cumpostu di quattru volte d'integrazione. I seguenti figuri rapprisentanu l'emissione VCSEL per e duie risoluzioni.

A summa di tutti i tempi di integrazione + 1 ms overhead deve esse più bassu di u periodu di misurazione. Altrimenti, u periodu di intervallu hè automaticamente aumentatu.
4.7 Modi di putenza
I modi di putenza ponu esse aduprati per riduce u cunsumu di energia quandu u dispusitivu ùn hè micca usatu. U VL53L8CX pò operà in unu di i seguenti modi di putenza:
- Wake-up: U dispusitivu hè stallatu in HP idle (alta putenza), aspittendu istruzzioni.
- Sleep: U dispusitivu hè stallatu in LP idle (bassa putenza), u statu di bassa putenza. U dispusitivu ùn pò esse usatu finu à u modu di sveglia. Stu modu conserva u firmware è a cunfigurazione.
U modu di putenza pò esse cambiatu cù a funzione vl53l8cx_set_power_mode (). U modu predeterminatu hè u svegliu.
Nota:
Se l'utilizatore vole cambià u modu di putenza, u dispusitivu ùn deve esse in un statu chì varieghja.
4.8 Affilatrice
U signale tornatu da un mira ùn hè micca un pulsu pulitu cù bordi sharp. I bordi sò inclinati è ponu influenzà e distanze riportate in e zone adiacenti. U sharpener hè utilizatu per caccià una parte o tuttu u segnu causatu da u velu glare.
L'exampu mostratu in a figura seguente rapprisenta un mira vicinu à 100 mm centratu in u FoV, è un altru mira, più daretu à 500 mm. Sicondu u valore di u sharpener, u mira vicinu pò apparisce in più zoni cà u veru.
Figura 11. Example di scena utilizendu parechji valori di sharpener

Sharpener pò esse cambiatu cù a funzione vl53l8cx_set_sharpener_percent (). I valori permessi sò trà 0 % è 99 %. U valore predeterminatu hè 5%.
4.9 Ordine di destinazione
U VL53L8CX pò misurà parechji miri per zona. Grazie à u processu di l'histogramma, l'ospite hè capaci di sceglie l'ordine di i miri rappurtati. Ci sò dui opzioni:
- U più vicinu: U scopu più vicinu hè u primu rapportatu
- U più forte: U scopu più forte hè u primu rapportatu
L'ordine di destinazione pò esse cambiatu cù a funzione vl53l8cx_set_target_order (). L'ordine predeterminatu hè u più forte.
L'example in a figura seguente rapprisenta a rilevazione di dui miri. Unu à 100 mm cù una riflettanza bassa, è unu à 700 mm cù una riflettanza alta.

4.10 Obiettivi multipli per zona
U VL53L8CX pò misurà finu à quattru miri per zona. L'utilizatore pò cunfigurà u numeru di miri restituiti da u sensoru.
Nota:
A distanza minima trà dui miri da esse rilevati hè 600 mm.
A selezzione ùn hè micca pussibule da u driver; deve esse fattu in a 'platform.h' file. A macro
VL53L8CX_NB_ TARGET_PER_ZONE deve esse stabilitu à un valore trà 1 è 4. L'ordine di destinazione descrittu in a Sezione 4.9 Ordine di destinazione impacta direttamente l'ordine di destinazione rilevata. Per automaticamente, u sensoru solu pruduce un massimu di una mira per zona.
Nota:
Un numeru aumentatu di miri per zona aumenta a dimensione RAM necessaria.
4.11 Xtalk margin
U margine Xtalk hè una funzione supplementaria solu dispunibule cù u plugin Xtalk. U .c è .f files 'vl53l8cx_plugin_xtalk' deve esse usatu.
U marghjenu hè utilizatu per cambià u sogliu di deteczione quandu un vetru di tappa hè presente nantu à a cima di u sensor. U sogliu pò esse aumentatu per assicurà chì u vetru di coperta ùn hè mai rilevatu, dopu avè stabilitu i dati di calibrazione Xtalk.
Per esample, l 'utilizatore pò eseguisce una calibration Xtalk nant'à un solu dispusitivu, è re-utilizà u listessu dati calibration per tutti l 'àutri dispusitivi. U margine Xtalk pò esse usatu per sintonizà a correzione Xtalk. A figura sottu rapprisenta u margine Xtalk.
Figura 13. Xtalk margin

4.12 Soglie di rilevazione
In più di e capacità di variazione regulare, u sensoru pò esse programatu per detectà un ughjettu sottu certi criterii predefiniti. Questa funzione hè dispunibule cù u plugin "soglie di rilevazione", chì hè una opzione micca inclusa per difettu in l'API. U files chjamati 'vl53l8cx_plugin_detection_thresholds' deve esse usatu.
A funzione pò esse usata per attivà una interruzzione à u pin A1 (INT) quandu e cundizioni definite da l'utilizatore sò scontri. Ci sò trè cunfigurazioni pussibuli:
- Risoluzione 4 × 4: utilizendu 1 soglia per zona (totale di 16 soglie)
- Risoluzione 4 × 4: utilizendu 2 soglie per zona (totale di 32 soglie)
- Risoluzione 8 × 8: utilizendu 1 soglia per zona (totale di 64 soglie)
Qualunque sia a cunfigurazione utilizata, a prucedura per a creazione di soglie è a dimensione di RAM sò listessi. Per ogni cumminazione di soglia, ci vole à riempie parechji campi: - Zone id: id di a zona selezziunata (consultate a Sezione 2.2 Orientazione effettiva)
- Misurazione: misurazione per catturà (distanza, signale, numeru di SPAD, ...)
- Tipu: finestri di misure (in finestri, fora di i finestri, sottu u sogliu bassu, ...)
- Low threshold: utente di soglia bassa per u trigger. L'utilizatore ùn hà micca bisognu di stabilisce u furmatu, hè automaticamente trattatu da l'API.
- Soglia alta: utente di soglia alta per u trigger. L'utilizatore ùn hà micca bisognu di stabilisce u furmatu, hè automaticamente trattatu da l'API.
- Funzionamentu matematicu: solu usatu per 4 × 4 - 2 cumminazzioni di soglia per zona. L'utilizatore pò stabilisce una cumminazione utilizendu parechje soglie in una zona.
4.13 Interrompe l'autostop
A funzione di interruzzione autostop hè aduprata per abortà a sessione di distanza durante una misurazione. Per automaticamente, u sensoru ùn pò micca esse firmatu durante una misurazione, perchè e misure di u quadru deve esse cumpletu. Tuttavia, utilizendu l'autostop, e misurazioni di u quadru sò annullate quandu una interruzzione hè attivata.
A funzione autostop hè utile quandu hè cumminata cù un sogliu di rilevazione. Quandu un mira hè rilevatu, a misurazione attuale hè automaticamente annullata. Autostop pò esse usatu in una macchina di u statu di u cliente per cambià rapidamente à un altru cunfigurazione di sensor.
Una funzione di interruzzione autostop pò esse attivata usendu a funzione vl53l8cx_set_detection_threshold_auto_stop().
Dopu chì una misurazione hè abortita, hè cunsigliatu di piantà u sensoru utilizendu a funzione vl53l8cx_stop_ranging().
4.14 Indicatore di muvimentu
U sensoru VL53L8CX hà una funzione di Firmware integrata chì permette a rilevazione di muvimentu in una scena. L'indicatore di muvimentu hè calculatu trà frames sequenziali. Questa opzione hè dispunibule cù u plugin 'vl53l8cx_plugin_motion_indicator'.
L'indicatore di muvimentu hè inizializatu cù a funzione vl53l8cx_motion_indicator_init(). Se l'utilizatore vole cambià a risoluzione di u sensoru, deve aghjurnà a risoluzione di l'indicatore di muvimentu utilizendu a funzione dedicata: vl53l8cx_motion_indicator_set_resolution().
L'utilizatore pò ancu cambià a distanza minima è massima per a rilevazione di u muvimentu. A diffarenza trà a distanza minima è massima ùn pò esse più grande di 1500 mm. Per automaticamente, e distanze sò inizializzate cù valori trà 400 mm è 1500 mm.
I risultati sò guardati in u campu 'motion_indicator'. In questu campu, l'array "motion" dà un valore chì cuntene l'intensità di muvimentu per zona. Un valore altu indica una alta variazione di muvimentu trà i frames. Un muvimentu tipicu dà un valore trà 100 è 500. Sta sensibilità dipende da u tempu d'integrazione, a distanza di destinazione è a riflessione di destinazione.
Una cumminazione ideale per l'applicazioni di bassa putenza hè l'usu di l'indicatore di muvimentu cù u modu di intervallu autonomu, è i soglia di rilevazione programati nantu à u muvimentu. Questu permette a rilevazione di variazioni di u muvimentu in u FoV cù u minimu cunsumu di energia.
4.15 Pin di sincronizazione esterna
Una fonte di attivazione esterna pò esse usata per sincronizà acquisti. Quandu a sincronizazione esterna hè attivata, u VL53L8CX aspetta una interruzzione in u pin SYNC per inizià a prossima acquisizione. Per utilizà sta funzione, u pin SYNC (B1) deve esse cunnessu cum'è descrittu in a scheda di dati di u produttu.
Ùn ci sò micca esigenze specifiche per aduprà a sincronizazione esterna. Tuttavia, a freccia di u VL53L8CX deve esse più altu ch'è a frequenza di u signale esternu.
A sincronizazione esterna pò esse attivata o disattivata usendu a funzione vl53l8cx_set_external_sync_pin_enable (). Ranging pò esse cuminciatu cum'è solitu usendu a funzione vl53l8cx_start_ranging (). Quandu un utilizatore vole piantà u sensoru, hè cunsigliatu di cambià u pin SYNC per annullà u firmware VL53L8CX.
Un flussu tematicu per aduprà u pin di sincronizazione esterna hè mostratu sottu in a Sezione 4.15.
Figura 14. Flussu di sincronizazione esterna

Risultati varii
5.1 Dati dispunibuli
Una larga lista di dati di destinazione è di l'ambiente pò esse uscita durante l'attività di varià. A tavula seguente descrive i paràmetri dispunibuli per l'utilizatori.
Tabella 3. Uscita dispunibule cù u sensor VL53L8CX
|
Elementu |
Nb byte (RAM) | Unità |
Descrizzione |
| Ambient per SPAD | 256 | Kcps/SPAD | A misurazione di a freccia ambientale realizata nantu à l'array SPAD, senza emissioni di fotoni attivu, per misurà a freccia di u signale ambientale per via di u rumore. |
| Numeru di mira rilevati |
64 |
Nimu | Numero di mira rilevati in a zona attuale. Stu valore deve esse u primu à verificà per sapè una validità di misurazione. |
| Numero di SPAD attivati | 256 | Nimu | Numero di SPAD attivati per a misurazione attuale. Un mira riflettente luntanu o bassu attivà più SPAD. |
|
Signal per SPAD |
256 x nb targets programmati |
Kcps/SPAD |
A quantità di fotoni misurata durante u VCSEL
pulsu. |
|
Gamma sigma |
128 x nb targets programmati |
Millimetru |
Estimatore Sigma per u rumore in a distanza di destinazione rapportata. |
|
Distanza |
128 x nb targets programmati | Millimetru | Distanza di destinazione |
| Statu di destinazione | 64 x nb targets programmati | Nimu | Validità di misure. Vede a Sezione 5.5 Interpretazione di i risultati per più infurmazione. |
| Riflettanza | 64 x numeri di mira prugramati | Per centu | Riflessione di destinazione stimata in percentuale |
| Indicatore di muvimentu | 140 | Nimu | Struttura chì cuntene i risultati di l'indicatore di muvimentu. U campu "movimentu" cuntene l'intensità di u muvimentu. |
Nota:
Per parechji elementi (signale per spad, sigma, ...) l'accessu à e dati hè diversu se l'utente hà programatu più di 1 target per zona (vede Sezione 4.10 Multiple target per zona). Vede exampi codici per più infurmazione.
5.2 Personalizà a selezzione di output
Per automaticamente, tutti i output VL53L8CX sò attivati. Se necessariu, l'utilizatore pò disattivà qualchì output di sensor.
A disattivazione di e misure ùn hè micca dispunibule nantu à u driver; deve esse realizatu in a 'platform.h' file. L'utilizatore pò dichjarà e seguenti macros per disattivà i risultati:
#define VL53L8CX _DISABLE_AMBIENT_PER_SPAD
#define VL53L8CX _DISABLE_NB_SPADS_ENABLED
#define VL53L8CX _DISABLE_NB_TARGET_DETECTED
#define VL53L8CX _DISABLE_SIGNAL_PER_SPAD
#define VL53L8CX _DISABLE_RANGE_SIGMA_MM
#define VL53L8CX _DISABLE_DISTANCE_MM
#define VL53L8CX _DISABLE_TARGET_STATUS
#define VL53L8CX _DISABLE_REFLECTANCE_PERCENT
#define VL53L8CX _DISABLE_MOTION_INDICATOR
In cunseguenza, i campi ùn sò micca esse dichjarati in a struttura di risultati, è i dati ùn sò micca trasferiti à l'ospite.
A dimensione RAM è a dimensione I2C / SPI sò ridotte.
Per assicurà a coerenza di e dati, ST ricumanda di mantene sempre "numeru di destinazione rilevata" è "statu di destinazione" attivati. Permette di filtrà e misurazioni secondu u statutu di destinazione (consultate a Sezione 5.5 Interpretazione di i risultati).
5.3 Ottene risultati di variità
Durante a sessione di intervallu, ci sò duie manere di sapè s'ellu hè dispunibule novi dati di intervallu:
- Modu di polling: Aduprate continuamente a funzione vl53l8cx_check_data_ready (). Detecta un novu conte di flussu tornatu da u sensoru.
- Modu d'interruzzione: aspetta un'interruzzione risuscitata nantu à u pin A1 (INT). L'interruzzione hè automaticamente cancellata dopu ~ 100 μs.
Quandu i novi dati sò pronti, i risultati ponu esse leghje cù a funzione vl53l8cx_get_ranging_data (). Ritorna una struttura aghjurnata chì cuntene tutti i risultati selezziunati. Siccomu u dispusitivu hè asincronu, ùn ci hè micca interruzzione per sguassà per cuntinuà a sessione chì varieghja.
Questa funzione hè dispunibule per i modi di cuntinuu è autonomi.
5.4 Utilizà u furmatu di firmware crudu
Dopu à u trasferimentu di dati chì varieghja à traversu I2C / SPI, ci hè una cunversione trà u furmatu di firmware è u furmatu òspite. Questa operazione hè tipicamente realizata per avè una distanza chì varieghja in millimetri cum'è output predeterminatu di u sensor. Se l'utilizatore vole usà u furmatu di u firmware, a seguente macro deve esse definita in a piattaforma file:
VL53L8CX#define VL53L8CX _USE_RAW_FORMAT
5.5 Interpretazione di i risultati
I dati restituiti da u VL53L8CX ponu esse filtrati per piglià in contu u statu di destinazione. U statutu indica a validità di a misurazione. A lista completa di u statutu hè descritta in a tavula seguente.
Table 4. Lista di u statu di destinazione dispunibule
| Statu di destinazione | Descrizzione |
| 0 | I dati di u ranking ùn sò micca aghjurnati |
| 1 | A freccia di signale hè troppu bassu nantu à l'array SPAD |
| 2 | Fase di destinazione |
| 3 | Estimatore Sigma troppu altu |
| 4 | A coerenza di u target hà fiascatu |
| 5 | Gamma valida |
| 6 | Wrap around micca realizatu (Tipicamenti a prima gamma) |
| 7 | A coerenza di a tarifa hà fiascatu |
| 8 | A freccia di signale hè troppu bassu per u target attuale |
| 9 | Gamma valida cù un grande impulsu (pò esse dovutu à un target unitu) |
| 10 | Intervallu validu, ma nisun target rilevatu à a gamma precedente |
| 11 | A cunsistenza di a misurazione hà fiascatu |
| 12 | Target sfocata da un altru, per via di l'affilatrice |
| 13 | Target rilevatu ma dati inconsistenti. Succede spessu per i miri secundari. |
| 255 | Nisuna mira rilevata (solu se u numeru di mira rilevati hè attivatu) |
Per avè dati coerenti, l'utilizatore hà bisognu di filtrà u statutu di destinazione invalidu. Per dà una valutazione di cunfidenza, un target cù u statutu 5 hè cunsideratu cum'è 100% validu. Un statutu di 6 o 9 pò esse cunsideratu cun un valore di fiducia di 50%. Tutti l'altri stati sò sottu à u nivellu di fiducia di 50%.
5.6 Errori di u driver
Quandu si verifica un errore cù u sensor VL53L8CX, u driver torna un errore specificu. A tavula seguente lista i pussibuli errori.
Table 5. Lista di l'errori dispunibili cù u driver
| Statu di destinazione | Descrizzione |
| 0 | Nisun errore |
| 127 | L'utente hà programatu un paràmetru incorrectu (risoluzione scunnisciuta, frequenza chì varieghja troppu alta, ...) |
| 255 | Errore maiò. Di solitu un errore di timeout, per un errore I2C / SPI. |
| altru | Cumminazione di parechji errori descritti sopra |
Nota:
Più codici d'errore ponu esse implementati da l'ospite utilizendu a piattaforma files.
Table 6. Storia di rivisione di documenti
| Data | Versione | Cambiamenti |
| 13-ghjennaghju-23 | 1 | Liberazione iniziale |
AVVISU IMPORTANTE - LEGGIU ATTENTAMENTE
STMicroelectronics NV è e so filiali ("ST") si riservanu u dirittu di fà cambiamenti, correzioni, miglioramenti, mudificazioni è migliure à i prudutti ST è / o à stu documentu in ogni mumentu senza avvisu. I cumpratori anu da ottene l'ultime informazioni pertinenti nantu à i prudutti ST prima di fà ordini. I prudutti ST sò venduti in cunfurmità cù i termini è e cundizioni di vendita di ST in vigore à u mumentu di a ricunniscenza di l'ordine.
I cumpratori sò solu rispunsevuli di a scelta, a selezzione è l'usu di i prudutti ST è ST ùn assume micca responsabilità per l'assistenza di l'applicazione o u disignu di i prudutti di l'acquirente.
Nisuna licenza, espressa o implicita, à qualsiasi dirittu di pruprietà intellettuale hè cuncessa da ST quì.
A rivendita di i prudutti ST cù disposizioni diverse da l'infurmazioni stabilite quì annullerà ogni garanzia accordata da ST per tali pruduttu.
ST è u logo ST sò marchi di ST. Per infurmazioni supplementari nantu à i marchi ST, riferite à www.st.com/trademarks. Tutti l'altri prudutti o nomi di serviziu sò a pruprietà di i so rispettivi pruprietarii.
L'infurmazioni in stu documentu rimpiazzanu è rimpiazzanu l'infurmazioni furnite prima in qualsiasi versione precedente di stu documentu.
© 2023 STMicroelectronics - Tutti i diritti riservati
Documenti / Risorse
![]() |
Modulu Sensor ST VL53L8CX [pdfManuale d'usu UM3109, VL53L8CX Sensor Module, VL53L8CX, Sensor Module, Module |




