Sigla ST UM3038 Senzor de măsurare multizonă a timpului zborului
Manual de utilizare
ST UM3038 Senzor de măsurare multizonă a timpului zborului

UM3038 Manual de utilizare
Un ghid pentru utilizarea senzorului de distanță multizonă pentru timp de zbor VL53L7CX cu 90° FoV

Introducere

Scopul acestui manual de utilizare este de a explica modul de manipulare a senzorului VL53L7CX Time-of-Flight (ToF), folosind API-ul ultra lite driver (ULD). Descrie principalele funcții de programare a dispozitivului, calibrări și rezultate.
Special conceput pentru aplicații care necesită un FoV ultra-larg, senzorul de timp de zbor VL53L7CX oferă un FoV în diagonală de 90°. Bazat pe tehnologia FlightSense de la ST, VL53L7CX încorporează o lentilă de metasuprafață (DOE) eficientă plasată pe emițătorul laser, permițând proiecția unui FoV pătrat de 60° x 60° pe scenă.
Capacitatea sa multizonă oferă o matrice de 8×8 zone (64 de zone) și poate funcționa la viteze mari (60 Hz) până la 350 cm.
Datorită modului autonom cu un prag de distanță programabil combinat cu FoV ultralarg, VL53L7CX este perfect pentru orice aplicație care necesită detectarea utilizatorului cu putere redusă. Algoritmii brevetați ST și construcția inovatoare a modulelor permit modelului VL53L7CX să detecteze, în fiecare zonă, mai multe obiecte în FoV cu înțelegere în profunzime. Algoritmii de histogramă ST asigură imunitate la diafonia din sticlă de acoperire peste 60 cm.
Derivat de la VL53L5CX, pinout-urile și driverele ambilor senzori sunt compatibile, ceea ce asigură o migrare simplă de la un senzor la altul.
La fel ca toți senzorii Time-of-Flight (ToF) bazați pe tehnologia FlightSense de la ST, VL53L7CX înregistrează, în fiecare zonă, o distanță absolută, indiferent de culoarea și reflectanța țintei.
Găzduit într-un pachet reflowabil în miniatură care integrează o matrice SPAD, VL53L7CX atinge cea mai bună performanță de acoperire în diferite condiții de iluminare ambientală și pentru o gamă largă de materiale de acoperire.
Toți senzorii ToF de la ST integrează un VCSEL care emite o lumină IR complet invizibilă de 940 nm, care este complet sigură pentru ochi (certificare de clasa 1).
VL53L7CX este senzorul perfect pentru orice aplicație care necesită FoV ultrawide, cum ar fi robotica, difuzoarele inteligente, proiectoarele video, managementul conținutului. Combinația dintre capacitatea multizonă și FoV de 90° poate îmbunătăți noi cazuri de utilizare, cum ar fi recunoașterea gesturilor, SLAM pentru robotică și activarea sistemului de putere redusă pentru clădirea inteligentă.
Figura 1. Modulul senzor VL53L7CX
ST UM3038 Senzor de măsurare multizonă a timpului zborului fig 11Referințe

Foaie de date VL53L7CX (DS13865).

Acronime si abrevieri

Acronim/abreviere Definiţie
CĂPRIOARĂ element optic difractiv
FoV domeniul de view
I2C circuit inter-integrat (autobuz serial)
Kcps/SPAD Număr de kilograme pe secundă per spad (unitate utilizată pentru a cuantifica numărul de fotoni din matricea SPAD)
RAM memorie cu acces aleatoriu
SCL linie de ceas serial
SDA date seriale
SPAD diodă de avalanșă cu un singur foton
ToF Ora zborului
ULD driver ultra lite
VCSEL diodă emițătoare de suprafață cu cavitate verticală
Xtalk diafonie

Descrierea funcțională

2.1 Sistem terminatview
Sistemul VL53L7CX este compus dintr-un modul hardware și software-ul driver ultra lite (VL53L7CX ULD) care rulează pe o gazdă (vezi figura de mai jos). Modulul hardware conține senzorul ToF. ST furnizează driverul software care este denumit în acest document „driverul”. Acest document descrie funcțiile driverului care sunt accesibile gazdei. Aceste funcții controlează senzorul și obțin date de distanță.
Figura 2. S-a terminat sistemul VL53L7CXview
ST UM3038 Senzor de măsurare multizonă a timpului zborului fig 102.2 Orientare eficientă
Modulul include o lentilă peste diafragma RX care răstoarnă (orizontal și vertical) imaginea capturată a țintei. În consecință, zona identificată ca zona 0 în partea stângă jos a matricei SPAD este iluminată de o țintă situată în partea dreaptă sus a scenei.
Figura 3. Orientarea efectivă a VL53L7CXST UM3038 Senzor de măsurare multizonă a timpului zborului fig 9

2.3 Scheme și configurație I2C
Comunicația dintre driver și firmware este gestionată de I2C, cu capacitatea de a funcționa până la 1 MHz. Implementarea necesită pull-up-uri pe liniile SCL și SDA. Vă rugăm să consultați fișa de date VL53L7CX pentru mai multe informații.
Dispozitivul VL53L7CX are o adresă I2C implicită de 0x52. Cu toate acestea, este posibil să schimbați adresa implicită pentru a evita conflictele cu alte dispozitive sau pentru a facilita adăugarea mai multor module VL53L7CX la sistem pentru un FoV de sistem mai mare. Adresa I2C poate fi schimbată folosind funcția vl53l7cx_set_i2c_address().
Figura 4. Senzori multipli pe magistrala I2C
ST UM3038 Senzor de măsurare multizonă a timpului zborului fig 8
Pentru a permite unui dispozitiv să aibă adresa I2C schimbată fără a afecta pe alții de pe magistrala I2C, este important să dezactivați comunicația I2C a dispozitivelor care nu sunt modificate. Procedura este următoarea:

  1. Porniți sistemul ca de obicei.
  2. Trageți în jos pinul LPn al dispozitivului căruia nu i se va schimba adresa.
  3. Trageți în sus pinul LPn al dispozitivului care are adresa I2C schimbată.
  4. Programați adresa I2C pe dispozitiv utilizând funcția set_i2c_address().
  5. Trageți în sus pinul LPn al dispozitivului care nu este reprogramat.

Toate dispozitivele ar trebui să fie acum disponibile pe magistrala I2C. Repetați pașii de mai sus pentru toate dispozitivele VL53L7CX din sistem care necesită o nouă adresă I2C.

Conținutul pachetului și fluxul de date

3.1 Arhitectura și conținutul driverului
Pachetul VL53L7CX ULD este compus din patru foldere. Driverul se află în folderul / VL53L7CX_ULD_API.
Soferul este compus din obligatorii si optionali files. Opțional files sunt plugins folosit pentru a extinde caracteristicile ULD. Fiecare plugin începe cu cuvântul „vl53l7cx_plugin” (de exemplu, vl53l7cx_plugin_xtalk.h). Dacă utilizatorul nu dorește propunerea plugins, pot fi eliminate fără a afecta celelalte caracteristici ale driverului. Următoarea figură reprezintă cea obligatorie files și opționalul plugins.
Figura 5. Arhitectura driverului
ST UM3038 Senzor de măsurare multizonă a timpului zborului fig 7
De asemenea, utilizatorul trebuie să implementeze două filese află în folderul /Platform. Platforma propusă este o carcasă goală și trebuie să fie umplută cu funcții dedicate.
Nota: Plat forma h file conține macrocomenzi obligatorii pentru a utiliza ULD. Toate file conținutul este obligatoriu pentru a utiliza corect ULD.
3.2 Fluxul de calibrare
Nota: Diafonia (xtalk) este definită ca cantitatea de semnal primită pe matricea SPAD, care se datorează reflectării luminii VCSEL în interiorul ferestrei de protecție (sticlă de acoperire) adăugată deasupra modulului. Modulul VL53L7CX este auto-calibrat și poate fi utilizat fără nicio calibrare suplimentară.
Calibrarea Xtalk poate fi necesară dacă modulul este protejat de o sticlă de acoperire. VL53L7CX este imun la xtalk peste 60 cm datorită unui algoritm de histogramă, dar la distanțe scurte sub 60 cm, xtalk poate fi mai mare decât semnalul returnat real, dând o citire falsă a țintei sau făcând țintele să pară mai aproape decât sunt în realitate. Toate funcțiile de calibrare xtalk sunt incluse într-un plugin xtalk (opțional). Utilizatorul trebuie să folosească file `vl53l7cx_plugin_xtalk'.
Xtalk poate fi calibrat o dată, iar datele pot fi salvate pentru a fi reutilizate ulterior. Este necesară o țintă la distanță fixă, cu o reflectanță cunoscută. Distanța minimă necesară este de 600 mm, iar ținta trebuie să acopere întregul FoV. În funcție de configurație, utilizatorul poate modifica setările pentru a adapta calibrarea Xtalk, așa cum este propus în tabelul următor.
Tabel 1. Setări disponibile pentru calibrare

Setare Min Propus de ST Max
Distanța [mm] 600 600 3000
Numărul de samples 1 4 16
Reflectanta [%] 1 3 99

Nota Creșterea numărului de samples crește acuratețea, dar crește și timpul de calibrare. Timpul relativ la numărul de samples este liniar, iar valorile urmează timeout-ul aproximativ:

  • 1 sample 1 secundă
  • 4 samp2.5 secunde
  • 16 samp8.5 secunde

Calibrarea se realizează folosind funcția vl53l7cx_calibrate_xtalk(). Această funcție poate fi utilizată în orice moment. Cu toate acestea, senzorul trebuie inițializat mai întâi. Următoarea figură reprezintă fluxul de calibrare Xtalk.
Figura 6. Fluxul de calibrare XtalkST UM3038 Senzor de măsurare multizonă a timpului zborului fig 6

3.3 Debitul variabil
Următoarea figură reprezintă debitul de măsurare utilizat pentru a obține măsurători. Calibrarea Xtalk și apelurile de funcții opționale trebuie utilizate înainte de a începe sesiunea de rang. Funcțiile de obținere/setare nu pot fi utilizate în timpul unei sesiuni de distanță, iar programarea „din zbor” nu este acceptată.
Figura 7. Debitul de interval folosind VL53L7CXST UM3038 Senzor de măsurare multizonă a timpului zborului fig 5

Caracteristici disponibile

API-ul VL53L7CX ULD include mai multe funcții care permit utilizatorului să regleze senzorul, în funcție de caz. Toate funcțiile disponibile pentru șofer sunt descrise în secțiunile următoare.
4.1 Inițializare
Inițializarea trebuie făcută înainte de a utiliza senzorul VL53L7CX. Această operațiune necesită utilizatorului:

  1. Porniți senzorul (pinii VDDIO, AVDD, LPn setat la Înalt și pinul I2C_RST setat la 0)
  2. Apelați funcția vl53l7cx_init(). Funcția copiează firmware-ul (~84 kbytes) în modul prin încărcarea codului prin interfața I2C și efectuând o rutină de pornire pentru a finaliza inițializarea.

4.2 Gestionarea resetarii senzorului
Pentru a reseta dispozitivul, trebuie să comutați următorii pini:

  1. Setați pinii VDDIO, AVDD și LPn la nivel scăzut.
  2. Așteptați 10 ms.
  3. Setați pinii VDDIO, AVDD și LPn la mare. Comutarea numai a pinului I2C_RST resetează comunicarea I2C.

4.3 Rezoluție
Rezoluția corespunde numărului de zone disponibile. Senzorul VL53L7CX are două rezoluții posibile: 4×4 (16 zone) și 8×8 (64 de zone). Implicit senzorul este programat în 4×4.
Funcția vl53l7cx_set_resolution() permite utilizatorului să modifice rezoluția. Deoarece frecvența de măsurare depinde de rezoluție, această funcție trebuie utilizată înainte de a actualiza frecvența de măsurare. Mai mult, modificarea rezoluției crește și dimensiunea traficului pe magistrala I2C atunci când sunt citite rezultatele.
4.4 Frecvență de măsurare
Frecvența de măsurare poate fi utilizată pentru a modifica frecvența de măsurare. Deoarece frecvența maximă este diferită între rezoluțiile 4×4 și 8×8, această funcție trebuie utilizată după alegerea unei rezoluții. Valorile minime și maxime permise sunt enumerate în tabelul următor.
Tabelul 2. Frecvențe minime și maxime

Rezoluţie Frecvență minimă [Hz] Frecvența maximă [Hz]
4×4 1 60
8×8 1 15

Frecvența de interval poate fi actualizată folosind funcția vl53l7cx_set_ranging_frequency_hz(). În mod implicit, frecvența de măsurare este setată la 1 Hz.
4.5 Modul de distanță
Modul de variație permite utilizatorului să aleagă între performanță ridicată sau consum redus de energie.
Sunt propuse două moduri:

  • Continuu: dispozitivul captează în mod continuu cadre cu o frecvență definită de utilizator. VCSEL este activat în timpul tuturor intervalelor, astfel încât distanța maximă și imunitatea ambientală sunt mai bune. Acest mod este recomandat pentru măsurători cu intervale rapide sau performanțe înalte.
  • Autonom: acesta este modul implicit. Dispozitivul captează în mod continuu cadre cu o frecvență definită de utilizator. VCSEL este activat într-o perioadă definită de utilizator, folosind funcția vl53l7cx_set_integration_time_ms(). Deoarece VCSEL nu este întotdeauna activat, consumul de energie este redus. Beneficiile sunt mai evidente cu o frecvență redusă. Acest mod este recomandat pentru aplicații cu putere redusă.

Modul de ranging poate fi schimbat folosind funcția vl53l7cx_set_ranging_mode().
4.6 Timp de integrare
Timpul de integrare este o caracteristică disponibilă numai utilizând modul Autonomous range (consultați Secțiunea 4.5 Mod Ranger). Acesta permite utilizatorului să schimbe ora în timp ce VCSEL este activat. Modificarea timpului de integrare dacă modul Ranging este setat la continuu nu are efect. Timpul implicit de integrare este setat la 5 ms.
Efectul timpului de integrare este diferit pentru rezoluțiile 4×4 și 8×8. Rezoluția 4×4 este compusă dintr-un timp de integrare, iar rezoluția 8×8 este compusă din patru timpi de integrare. Următoarele cifre reprezintă emisia VCSEL pentru ambele rezoluții.
Figura 8. Timp de integrare pentru 4×4 autonomST UM3038 Senzor de măsurare multizonă a timpului zborului fig 4

Suma tuturor timpilor de integrare + 1 ms overhead trebuie să fie mai mică decât perioada de măsurare. În caz contrar, perioada de interval este mărită automat pentru a se potrivi cu valoarea timpului de integrare.
4.7 Moduri de alimentare
Modurile de alimentare pot fi utilizate pentru a reduce consumul de energie atunci când dispozitivul nu este utilizat. VL53L7CX poate funcționa în unul dintre următoarele moduri de alimentare:

  • Trezire: Dispozitivul este setat pe HP inactiv (putere mare), în așteptarea instrucțiunilor.
  • Sleep: Dispozitivul este setat în LP inactiv (putere scăzută), starea de putere scăzută. Dispozitivul nu poate fi utilizat până când este setat în modul de trezire. Acest mod păstrează firmware-ul și configurația.

Modul de alimentare poate fi schimbat folosind funcția vl53l7cx_set_power_mode(). Modul implicit este Trezire.
Nota Dacă utilizatorul dorește să schimbe modul de alimentare, dispozitivul nu trebuie să fie într-o stare de distanță.
4.8 Ascuțitor
Semnalul returnat de la o țintă nu este un puls curat, cu margini ascuțite. Marginile se înclină și pot afecta distanțele raportate în zonele adiacente. Ascuțitorul este folosit pentru a elimina o parte sau tot semnalul cauzat de strălucirea voalului. ExampImaginea prezentată în figura următoare reprezintă o țintă apropiată la 100 mm centrată în FoV și o altă țintă, mai în urmă la 500 mm. În funcție de valoarea ascuțitorului, ținta apropiată poate apărea în mai multe zone decât cea reală.
Figura 10. Exampchiul scenei folosind mai multe valori de ascuțire
ST UM3038 Senzor de măsurare multizonă a timpului zborului fig 3
Ascuțitorul poate fi schimbat folosind funcția vl53l7cx_set_sharpener_percent(). Valorile permise sunt între 0 % și 99 %. Valoarea implicită este 5 %.
4.9 Ordine țintă
VL53L7CX poate măsura mai multe ținte pe zonă. Datorită procesării histogramei, gazda poate alege ordinea țintelor raportate. Există două opțiuni:

  • Cea mai apropiată: cea mai apropiată țintă este prima raportată
  • Cea mai puternică: cea mai puternică țintă este prima raportată

Ordinea țintă poate fi modificată folosind funcția vl53l7cx_set_target_order(). Ordinea implicită este cea mai puternică.
Example din figura următoare reprezintă detectarea a două ținte. Unul la 100 mm cu o reflectanță scăzută și unul la 700 mm cu o reflectanță ridicată.
Figura 11. Exampfişierul histogramei cu 2 ţinte

ST UM3038 Senzor de măsurare multizonă a timpului zborului fig 2

4.10 Ținte multiple pe zonă
VL53L7CX poate măsura până la patru ținte pe zonă. Utilizatorul poate configura numărul de ținte returnate de senzor.
Nota Distanța minimă dintre două ținte care trebuie detectate este de 600 mm. Selectarea nu este posibilă de la șofer; trebuie făcut în `platform.h' file. Macro-ul VL53L7CX_NB_ TARGET_PER_ZONE trebuie setat la o valoare între 1 și 4. Ordinea țintă descrisă în Secțiunea 4.9 Ordinea țintă afectează direct ordinea țintei detectate. În mod implicit, senzorul emite maximum o țintă pe zonă.
Nota  Un număr crescut de ținte pe zonă crește dimensiunea RAM necesară.
4.11 Marja Xtalk
Marja Xtalk este o caracteristică suplimentară disponibilă numai folosind pluginul Xtalk. .c și .f files „vl53l7cx_plugin_xtalk” trebuie folosit.
Marja este utilizată pentru a schimba pragul de detectare atunci când o femeie de acoperire este prezentă pe partea de sus a senzorului. Pragul poate fi mărit pentru a se asigura că dispozitivul fără acoperire nu este niciodată detectat, după setarea datelor de calibrare X Talk. De exampda, utilizatorul poate rula o calibrare Xwalk pe un singur dispozitiv și poate reutiliza aceleași date de calibrare pentru toate celelalte dispozitive. Marja de convorbire X poate fi utilizată pentru a regla corectarea vorbirii X. Figura de mai jos reprezintă marja Xwalk.
Figura 12. Marja de vorbire X
ST UM3038 Senzor de măsurare multizonă a timpului zborului fig 14.12 Praguri de detectare

Pe lângă capacitățile obișnuite de măsurare a distanței, senzorul poate fi programat să detecteze un obiect în conformitate cu anumite criterii predefinite. Această caracteristică este disponibilă folosind pluginul „praguri de detectare”, care este o opțiune neinclusă în mod implicit în API. The files-a numit „vl53l7cx_plugin_detection_thresholds” trebuie folosit. Caracteristica poate fi utilizată pentru a declanșa o întrerupere a pinului A3 (INT) atunci când sunt îndeplinite condițiile definite de utilizator. Există trei configurații posibile:

  • Rezoluție 4×4: folosind 1 prag per zonă (total de 16 praguri)
  • Rezoluție 4×4: folosind 2 praguri per zonă (total de 32 de praguri)
  • Rezoluție 8×8: folosind 1 prag per zonă (total de 64 praguri)

Indiferent de configurația folosită, procedura de creare a pragurilor și dimensiunea RAM sunt aceleași.
Pentru fiecare combinație de prag, trebuie completate mai multe câmpuri:

  • Zone id: id-ul zonei selectate (consultați Secțiunea 2.2 Orientare efectivă)
  • Măsurare: măsurarea de captare (distanță, semnal, număr de SPAD-uri, …)
  • Tip: ferestre de măsurători (în ferestre, în afara ferestrelor, sub pragul scăzut, …)
  • Prag scăzut: utilizator cu prag scăzut pentru declanșare. Utilizatorul nu trebuie să seteze formatul, acesta este gestionat automat de API.
  • Prag înalt: utilizator cu prag înalt pentru declanșare. Utilizatorul nu trebuie să seteze formatul, acesta este gestionat automat de API.
  • Operațiune matematică: utilizat numai pentru combinații de prag 4×4 2 per zonă. Utilizatorul poate seta o combinație folosind mai multe praguri într-o zonă.

4.13 Indicator de mișcare
Senzorul VL53L7CX are o caracteristică de firmware încorporată care permite detectarea mișcării într-o scenă. Indicatorul de mișcare este calculat între cadre secvențiale. Această opțiune este disponibilă folosind pluginul `vl53l7cx_plugin_motion_indicator'.
Indicatorul de mișcare este inițializat folosind funcția vl53l7cx_motion_indicator_init(). Dacă utilizatorul dorește să modifice rezoluția senzorului, trebuie să actualizeze rezoluția indicatorului de mișcare folosind funcția dedicată: vl53l7cx_motion_indicator_set_resolution().
De asemenea, utilizatorul poate modifica distanțele minime și maxime pentru detectarea mișcării. Diferența dintre distanțele minime și maxime nu poate fi mai mare de 1500 mm. În mod implicit, distanțele sunt inițializate cu valori cuprinse între 400 mm și 1500 mm.
Rezultatele sunt stocate în câmpul „indicator de mișcare”. În acest câmp, matricea „mișcare” oferă o valoare care conține intensitatea mișcării pe zonă. O valoare ridicată indică o variație mare de mișcare între cadre. O mișcare tipică oferă o valoare între 100 și 500. Această sensibilitate depinde de timpul de integrare, distanța țintă și reflectanța țintei.
O combinație ideală pentru aplicațiile cu putere redusă este utilizarea indicatorului de mișcare cu modul Autonomous range, și a pragurilor de detectare programate pe mișcare. Acest lucru permite detectarea variațiilor de mișcare în FoV cu un consum minim de energie.

Rezultate variate

5.1 Date disponibile
O listă extinsă de date despre țintă și mediu poate fi scoasă în evidență în timpul activităților de distanță. Următorul tabel descrie parametrii disponibili pentru utilizator.
Tabelul 3. Ieșire disponibilă folosind senzorul VL53L7CX

Element Nb octeți (RAM) Unitate Descriere
Ambient per SPAD 256 Kcps/SPAD Măsurarea ratei ambientale efectuată pe matricea SPAD, fără emisie de fotoni activi, pentru a măsura rata semnalului ambiental din cauza zgomotului.
Numărul de ținte detectate 64 Nici unul Numărul de ținte detectate în zona curentă. Această valoare ar trebui să fie prima care trebuie verificată pentru a cunoaște validitatea măsurării.
Numărul de SPAD-uri activate 256 Nici unul Numărul de SPAD-uri activate pentru măsurarea curentă. O țintă cu reflexie îndepărtată sau scăzută va activa mai multe SPAD-uri.
Semnal pe SPAD 256 x nb ținte programate Kcps/SPAD Cantitatea de fotoni măsurată în timpul impulsului VCSEL.
Gama sigma 128 x nb ținte programate Milimetru Estimator Sigma pentru zgomotul raportat
distanta tinta.
Distanţă 128 x nb ținte programate Milimetru Distanța țintă
Starea țintă 64 x nb ținte programate Nici unul Valabilitatea măsurătorilor. Consultați Secțiunea 5.5 Interpretarea rezultatelor pentru mai multe informații.
Reflectanta 64 x număr ținte programate La sută Reflexia țintă estimată în procente
Indicator de mișcare 140 Nici unul Structură care conține rezultatele indicatorului de mișcare.
Câmpul „mișcare” conține intensitatea mișcării.

Notă: Pentru mai multe elemente (semnal pe viteză, sigma, …) accesul la date este diferit dacă utilizatorul a programat mai mult de 1 țintă pe zonă (vezi Secțiunea 4.10 Ținte multiple pe zonă). Vezi exampcodurile le pentru mai multe informații.
5.2 Personalizați selecția de ieșire
În mod implicit, toate ieșirile VL53L7CX sunt activate. Dacă este necesar, utilizatorul poate dezactiva o ieșire a senzorului. Dezactivarea măsurătorilor nu este disponibilă pe driver; trebuie efectuată în „platformă” file. Utilizatorul poate declara următoarele macrocomenzi pentru a dezactiva ieșirile:
#define VL53L7CX_DISABLE_AMBIENT_PER_SPAD
#define VL53L7CX_DISABLE_NB_SPADS_ENABLED
#define VL53L7CX_DISABLE_NB_TARGET_DETECTED
#define VL53L7CX_DISABLE_SIGNAL_PER_SPAD
#define VL53L7CX_DISABLE_RANGE_SIGMA_MM
#define VL53L7CX_DISABLE_DISTANCE_MM
#define VL53L7CX_DISABLE_TARGET_STATUS
#define VL53L7CX_DISABLE_REFLECTANCE_PERCENT
#define VL53L7CX_DISABLE_MOTION_INDICATOR
În consecință, câmpurile nu sunt declarate în structura rezultatelor, iar datele nu sunt transferate către gazdă. Dimensiunea RAM și dimensiunea I2C sunt reduse. Pentru a asigura coerența datelor, ST recomandă să păstrați întotdeauna activate „numărul de ținte detectate” și „starea țintei”. Permite filtrarea măsurătorilor în funcție de starea țintei (consultați Secțiunea 5.5 Interpretarea rezultatelor).
5.3 Obținerea rezultatelor variate
În timpul sesiunii de măsurare, există două moduri de a afla dacă sunt disponibile date noi de măsurare:

  • Modul de sondare: folosește continuu funcția vl53l7cx_check_data_ready(). Detectează un nou număr de fluxuri returnat de senzor.
  • Modul de întrerupere: așteaptă o întrerupere ridicată pe pinul A3 (GPIO1). Întreruperea este ștearsă automat după ~100 s.

Când date noi sunt gata, rezultatele pot fi citite folosind funcția vl53l7cx_get_ranging_data(). Returnează o structură actualizată care conține toate rezultatele selectate. Deoarece dispozitivul este asincron, nu există nicio întrerupere de șters pentru a continua sesiunea de control.
Această caracteristică este disponibilă atât pentru modul continuu, cât și pentru modul autonom.
5.4 Utilizarea formatului de firmware brut
După transferul de date prin I2C, are loc o conversie între formatul firmware și formatul gazdă. Această operație este de obicei efectuată pentru a avea o distanță în milimetri ca ieșire implicită a senzorului. Dacă utilizatorul dorește să folosească formatul de firmware, următoarea macrocomandă trebuie definită în platformă file:
#define VL53L7CX_USE_RAW_FORMAT
5.5 Interpretarea rezultatelor
Datele returnate de VL53L7CX pot fi filtrate pentru a ține cont de starea țintei. Starea indică validitatea măsurării. Lista completă a stării este descrisă în tabelul următor.

Starea țintă Descriere
0 Datele nu sunt actualizate
1 Rata semnalului prea scăzută pe matricea SPAD
2 Faza țintă
3 Estimatorul Sigma este prea mare
4 Consecvența țintei a eșuat
5 Interval valabil
6 Încheierea nu a fost efectuată (de obicei, primul interval)
7 Consecvența ratei a eșuat
8 Rata semnalului prea scăzută pentru ținta actuală
9 Interval valabil cu puls mare (se poate datora unei ținte îmbinate)
10 Interval valid, dar nu a fost detectată nicio țintă la intervalul anterior
11 Consecvența măsurătorilor a eșuat
12 Țintă neclară de alta, datorită ascuțitorului
13 Țintă detectată, dar date inconsecvente. Se întâmplă frecvent pentru ținte secundare.
255 Nicio țintă detectată (doar dacă numărul de ținte detectate este activat)

Pentru a avea date consistente, utilizatorul trebuie să filtreze starea țintei nevalide. Pentru a oferi un rating de încredere, o țintă cu statutul 5 este considerată 100 % valabilă. Un statut de 6 sau 9 poate fi considerat cu o valoare de încredere de 50 %. Toate celelalte stări sunt sub nivelul de încredere de 50 %.
5.6 Erori ale șoferului
Când apare o eroare folosind senzorul VL53L7CX, driverul returnează o anumită eroare. Următorul tabel listează erorile posibile.
Tabelul 5. Lista erorilor disponibile folosind driverul

Starea țintă Descriere
0 Nicio eroare
127 Utilizatorul a programat o setare incorectă (rezoluție necunoscută, frecvență de interval prea mare, …)
255 Eroare majoră. De obicei, o eroare de timeout, din cauza unei erori I2C.
alte Combinație de erori multiple descrise mai sus

Nota Mai multe coduri de eroare pot fi implementate de către gazdă folosind platforma files.
Istoricul reviziilor
Tabelul 6. Istoricul revizuirilor documentului

Data Versiune Schimbări
2-aug-22 1 Lansare inițială
2-sept-22 2 Secțiunea actualizată Introducere Notă adăugată despre distanța minimă dintre ținte la Secțiunea 4.10 Ținte multiple pe zonă

NOTIFICARE IMPORTANT CITIȚI CU ATENTIE
STMicroelectronics NV și filialele sale („ST”) își rezervă dreptul de a face modificări, corecții, îmbunătățiri, modificări și îmbunătățiri produselor ST și/sau acestui document în orice moment, fără notificare. Cumpărătorii trebuie să obțină cele mai recente informații relevante despre produsele ST înainte de a plasa comenzi. Produsele ST sunt vândute în conformitate cu termenii și condițiile de vânzare ale ST în vigoare la momentul confirmării comenzii.
Cumpărătorii sunt singurii responsabili pentru alegerea, selecția și utilizarea produselor ST, iar ST nu își asumă nicio responsabilitate pentru asistența la aplicare sau proiectarea produselor cumpărătorilor. Nicio licență, expresă sau implicită, pentru niciun drept de proprietate intelectuală nu este acordată de către ST prin prezenta. Revânzarea produselor ST cu prevederi diferite de informațiile prezentate aici va anula orice garanție acordată de ST pentru un astfel de produs. ST și sigla ST sunt mărci comerciale ale ST. Pentru informații suplimentare despre mărcile comerciale ST, consultați  www.st.com/trademarks.
Toate celelalte nume de produse sau servicii sunt proprietatea proprietarilor respectivi. Informațiile din acest document înlocuiesc și înlocuiesc informațiile furnizate anterior în orice versiuni anterioare ale acestui document.
© 2022 STMicroelectronics Toate drepturile rezervate

Documente/Resurse

ST UM3038 Senzor de măsurare multizonă a timpului zborului [pdfManual de utilizare
UM3038 Senzor de distanță multizonă pentru timpul zborului, UM3038, Senzor de distanță multizonă pentru timpul zborului, Senzor de distanță multizonă pentru timpul zborului, Senzor de distanță multizonă de zbor, Senzor de distanță multizonă, Senzor de distanță de zbor, Senzor de distanță, Senzor UM3038

Referințe

Lasă un comentariu

Adresa ta de e-mail nu va fi publicată. Câmpurile obligatorii sunt marcate *