VL53L8CX sensormodul
Brugermanual
Indledning
Formålet med denne brugervejledning er at forklare, hvordan man håndterer VL53L8X Time-of-Flight (ToF) sensoren ved hjælp af ultra lite driver (ULD) API. Den beskriver hovedfunktionerne til programmering af enheden, kalibreringerne og outputresultaterne.
Baseret på STs FlightSense-teknologi inkorporerer VL53L8CX en effektiv metasurface-linse (DOE) placeret på laseremitteren, der muliggør projektion af en 45° x 45° kvadratisk FoV på scenen.
Dens multizone-kapacitet giver en matrix på 8×8 zoner (64 zoner) og kan arbejde ved høje hastigheder (60 Hz) op til 400 cm.
Takket være den autonome tilstand med programmerbar afstandstærskel er VL53L8CX perfekt til enhver applikation, der kræver lav-strøm brugerdetektion. STs patenterede algoritmer og innovative modulkonstruktion gør det muligt for VL53L8CX at detektere, i hver zone, flere objekter i FoV'et med dybdeforståelse. ST-histogram-algoritmer sikrer dækglas-crosstalk-immunitet ud over 60 cm.
Som alle Time-of-Flight-sensorer (ToF) baseret på STs FlightSense-teknologi, registrerer VL53L8CX, i hver zone, en absolut afstand uanset målfarve og reflektans.
VL53L8CX er indkapslet i en miniature-reflowable-pakke, der integrerer et SPAD-array, og opnår den bedste ydeevne under forskellige omgivende lysforhold og til en bred vifte af dækglasmaterialer.
Alle ST's ToF-sensorer integrerer en VCSEL, der udsender et fuldt usynligt 940 nm IR-lys, som er helt sikkert for øjnene (Klasse 1-certificering).

Akronymer og forkortelser
| Akronym/forkortelse | Definition |
| DOE | diffraktivt optisk element |
| FoV | felt af view |
| I2C | inter-integreret kredsløb (seriel bus) |
| Kcps/SPAD | Kilo-tæller pr. sekund pr. spad (enhed brugt til at kvantificere antal fotoner i SPAD-arrayet) |
| VÆDDER | random access memory |
| SCL | seriel ur linje |
| SDA | serielle data |
| SPAD | enkelt foton lavine diode |
| ToF | Flyvetid |
| ULD | ultra lite driver |
| VCSEL | lodret hulrumsoverfladeemitterende diode |
| Xtalk | krydstale |
Funktionsbeskrivelse
2.1 System overståetview
VL53L8CX-systemet er sammensat af et hardwaremodul og ultra lite driversoftwaren (VL53L8CX ULD), der kører på en vært (se figuren nedenfor). Hardwaremodulet indeholder ToF-sensoren. STMicroelectronics leverer softwaredriveren, som i dette dokument omtales som "driveren". Dette dokument beskriver driverens funktioner, som er tilgængelige for værten. Disse funktioner styrer sensoren og henter afstandsdataene.

2.2 Effektiv orientering
Modulet inkluderer en linse over RX-blænden, som vender (vandret og lodret) det optagne billede af målet. Som følge heraf er den zone, der er identificeret som zone 0, nederst til venstre i SPAD-arrayet, oplyst af et mål placeret øverst til højre i scenen.

2.3 Skema og I2C/SPI-konfiguration
Kommunikationen mellem driver og firmware håndteres af I2C eller SPI. Den maksimale kapacitet af I2C er 1 MHz, og den maksimale kapacitet af SPI er 20 MHz. Implementeringen af hver kommunikationsprotokol kræver pull-ups som beskrevet i VL53L8CX dataarket.
VL53L8CX-enheden har en standard I2C-adresse på 0x52. Det er dog muligt at ændre standardadressen for at undgå konflikter med andre enheder eller for at lette tilføjelsen af flere VL53L8CX-moduler til systemet for et større system FoV. I2C-adressen kan ændres ved hjælp af funktionen vl53l8cx_set_i2c_address() . For at bruge SPI'en er multisensoren forbundet med en uafhængig slavekonfiguration (NCS-stiften).


For at tillade en enhed at få ændret sin I2C-adresse uden at påvirke andre på I2C-bussen, er det vigtigt at
deaktiver I2C-kommunikationen for de enheder, der ikke ændres. Fremgangsmåden er som følger:
- Tænd for systemet som normalt.
- Træk LPn-stiften ned på den enhed, der ikke vil få ændret adresse.
- Træk LPn-stiften op på den enhed, der har ændret I2C-adressen.
- Programmer I2C-adressen til enheden ved hjælp af funktionen set_i2c_address()-funktionen.
- Træk LPn-stiften op på den enhed, der ikke omprogrammeres.
Alle enheder skulle nu være tilgængelige på I2C-bussen. Gentag ovenstående trin for alle de enheder i systemet, der kræver en ny I2C-adresse.
Pakkeindhold og dataflow
3.1 Driverarkitektur og indhold
VL53L8CX ULD-pakken er sammensat af fire mapper. Driveren er placeret i mappen /VL53L8CX_ULD_API.
Chaufføren er sammensat af obligatorisk og valgfri files. Valgfri files er plugins bruges til at udvide ULD-funktioner.
Hvert plugin starter med ordet "vl53l8cx_plugin" (f.eks. vl53l8cx_plugin_xtalk.h). Hvis brugeren ikke ønsker det foreslåede plugins, kan de fjernes uden at påvirke de andre driverfunktioner. Følgende figur repræsenterer det obligatoriske files og den valgfrie plugins.
Note:
Brugeren skal også implementere to files placeret i mappen /Platform. Den foreslåede platform er en tom skal og skal være fyldt med dedikerede funktioner.
Platform.h file indeholder obligatoriske makroer for at bruge ULD. Alle file indhold er obligatorisk for at bruge ULD korrekt.
3.2 Kalibreringsflow
Crosstalk (Xtalk) er defineret som mængden af signal, der modtages på SPAD-arrayet, hvilket skyldes VCSEL-lysreflektion inde i det beskyttende vindue (dækglas), der er tilføjet oven på modulet. VL53L8CX modulet er selvkalibreret og kan bruges uden yderligere kalibrering.
Xtalk-kalibrering kan være påkrævet, hvis modulet er beskyttet af et dækglas. VL53L8CX er immun over for Xtalk ud over 60 cm takket være en histogramalgoritme. Ved korte afstande under 60 cm kan Xtalk dog være større end det faktiske returnerede signal. Dette giver en falsk målaflæsning eller får mål til at virke tættere på, end de i virkeligheden er. Alle Xtalk-kalibreringsfunktioner er inkluderet i et Xtalk-plugin (valgfrit). Brugeren skal bruge file 'vl53l8cx_plugin_xtalk'.
Xtalk kan kalibreres én gang, og data kan gemmes, så det kan genbruges senere. Et mål på fast afstand med en kendt reflektans er påkrævet. Minimumsafstanden er 600 mm, og målet skal dække hele FoV. Afhængigt af opsætningen kan brugeren ændre indstillinger for at tilpasse Xtalk-kalibreringen, som foreslået i følgende tabel.
Tabel 1. Tilgængelige indstillinger for kalibrering
| Indstilling | Min | Foreslået af STMicroelectronics |
Maks |
| Afstand [mm] | 600 | 600 | 3000 |
| Antal samples | 1 | 4 | 16 |
| Refleksion [%] | 1 | 3 | 99 |
Note:
Forøgelse af antallet af samples øger nøjagtigheden, men det øger også tiden til kalibrering. Tiden i forhold til antallet af samples er lineær, og værdierne følger den omtrentlige timeout:
- 1 sample ≈ 1 sekund
- 4 samples ≈ 2.5 sekunder
- 16 samples ≈ 8.5 sekunder
Kalibreringen udføres ved hjælp af funktionen vl53l8cx_calibrate_xtalk(). Denne funktion kan bruges til enhver tid.
Føleren skal dog initialiseres først. Følgende figur repræsenterer xtalk-kalibreringsflowet.
Figur 7. Xtalk-kalibreringsflow

3.3 Afstandsflow
Følgende figur repræsenterer det afstandsflow, der bruges til at få målinger. Xtalk-kalibrering og valgfri funktionsopkald skal bruges, før afstandssessionen startes. Get/set-funktionerne kan ikke bruges under en afstandssession, og 'on-the-fly'-programmering understøttes ikke.

Tilgængelige funktioner
VL53L8CX ULD API indeholder adskillige funktioner, som giver brugeren mulighed for at tune sensoren, afhængigt af brugssituationen. Alle de funktioner, der er tilgængelige for føreren, er beskrevet i de følgende afsnit.
4.1 Initialisering
Initialisering skal udføres, før VL53L8CX-sensoren tages i brug. Denne handling kræver, at brugeren:
- Tænd for sensoren (VDDIO, AVDD, CORE_1V8 og LPn-ben sat til High
- Kald funktionen vl53l8cx_init(). Funktionen kopierer firmwaren (~84 Kbytes) til modulet. Dette gøres ved at indlæse koden over I2C/SPI-grænsefladen og udføre en bootrutine for at fuldføre initialiseringen.
4.2 Styring af sensornulstilling
For at nulstille enheden skal følgende stifter skiftes:
- Indstil ben VDDIO, AVDD og CORE_1V8 ben til lav.
- Vent 10 ms.
- Indstil ben VDDIO, AVDD og CORE_1V8 ben til høj.
Note:
Skift kun I2C_RST pin nulstiller I2C kommunikationen.
4.3 Opløsning
Opløsningen svarer til antallet af tilgængelige zoner. VL53L8CX-sensoren har to mulige opløsninger: 4×4 (16 zoner) og 8×8 (64 zoner). Som standard er sensoren programmeret i 4×4.
Funktionen vl53l8cx_set_resolution() giver brugeren mulighed for at ændre opløsningen. Da afstandsfrekvensen afhænger af opløsningen, skal denne funktion bruges før opdatering af afstandsfrekvensen. Desuden øger ændring af opløsningen også trafikstørrelsen på I2C/SPI-bussen, når resultaterne læses.
4.4 Rangeringsfrekvens
Rangeringsfrekvens kan bruges til at ændre målefrekvensen. Da den maksimale frekvens er forskellig mellem 4×4 og 8×8 opløsninger, skal denne funktion bruges efter valg af opløsning. De mindste og maksimale tilladte værdier er angivet i følgende tabel.
Tabel 2. Minimum og maksimum rækkevidde frekvenser
| Opløsning | Min. områdefrekvens [Hz] | Maks. afstandsfrekvens [Hz] |
| 4×4 | 1 | 60 |
| 8×8 | 1 | 15 |
Ranging frekvens kan opdateres ved hjælp af funktionen vl53l8cx_set_ranging_frequency_hz(). Som standard er afstandsfrekvensen indstillet til 1 Hz.
4.5 Rangeringstilstand
Ranging mode giver brugeren mulighed for at vælge mellem høj ydeevne eller lavt strømforbrug.
Der er foreslået to tilstande:
- Kontinuerlig: Enheden griber kontinuerligt billeder med en rækkevidde, der er defineret af brugeren. VCSEL er aktiveret under al rækkevidde, så maksimal afstandsafstand og omgivende immunitet er bedre. Denne tilstand anbefales til hurtige målinger eller høj ydeevne.
- Autonom: Dette er standardtilstanden. Enheden griber kontinuerligt frames med en rækkeviddefrekvens defineret af brugeren. VCSEL er aktiveret i en periode defineret af brugeren ved hjælp af funktionen vl53l8cx_set_integration_time_ms(). Da VCSEL ikke altid er aktiveret, reduceres strømforbruget. Fordelene er mere indlysende med en reduceret afstandsfrekvens. Denne tilstand anbefales til lavenergiapplikationer.
Afstandstilstanden kan ændres ved hjælp af funktionen vl53l8cx_set_ranging_mode().
4.6 Integrationstid
Integrationstid er en funktion, der kun er tilgængelig ved brug af Autonom Ranging-tilstand (se afsnit 4.5 Ranging-tilstand).
Det giver brugeren mulighed for at ændre tiden, mens VCSEL er aktiveret. Ændring af integrationstid, hvis Ranging-tilstand er indstillet til kontinuerlig, har ingen effekt. Standardintegrationstiden er indstillet til 5 ms.
Effekten af integrationstid er forskellig for 4×4 og 8×8 opløsninger. Opløsning 4×4 er sammensat af én integrationstid, og 8×8 opløsning er sammensat af fire integrationstider. De følgende figurer repræsenterer VCSEL-emissionen for begge opløsninger.

Summen af alle integrationstider + 1 ms overhead skal være lavere end måleperioden. Ellers øges afstandsperioden automatisk.
4.7 Strømtilstande
Strømtilstande kan bruges til at reducere strømforbruget, når enheden ikke bruges. VL53L8CX kan fungere i en af følgende strømtilstande:
- Wake-up: Enheden er indstillet til HP inaktiv (high power), venter på instruktioner.
- Dvale: Enheden er indstillet til LP inaktiv (lav strøm), lav strømtilstand. Enheden kan ikke bruges, før den er sat i opvågningstilstand. Denne tilstand bevarer firmwaren og konfigurationen.
Strømtilstanden kan ændres ved hjælp af funktionen vl53l8cx_set_power_mode(). Standardtilstanden er wake-up.
Note:
Hvis brugeren ønsker at ændre strømtilstanden, må enheden ikke være i afstandstilstand.
4.8 Skærper
Signalet, der returneres fra et mål, er ikke en ren puls med skarpe kanter. Kanterne skråner væk og kan påvirke afstandene rapporteret i tilstødende zoner. Skærperen bruges til at fjerne noget af eller hele signalet forårsaget af slørende blænding.
Eksample vist i den følgende figur repræsenterer et tæt mål ved 100 mm centreret i FoV, og et andet mål, længere bag ved 500 mm. Afhængigt af skærperværdien kan det tætte mål forekomme i flere zoner end det rigtige.
Figur 11. Exampscenen ved hjælp af flere skarpere værdier

Sharpener kan ændres ved hjælp af funktionen vl53l8cx_set_sharpener_percent(). De tilladte værdier er mellem 0 % og 99 %. Standardværdien er 5 %.
4.9 Målordre
VL53L8CX kan måle flere mål pr. zone. Takket være histogrambehandlingen er værten i stand til at vælge rækkefølgen af rapporterede mål. Der er to muligheder:
- Tættest: Det nærmeste mål er det først rapporterede
- Stærkest: Det stærkeste mål er det først rapporterede
Målrækkefølgen kan ændres ved hjælp af funktionen vl53l8cx_set_target_order(). Standardrækkefølgen er Stærkest.
Eksample i den følgende figur repræsenterer påvisningen af to mål. En på 100 mm med lav reflektans og en på 700 mm med høj reflektans.

4.10 Flere mål pr. zone
VL53L8CX kan måle op til fire mål pr. zone. Brugeren kan konfigurere antallet af mål returneret af sensoren.
Note:
Minimumsafstanden mellem to mål, der skal detekteres, er 600 mm.
Valget er ikke muligt fra chaufføren; det skal gøres i 'platform.h' file. Makroen
VL53L8CX_NB_ TARGET_PER_ZONE skal indstilles til en værdi mellem 1 og 4. Målrækkefølgen beskrevet i afsnit 4.9 Målrækkefølge påvirker direkte rækkefølgen af det detekterede mål. Som standard udsender sensoren kun maksimalt ét mål pr. zone.
Note:
Et øget antal mål pr. zone øger den nødvendige RAM-størrelse.
4.11 Xtalk margin
Xtalk-margenen er en ekstra funktion, der kun er tilgængelig ved brug af plugin'et Xtalk. .c og .f files 'vl53l8cx_plugin_xtalk' skal bruges.
Marginen bruges til at ændre registreringstærsklen, når der er et dækglas på toppen af sensoren. Tærsklen kan øges for at sikre, at dækglasset aldrig detekteres efter indstilling af Xtalk-kalibreringsdata.
F.eksampSå kan brugeren køre en Xtalk-kalibrering på én enkelt enhed og genbruge de samme kalibreringsdata til alle andre enheder. Xtalk-margenen kan bruges til at justere Xtalk-korrektionen. Figuren nedenfor repræsenterer Xtalk-marginen.
Figur 13. Xtalk margin

4.12 Detektionstærskler
Ud over de almindelige rækkeviddefunktioner kan sensoren programmeres til at detektere et objekt under visse foruddefinerede kriterier. Denne funktion er tilgængelig ved hjælp af plugin'et "detektionstærskler", som er en mulighed, der ikke er inkluderet som standard i API'en. Det files kaldet 'vl53l8cx_plugin_detection_thresholds' skal bruges.
Funktionen kan bruges til at udløse en afbrydelse til pin A1 (INT), når betingelser defineret af brugeren er opfyldt. Der er tre mulige konfigurationer:
- Opløsning 4×4: bruger 1 tærskel pr. zone (i alt 16 tærskler)
- Opløsning 4×4: Brug af 2 tærskler pr. zone (i alt 32 tærskler)
- Opløsning 8×8: bruger 1 tærskel pr. zone (i alt 64 tærskler)
Uanset hvilken konfiguration der bruges, er proceduren for oprettelse af tærskler og RAM-størrelsen den samme. For hver tærskelkombination skal flere felter udfyldes: - Zone id: id for den valgte zone (se afsnit 2.2 Effektiv orientering)
- Måling: måling for at fange (afstand, signal, antal SPAD'er, …)
- Type: vinduer med mål (i vinduer, ud af vinduer, under lav tærskel, …)
- Lav tærskel: lav tærskel bruger for trigger. Brugeren behøver ikke at indstille formatet, det håndteres automatisk af API'en.
- Høj tærskel: høj tærskel bruger for trigger. Brugeren behøver ikke at indstille formatet, det håndteres automatisk af API'en.
- Matematisk drift: bruges kun til 4×4 – 2 tærskelkombinationer pr. zone. Brugeren kan indstille en kombination ved hjælp af flere tærskler i én zone.
4.13 Afbryde autostop
Afbryd autostop-funktionen bruges til at afbryde afstandssessionen under en måling. Som standard kan sensoren ikke stoppes under en måling, fordi rammemålingerne skal afsluttes. Men ved at bruge autostop afbrydes rammemålingerne, når en afbrydelse udløses.
Autostop-funktionen er nyttig, når den er kombineret med en registreringstærskel. Når et mål detekteres, afbrydes den aktuelle måling automatisk. Autostop kan bruges i en kundestatsmaskine til hurtigt at skifte til en anden sensorkonfiguration.
En interrupt autostop-funktion kan aktiveres ved at bruge funktionen vl53l8cx_set_detection_threshold_auto_stop().
Efter at en måling er afbrudt, anbefales det at stoppe sensoren ved at bruge funktionen vl53l8cx_stop_ranging().
4.14 Bevægelsesindikator
VL53L8CX-sensoren har en indlejret firmware-funktion, der tillader bevægelsesdetektering i en scene. Bevægelsesindikatoren beregnes mellem sekventielle billeder. Denne mulighed er tilgængelig ved at bruge pluginnet 'vl53l8cx_plugin_motion_indicator'.
Bevægelsesindikatoren initialiseres ved hjælp af funktionen vl53l8cx_motion_indicator_init() . Hvis brugeren ønsker at ændre sensoropløsningen, skal han opdatere bevægelsesindikatorens opløsning ved hjælp af den dedikerede funktion: vl53l8cx_motion_indicator_set_resolution().
Brugeren kan også ændre minimums- og maksimumsafstandene til registrering af bevægelse. Forskellen mellem minimums- og maksimumafstanden må ikke være større end 1500 mm. Som standard initialiseres afstande med værdier mellem 400 mm og 1500 mm.
Resultaterne gemmes i feltet 'motion_indicator'. I dette felt giver arrayet 'bevægelse' en værdi, der indeholder bevægelsesintensiteten pr. zone. En høj værdi indikerer høj bevægelsesvariation mellem billederne. En typisk bevægelse giver en værdi mellem 100 og 500. Denne følsomhed afhænger af integrationstiden, målafstanden og målreflektansen.
En ideel kombination til laveffektapplikationer er brugen af bevægelsesindikatoren med autonom afstandstilstand og registreringstærskler programmeret på bevægelsen. Dette muliggør registrering af bevægelsesvariationer i FoV med minimalt strømforbrug.
4.15 Ekstern synkroniseringsstift
En ekstern triggerkilde kan bruges til at synkronisere opkøb. Når den eksterne synkronisering er aktiveret, venter VL53L8CX på en afbrydelse på SYNC-pinden for at starte den næste optagelse. For at bruge denne funktion skal SYNC-stiften (B1) tilsluttes som beskrevet i produktdatabladet.
Der er ingen specifikke krav til brug af den eksterne synkronisering. VL53L8CX-områdefrekvensen bør dog være højere end den eksterne signalfrekvens.
Den eksterne synkronisering kan aktiveres eller deaktiveres ved at bruge funktionen vl53l8cx_set_external_sync_pin_enable(). Ranging kan startes som normalt ved at bruge funktionen vl53l8cx_start_ranging(). Når en bruger ønsker at stoppe sensoren, anbefales det at skifte SYNC pin for at genoptage pausen i VL53L8CX firmwaren.
Et aktuelt flow til brug af den eksterne synkroniseringsstift er vist nedenfor i afsnit 4.15.
Figur 14. Ekstern synkroniseringsflow

Varierende resultater
5.1 Tilgængelige data
En omfattende liste over mål- og miljødata kan udsendes under rækkeviddeaktiviteter. Følgende tabel beskriver de parametre, der er tilgængelige for brugeren.
Tabel 3. Tilgængelig udgang ved hjælp af VL53L8CX sensor
|
Element |
Nb bytes (RAM) | Enhed |
Beskrivelse |
| Ambient pr. SPAD | 256 | Kcps/SPAD | Omgivelseshastighedsmåling udført på SPAD-arrayet, uden aktiv fotonemission, for at måle den omgivende signalhastighed på grund af støj. |
| Antal registrerede mål |
64 |
Ingen | Antal detekterede mål i den aktuelle zone. Denne værdi bør være den første, der kontrolleres for at kende en målings gyldighed. |
| Antal aktiverede SPAD'er | 256 | Ingen | Antal SPAD'er aktiveret for den aktuelle måling. Et langt eller lavt reflekterende mål vil aktivere flere SPAD'er. |
|
Signal pr. SPAD |
256 x nb mål programmeret |
Kcps/SPAD |
Mængde af fotoner målt under VCSEL
puls. |
|
Rækkevidde sigma |
128 x nb mål programmeret |
millimeter |
Sigma-estimator for støjen i den rapporterede målafstand. |
|
Afstand |
128 x nb mål programmeret | millimeter | Målafstand |
| Målstatus | 64 x nb mål programmeret | Ingen | Målings validitet. Se afsnit 5.5 Fortolkning af resultater for mere information. |
| Refleksion | 64 x antal mål programmeret | Procent | Estimeret målreflektans i procent |
| Bevægelsesindikator | 140 | Ingen | Struktur, der indeholder bevægelsesindikatorresultaterne. Feltet 'bevægelse' indeholder bevægelsesintensiteten. |
Note:
For flere elementer (signal pr. spad, sigma, …) er adgangen til data forskellig, hvis brugeren har programmeret mere end 1 mål pr. zone (se afsnit 4.10 Flere mål pr. zone). Se example koder for mere information.
5.2 Tilpas outputvalg
Som standard er alle VL53L8CX-udgange aktiveret. Hvis det er nødvendigt, kan brugeren deaktivere noget sensoroutput.
Deaktivering af målinger er ikke tilgængelig på driveren; det skal udføres i 'platform.h' file. Brugeren kan erklære følgende makroer for at deaktivere output:
#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
Som følge heraf bliver felterne ikke erklæret i resultatstrukturen, og dataene overføres ikke til værten.
RAM-størrelsen og I2C/SPI-størrelsen er reduceret.
For at sikre datakonsistens anbefaler ST altid at holde 'antal detekterede mål' og 'målstatus' aktiveret. Det tillader filtrering af målingerne afhængigt af målstatus (se afsnit 5.5 Resultatfortolkning).
5.3 Sådan får du resultater
I løbet af intervalsessionen er der to måder at vide, om nye intervaldata er tilgængelige:
- Polling-tilstand: Bruger kontinuerligt funktionen vl53l8cx_check_data_ready(). Den registrerer en ny strømtælling, der returneres af sensoren.
- Interrupt mode: Venter på en interrupt hævet på ben A1 (INT). Afbrydelsen slettes automatisk efter ~100 μs.
Når nye data er klar, kan resultaterne læses ved hjælp af funktionen vl53l8cx_get_ranging_data(). Det returnerer en opdateret struktur, der indeholder alle valgte output. Da enheden er asynkron, er der ingen afbrydelse at rydde for at fortsætte afstandssessionen.
Denne funktion er tilgængelig for både kontinuerlig og autonom afstandstilstand.
5.4 Brug af rå firmware-format
Efter overførsel af afstandsdata gennem I2C/SPI er der en konvertering mellem firmwareformatet og værtsformatet. Denne operation udføres typisk for at have en afstandsafstand i millimeter som standardoutput for sensoren. Hvis brugeren ønsker at bruge firmwareformatet, skal følgende makro defineres i platformen file:
VL53L8CX#define VL53L8CX _USE_RAW_FORMAT
5.5 Fortolkning af resultater
De data, der returneres af VL53L8CX, kan filtreres for at tage hensyn til målstatussen. Status angiver målingens gyldighed. Den fulde statusliste er beskrevet i følgende tabel.
Tabel 4. Liste over tilgængelige målstatus
| Målstatus | Beskrivelse |
| 0 | Områdedata opdateres ikke |
| 1 | Signalhastigheden er for lav på SPAD-arrayet |
| 2 | Målfase |
| 3 | Sigma-estimator for høj |
| 4 | Målkonsistens mislykkedes |
| 5 | Gyldig rækkevidde |
| 6 | Wrap around ikke udført (typisk det første interval) |
| 7 | Priskonsistens mislykkedes |
| 8 | Signalhastigheden er for lav til det aktuelle mål |
| 9 | Rækkevidde gyldigt med stor puls (kan skyldes et sammenlagt mål) |
| 10 | Området er gyldigt, men der er ikke registreret noget mål ved tidligere område |
| 11 | Målingskonsistens mislykkedes |
| 12 | Mål sløret af en anden på grund af skarpere |
| 13 | Mål registreret, men inkonsistente data. Det sker ofte for sekundære mål. |
| 255 | Intet mål detekteret (kun hvis antallet af detekterede mål er aktiveret) |
For at have ensartede data skal brugeren filtrere ugyldig målstatus. For at give en konfidensvurdering anses et mål med status 5 for at være 100 % gyldigt. En status på 6 eller 9 kan overvejes med en konfidensværdi på 50 %. Alle andre statusser er under 50 % konfidensniveau.
5.6 Driverfejl
Når der opstår en fejl ved brug af VL53L8CX-sensor, returnerer driveren en specifik fejl. Følgende tabel viser de mulige fejl.
Tabel 5. Liste over tilgængelige fejl ved brug af driveren
| Målstatus | Beskrivelse |
| 0 | Ingen fejl |
| 127 | Brugeren har programmeret en forkert indstilling (ukendt opløsning, områdefrekvensen for høj, …) |
| 255 | Større fejl. Normalt en timeout-fejl på grund af en I2C/SPI-fejl. |
| andre | Kombination af flere fejl beskrevet ovenfor |
Note:
Flere fejlkoder kan implementeres af værten ved hjælp af platformen files.
Tabel 6. Dokumentrevisionshistorik
| Dato | Version | Ændringer |
| 13-jan-23 | 1 | Første udgivelse |
VIGTIG MEDDELELSE – LÆS OMHYGGELIGT
STMicroelectronics NV og dets datterselskaber ("ST") forbeholder sig retten til at foretage ændringer, rettelser, forbedringer, modifikationer og forbedringer af ST-produkter og/eller dette dokument til enhver tid uden varsel. Købere bør indhente de seneste relevante oplysninger om ST-produkter, før de afgiver ordre. ST-produkter sælges i henhold til STs salgs- og salgsbetingelser på tidspunktet for ordrebekræftelse.
Købere er alene ansvarlige for valg, udvælgelse og brug af ST-produkter, og ST påtager sig intet ansvar for ansøgningsassistance eller design af købers produkter.
Ingen licens, hverken udtrykkelig eller underforstået, til nogen intellektuel ejendomsret er givet af ST heri.
Videresalg af ST-produkter med andre bestemmelser end de oplysninger, der er angivet heri, annullerer enhver garanti givet af ST for et sådant produkt.
ST og ST-logoet er varemærker tilhørende ST. For yderligere information om ST-varemærker, se www.st.com/varemærker. Alle andre produkt- eller tjenestenavne tilhører deres respektive ejere.
Oplysningerne i dette dokument erstatter og erstatter oplysninger, der tidligere er leveret i alle tidligere versioner af dette dokument.
© 2023 STMicroelectronics – Alle rettigheder forbeholdes
Dokumenter/ressourcer
![]() |
ST VL53L8CX sensormodul [pdfBrugermanual UM3109, VL53L8CX sensormodul, VL53L8CX, sensormodul, modul |




