STMicroelectronics VL53L7CX Sensore di distanza multizona di u tempu di volu
Introduzione
U scopu di stu manuale d'utilizatore hè di spiegà cumu manighjà u sensoru VL53L7CX 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.
Spécialmente cuncepitu per l'applicazioni chì necessitanu un FoV ultrawide, u sensoru di u tempu di volu VL53L7CX offre un FoV diagonale di 90 °. Basatu nantu à a tecnulugia Flight Sense di STMicroelectronics, u VL53L7CX incorpora una meta lente di superficia efficiente (DOE) posta nantu à l'emettitore laser chì permette a proiezione di un FoV quadratu di 60 ° x 60 ° nantu à a scena.
A so capacità multizona furnisce una matrice di zoni 8 × 8 (zoni 64) è pò travaglià à velocità veloci (60 Hz) finu à 350 cm.
Grazie à u modu autonomu cù u sogliu di distanza programmabile cumminatu cù u FoV ultrawide, u VL53L7CX hè perfettu per ogni applicazione chì richiede a rilevazione di l'utilizatori di bassa putenza. L'algoritmi patentati di ST è a custruzione di moduli innovativi permettenu à u VL53L7CX di detectà, in ogni zona, parechji oggetti in u FoV cun una cunniscenza di prufundità. L'algoritmi di l'istogramma di STMicroelectronics assicuranu l'immunità di diafonia di u vetru di copertura oltre 60 cm.
Derivatu da u VL53L5CX, i pinouts è i cunduttori di i dui sensori sò cumpatibili, chì assicura una migrazione simplice da un sensoru à l'altru.
Cum'è tutti i sensori Time-of-Flight (ToF) basati nantu à a tecnulugia di Flight Sense di ST, u VL53L7CX registra, in ogni zona, una distanza assoluta indipendentemente da u culore di destinazione è a riflettanza.
Alloghjatu in un pacchettu reflowable in miniatura chì integra un array SPAD, u VL53L7CX 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).
U VL53L7CX hè u sensoru perfettu per qualsiasi applicazione chì richiede FoV ultrawide cum'è robotica, parlanti intelligenti, videoproiettori, gestione di cuntenutu. A cumminazione di a capacità multizona è u FoV di 90 ° pò rinfurzà novi casi d'usu cum'è u ricunniscenza di gestu, SLAM per a robotica, è l'attivazione di u sistema di bassa putenza per l'edificazione intelligente.
Figura 1. Modulu di sensor VL53L7CX
Acronimi è abbreviazioni
Acronimu/abbreviazione | Definizione |
DOE | Elementu otticu diffrattivu |
FoV | campu di view |
I²C | circuitu inter-integratu (bus seriale) |
Kcps/SPAD | Kilo-count per seconda per spad (unità aduprata 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 |
VHV | assai altu voltage |
Xtalk | diafonia |
Descrizzione funziunale
Sistema finituview
U sistema VL53L7CX hè cumpostu da un modulu di hardware è u software di driver ultra lite (VL53L7CX ULD) in esecuzione in 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.
Figura 2. Sistema VL53L7CX finituview
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.
Figura 3. VL53L7CX orientazione efficace
Schematici è cunfigurazione I²C
A cumunicazione trà u driver è u firmware hè gestita da I²C, cù una capacità di operare finu à 1 MHz. L'implementazione richiede pull-ups nantu à e linee SCL è SDA. Vede a datasheet VL53L7CX per più infurmazione. U dispusitivu VL53L7CX hà un indirizzu I²C predeterminatu di 0x52. In ogni casu, hè pussibule cambià l'indirizzu predeterminatu per evità cunflitti cù altri dispositi, o facilità l'aghjunzione di più moduli VL53L7CX à u sistema per un sistema FoV più grande. L'indirizzu I²C pò esse cambiatu cù a funzione vl53l7cx_set_i2c_address().
Figura 4. Sensori multipli in bus I²C
Per permette à un dispositivu di avè u so indirizzu I²C cambiatu senza affettà l'altri in u bus I²C, hè impurtante di disattivà a cumunicazione I²C di i dispositi chì ùn sò micca cambiati. A prucedura hè a seguente:
- 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 I²C.
- Prugrammà l'indirizzu I²C à u dispusitivu utilizendu a funzione set_i2c_address() funzione.
- Tira u pin LPn di u dispusitivu chì ùn hè micca riprogrammatu.
Tutti i dispositi devenu avà esse dispunibili nantu à u bus I²C. Repetite i passi sopra per tutti i dispositi VL53L7CX in u sistema chì necessitanu un novu indirizzu I²C.
U cuntenutu di u pacchettu è u flussu di dati
Architettura di driver è cuntenutu
U pacchettu VL53L7CX ULD hè cumpostu di quattru cartulare. U driver hè situatu in u cartulare /
VL53L7CX_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 "vl53l7cx_plugin" (per esempiu vl53l7cx_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.
Figura 5. Architettura di driver
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.
Nota: forma piatta. h file cuntene macros obligatorii per utilizà l'ULD. Tutti i file u cuntenutu hè ubligatoriu per aduprà currettamente u ULD
Flussu di calibrazione
Crosstalk (Xtalk) hè definitu cum'è a quantità di signale ricevuta nantu à l'array SPAD, chì hè dovutu à a luce VCSEL.
riflessione à l'internu di a finestra protettiva (vetru di coperta) aghjuntu nantu à u modulu. U modulu VL53L7CX hè autocalibratu, è pò esse usatu senza alcuna calibrazione supplementaria.
A calibrazione Crosstalk pò esse dumandata se u modulu hè prutettu da un vetru di copertura. U VL53L7CX hè immune à
crosstalk oltre 60 cm grazia à un algoritmu histogram. 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 di crosstalk sò incluse in un plugin Xtalk (opcional). L'utilizatore hà bisognu à aduprà file 'vl53l7cx_plugin_xtalk'.
U crosstalk pò esse calibratu una volta, è i dati ponu esse salvati in modu chì ponu esse reutilizati più tardi. Un mira à una distanza fissa, cù una riflettanza cunnisciuta hè necessariu. 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 di crosstalk, cum'è prupostu in a tabella seguente.
Tabella 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 vl53l7cx_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 crosstalk.
Figura 6. Flussu di calibrazione Crosstalk
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.
Figura 7. U flussu chì varieghja cù VL53L7CX
Funzioni dispunibili
L'API VL53L7CX 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ò descritte in e seguenti sezzioni.
Inizializazione
L'inizializazione deve esse fatta prima di utilizà u sensor VL53L7CX. Questa operazione richiede à l'utilizatore:
- Accende u sensoru (VDDIO, AVDD, LPn pins set to High, è pin I2C_RST set to 0)
- Chjamate a funzione vl53l7cx_init(). A funzione copia u firmware (~ 84 Kbytes) à u modulu. Questu hè fattu per carricà u codice nantu à l'interfaccia I²C, è eseguisce una rutina di boot per compie l'inizializazione.
Gestione di reset di sensori
Per resettate u dispositivu, i pins seguenti anu da esse toggled:
- Pone i pin VDDIO, AVDD è LPn pins à bassu.
- Aspetta 10 ms.
- Pone i pin VDDIO, AVDD è LPn in alta.
Nota: Toggling solu pin I2C_RST resetta a cumunicazione I²C.
Risoluzione
A risoluzione currisponde à u numeru di zoni dispunibili. U sensoru VL53L7CX hà duie risoluzioni pussibuli: 4 × 4 (zoni 16) è 8 × 8 (zoni 64). Per automaticamente, u sensoru hè programatu in 4 × 4. A funzione vl53l7cx_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 I²C quandu i risultati sò letti.
Frequenza chì varieghja
A frequenza di variazione pò esse usata per cambià a frequenza di misurazione. Cum'è a frequenza massima hè diversu
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 vl53l7cx_set_ranging_frequency_hz(). Per automaticamente, a freccia di distanza hè stabilita à 1 Hz.
Modu di varià
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.
- Autònuma: Questu hè u modu predeterminatu. U dispusitivu piglia continuamente frames cù una frequenza chì varieghja
definitu da l'utilizatori. U VCSEL hè attivatu durante un periodu definitu da l'utilizatore, utilizendu a funzione vl53l7cx_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 vl53l7cx_set_ranging_mode ().
Tempu di integrazione
U tempu d'integrazione hè una funzione solu dispunibule cù u modu di intervallu autonomu (consultate Sezione 4.5: Range
modu). Permette à l'utilizatori di cambià l'ora mentre VCSEL hè attivatu. Cambiendu u tempu d'integrazione se u intervallu
u modu 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.
Figura 8. Tempu d'integrazione per 4 × 4 autonomi
Figura 9. Tempu d'integrazione per 8 × 8 autonomi
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 per adattà u valore di u tempu di integrazione.
Modi di putenza
I modi di putenza ponu esse aduprati per riduce u cunsumu di energia quandu u dispusitivu ùn hè micca usatu. U VL53L7CX 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 vl53l7cx_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.
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 un 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 10. Example di scena utilizendu parechji valori di sharpener
Sharpener pò esse cambiatu cù a funzione vl53l7cx_set_sharpener_percent (). I valori permessi sò trà 0% è 99%. U valore predeterminatu hè 5%.
Ordine di destinazione
U VL53L7CX pò misurà parechji miri per zona. Grazie à l'elaborazione di l'istogramma, l'ospite hè capaci di fà
sceglite 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 vl53l7cx_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.
Figura 11. Example di histogramma cù dui miri
Obiettivi multipli per zona
U VL53L7CX 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; si deve esse fattu in a 'piattaforma. h' file. A macro VL53L7CX_NB_ TARGET_PER_ZONE deve esse stabilitu à un valore trà 1 è 4. L'ordine di destinazione descrittu in a Sezione 4.9: L'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.
margine Xtalk
U margine Xtalk hè una funzione supplementaria solu dispunibule cù u plugin Xtalk. U .c è .f files 'vl53l7cx_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 di crosstalk. Per esample, l 'utilizatore pò eseguisce una calibration crosstalk nant'à una sola dispusitivu, è riutilizà u listessu dati calibration per tutti l 'àutri dispusitivi. U margine Xtalk pò esse usatu per sintonizà a correzione di crosstalk. A figura sottu rapprisenta u margine Xtalk.
Figura 12. margine Xtalk
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 'vl53l7cx_plugin_detection_thresholds' deve esse usatu. A funzione pò esse usata per attivà una interruzzione à u pin A3 (INT) quandu e cundizioni definite da l'utilizatore sò scontri. Ci sò trè cunfigurazioni pussibuli:
- Risoluzione 4 × 4: utilizendu una soglia per zona (un totale di 16 soglie)
- Risoluzione 4 × 4: utilizendu dui soglie per zona (un totale di 32 soglie)
- Risoluzione 8 × 8: utilizendu una soglia per zona (un 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:
- Zona id: id di a zona selezziunata (consultate 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è trattatu automaticamente 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.
Indicatore di muvimentu
U sensoru VL53L7CX hà una funzione di firmware integrata chì permette a rilevazione di muvimentu in una scena. U muvimentu
L'indicatore hè calculatu trà frames sequenziali. Questa opzione hè dispunibule cù u plugin 'vl53l7cx_plugin_motion_indicator'.
L'indicatore di muvimentu hè inizializatu cù a funzione vl53l7cx_motion_indicator_init(). Per cambià u sensoru
risoluzione, aghjurnà a risoluzione di l'indicatore di muvimentu utilizendu a funzione dedicata: vl53l7cx_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 'indicatore di motion_'. In questu campu, l'array 'motion' dà un valore chì cuntene u
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 soglie di rilevazione programati nantu à u muvimentu. Questu permette a rilevazione di variazioni di u muvimentu in u FoV cù u minimu cunsumu di energia.
Compensazione periodica di a temperatura
A prestazione di variazione hè affettata da variazioni di temperatura. U sensor VL53L7CX incorpora una temperatura
compensazione chì hè calibrata una volta quandu u streaming principia. Tuttavia, se a temperatura evoluzione, u
a compensazione ùn pò micca esse allinata cù a nova temperatura. Per evitari stu prublema, u cliente pò eseguisce una compensazione di temperatura periodica utilizendu un auto VHV. A calibrazione periodica di a temperatura pigghia uni pochi di millisecondi per eseguisce. L'utilizatore pò definisce u periodu. Per utilizà sta funzione, u cliente hà bisognu di:
- Chjamate a funzione vl53l7cx_set_VHV_repeat_count().
- Allora, dà u numeru di frames trà ogni nova calibrazione cum'è l'argumentu.
Se l'argumentu hè 0, a compensazione hè disattivata.
Risultati varii
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 VL53L7CX
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 attiva più SPAD. |
Signal per SPAD | 256 x nb targets programmati | Kcps/SPAD | A quantità di fotoni misurata durante l'impulsu VCSEL. |
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 Sezzione 5.5: Risultati interpretazione 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'utilizatore hà programatu più d'un target per zona (vede Sezione 4.10: Target multiple per zona). Vede exampi codici per più infurmazione.
Personalizà a selezzione di output
Per automaticamente, tutti i output VL53L7CX sò attivati. Se necessariu, l'utilizatore pò disattivà alcune uscite di sensori. A disattivazione di e misure ùn hè micca dispunibule nantu à u driver; si deve esse realizatu in a "piattaforma". h' file. L'utilizatore pò dichjarà e seguenti macros per disattivà i risultati:
#definisce VL53L7CX_DISABLE_AMBIENT_PER_SPAD
#definisce VL53L7CX_DISABLE_NB_SPADS_ENABLED
#definisce VL53L7CX_DISABLE_NB_TARGET_DETECTED
#definisce VL53L7CX_DISABLE_SIGNAL_PER_SPAD
#definisce VL53L7CX_DISABLE_RANGE_SIGMA_MM
#definisce VL53L7CX_DISABLE_DISTANCE_MM
#define VL53L7CX_DISABLE_TARGET_STATUS
#definisce VL53L7CX_DISABLE_REFLECTANCE_PERCENT
#definisce VL53L7CX_DISABLE_MOTION_INDICATOR
In cunseguenza, i campi ùn sò micca dichjarati in a struttura di risultati, è i dati ùn sò micca trasferiti à l'ospiti. A dimensione RAM è a dimensione I²C sò ridotte. Per assicurà a coherenza di e dati, ST ricumanda sempre di mantene attivate u "numeru di miri rilevati" è u "statu di destinazione". Questu filtra e misurazioni secondu u statu di destinazione (consultate a Sezione 5.5: Interpretazione di i risultati).
Ottene risultati à 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 vl53l7cx_check_data_ready (). Detecta un novu conte di flussu tornatu da u sensoru.
- Modu d'interruzzione: aspetta una interruzzione risuscitata nantu à u pin A3 (GPIO1). L'interruzzione hè automaticamente cancellata dopu ~ 100 μs.
Quandu i novi dati sò pronti, i risultati ponu esse leghje cù a funzione vl53l7cx_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.
Utilizà u furmatu di firmware crudu
Dopu à trasfiriri i dati chì varieghja à traversu l 'I²C, 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: VL53L7CX
#define VL53L7CX_USE_RAW_FORMAT
Interpretazione di i risultati
I dati restituiti da u VL53L7CX 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.
Tabella 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 (tipicamente 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 qualificazione di cunfidenza, un mira cù u statutu 5 hè cunsideratu cum'è 100% validu. Un statutu di 6 o 9 pò esse cunsideratu cun un valore di cunfidenza di 50%. Tutti l'altri stati sò sottu à u nivellu di cunfidenza di 50%.
Errori di driver
Quandu si verifica un errore cù u sensor VL53L7CX, u cunduttore torna un errore specificu. A tavula seguente lista i pussibuli errori.
Tabella 5. Lista di errori dispunibili cù u driver
Statu di destinazione | Descrizzione |
0 | Nisun errore |
127 | L'utilizatore hà programatu un paràmetru incorrectu (risoluzione scunnisciuta, frequenza di gamma troppu alta, ...) |
255 | Errore maiò. Di solitu un errore di timeout, per un errore I²C. |
altru | Cumminazione di parechji errori descritti sopra |
Nota: L'ospite pò implementà più codici d'errore utilizendu a piattaforma files.
Storia di rivisione
Tabella 6. Storia di rivisione di documenti
Data | Versione | Cambiamenti |
02-aostu-2022 | 1 | Liberazione iniziale |
02-sep-2022 | 2 | Aghjurnatu Sezione Introduzione Nota aghjunta nantu à a distanza minima trà i miri à Sezione 4.10: Multiple obiettivi per zona |
21-Feb-2024 | 3 | Aggiuntu VHV (voltage) à Sezione 1: Acronimi è abbreviazioni. Aggiuntu Sezione 4.14: Compensazione di temperatura periodica |
Assistenza Clienti
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.
© 2024 STMicroelectronics - Tutti i diritti riservati
Documenti / Risorse
![]() |
STMicroelectronics VL53L7CX Sensore di distanza multizona di u tempu di volu [pdfGuida di l'utente VL53L7CX Sensore di distanza multizona di u tempu di volu, VL53L7CX, Sensore di distanza multizona di u tempu di volu, Sensore di distanza multizona di volu, Sensore di distanza multizona, Sensore di distanza |