Sensore di portata multizona del tempo di volo VL53L7CX STMicroelectronics

Sensore di portata multizona del tempo di volo VL53L7CX STMicroelectronics

Introduzione

Lo scopo di questo manuale utente è spiegare come gestire il sensore ToF (Time-of-Flight) VL53L7CX, utilizzando l'API del driver ultra lite (ULD). Descrive le principali funzioni per programmare il dispositivo, le calibrazioni ei risultati di output.

Appositamente progettato per applicazioni che richiedono un FoV ultraampio, il sensore Time-of-Flight VL53L7CX offre un FoV diagonale di 90°. Basato sulla tecnologia Flight Sense di STMicroelectronics, il VL53L7CX incorpora un'efficiente lente metasuperficiale (DOE) posizionata sull'emettitore laser che consente la proiezione di un FoV quadrato di 60° x 60° sulla scena.

La sua capacità multizona fornisce una matrice di 8×8 zone (64 zone) e può lavorare a velocità elevate (60 Hz) fino a 350 cm.

Grazie alla modalità autonoma con soglia di distanza programmabile combinata al FoV ultrawide, il VL53L7CX è perfetto per qualsiasi applicazione che richieda il rilevamento dell'utente a bassa potenza. Gli algoritmi brevettati della ST e la costruzione innovativa del modulo consentono al VL53L7CX di rilevare, in ciascuna zona, più oggetti all'interno del campo visivo con comprensione approfondita. Gli algoritmi dell'istogramma di STMicroelectronics garantiscono l'immunità alla diafonia del vetro di copertura oltre 60 cm.

Derivato dal VL53L5CX, i pinout e i driver di entrambi i sensori sono compatibili, il che garantisce una migrazione semplice da un sensore all'altro.

Come tutti i sensori Time-of-Flight (ToF) basati sulla tecnologia Flight Sense della ST, il VL53L7CX registra, in ciascuna zona, una distanza assoluta indipendentemente dal colore e dalla riflettanza del target.

Alloggiato in un pacchetto reflowable in miniatura che integra un array SPAD, il VL53L7CX raggiunge le migliori prestazioni in varie condizioni di illuminazione ambientale e per un'ampia gamma di materiali del vetro di copertura.

Tutti i sensori ToF di ST integrano un VCSEL che emette una luce IR a 940 nm completamente invisibile, totalmente sicura per gli occhi (certificazione Classe 1).

Il VL53L7CX è il sensore perfetto per qualsiasi applicazione che richieda un FoV ultraampio come robotica, altoparlanti intelligenti, videoproiettori e gestione dei contenuti. La combinazione della funzionalità multizona e del FoV a 90° può migliorare nuovi casi d'uso come il riconoscimento dei gesti, SLAM per la robotica e l'attivazione di sistemi a basso consumo per gli edifici intelligenti.

Figura 1. Modulo sensore VL53L7CX
Introduzione

Acronimi e Abbreviazioni

Acronimo/abbreviazione Definizione
DOE elemento ottico diffrattivo
Campo visivo campo di view
I²C circuito inter-integrato (bus seriale)
Kcps/SPAD Kilo-count al secondo per spad (unità utilizzata per quantificare il numero di fotoni nell'array SPAD)
Memoria RAM memoria ad accesso casuale
SCL linea orologio seriale
SDA dati seriali
SPAD diodo a valanga a singolo fotone
ToF Tempo di volo
ULD driver ultraleggero
VCSEL diodo ad emissione superficiale a cavità verticale
VHV volume molto altotage
Xtalk diafonia

Descrizione funzionale

Sistema finitoview

Il sistema VL53L7CX è composto da un modulo hardware e dal software del driver ultra lite (VL53L7CX ULD) in esecuzione su un host (vedere la figura sotto). Il modulo hardware contiene il sensore ToF. STMicroelectronics fornisce il driver del software, a cui ci si riferisce in questo documento come “il driver”. Questo documento descrive le funzioni del driver accessibili all'host. Queste funzioni controllano il sensore e ottengono i dati di portata.

Figura 2. Sistema VL53L7CX terminatoview
Descrizione funzionale
Orientamento efficace
Il modulo include una lente sopra l'apertura Rx, che capovolge (orizzontalmente e verticalmente) l'immagine catturata del bersaglio. Di conseguenza, la zona identificata come zona 0, in basso a sinistra dell'array SPAD, è illuminata da un bersaglio posto in alto a destra della scena.

Figura 3. VL53L7CX orientamento efficace
Descrizione funzionale
Schemi e configurazione I²C

La comunicazione tra driver e firmware è gestita da I²C, con una capacità di funzionamento fino a 1 MHz. L'implementazione richiede pull-up sulle linee SCL e SDA. Fare riferimento alla scheda tecnica VL53L7CX per ulteriori informazioni. Il dispositivo VL53L7CX ha un indirizzo I²C predefinito di 0x52. Tuttavia, è possibile modificare l'indirizzo predefinito per evitare conflitti con altri dispositivi o facilitare l'aggiunta di più moduli VL53L7CX al sistema per un FoV di sistema maggiore. L'indirizzo I²C può essere modificato utilizzando la funzione vl53l7cx_set_i2c_address().

Figura 4. Sensori multipli sul bus I²C
Descrizione funzionale

Per consentire a un dispositivo di modificare il proprio indirizzo I²C senza influenzare gli altri sul bus I²C, è importante disabilitare la comunicazione I²C dei dispositivi che non vengono modificati. La procedura è la seguente:

  1. Accendere il sistema normalmente.
  2. Tirare verso il basso il pin LPn del dispositivo di cui non verrà modificato l'indirizzo.
  3. Tirare verso l'alto il pin LPn del dispositivo a cui è stato modificato l'indirizzo I²C.
  4. Programmare l'indirizzo I²C sul dispositivo utilizzando la funzione set_i2c_address().
  5. Tirare verso l'alto il pin LPn del dispositivo non riprogrammato.

Tutti i dispositivi dovrebbero ora essere disponibili sul bus I²C. Ripetere i passaggi precedenti per tutti i dispositivi VL53L7CX nel sistema che richiedono un nuovo indirizzo I²C.

Contenuto del pacchetto e flusso di dati

Architettura e contenuto del driver

Il pacchetto ULD VL53L7CX è composto da quattro cartelle. Il driver si trova nella cartella /

VL53L7CX_ULD_API.
Il driver è composto da obbligatorio e facoltativo fileS. Opzionale filesono plugins utilizzato per estendere le funzionalità ULD. Ogni plugin inizia con la parola “vl53l7cx_plugin” (ad es. vl53l7cx_plugin_xtalk.h). Se l'utente non vuole il proposto plugins, possono essere rimossi senza influire sulle altre funzionalità del driver. La figura seguente rappresenta l'obbligo filese l'opzionale plugins.

Figura 5. Architettura dei conducenti
Contenuto del pacchetto e flusso di dati

L'utente deve anche implementare due filesi trova nella cartella /Platform. La piattaforma proposta è un guscio vuoto, e va riempito di funzioni dedicate.

Nota: Piattaforma. H file contiene macro obbligatorie per utilizzare l'ULD. Tutti i file il contenuto è obbligatorio per utilizzare correttamente l'ULD

Flusso di calibrazione

La diafonia (Xtalk) è definita come la quantità di segnale ricevuto sull'array SPAD, dovuta alla luce VCSEL
riflessione all'interno della finestra protettiva (vetro di copertura) aggiunta sulla parte superiore del modulo. Il modulo VL53L7CX è autocalibrato e può essere utilizzato senza alcuna calibrazione aggiuntiva.

Potrebbe essere necessaria la calibrazione della diafonia se il modulo è protetto da un vetro di copertura. Il VL53L7CX è immune a
diafonia oltre 60 cm grazie ad un algoritmo a istogramma. Tuttavia, a brevi distanze inferiori a 60 cm, Xtalk può essere più grande dell'effettivo segnale restituito. Ciò fornisce una falsa lettura del target o fa sembrare i target più vicini di quanto non siano in realtà. Tutte le funzioni di calibrazione del crosstalk sono incluse in un plugin Xtalk (opzionale). L'utente deve utilizzare il file file 'vl53l7cx_plugin_xtalk'.

La diafonia può essere calibrata una volta e i dati possono essere salvati in modo da poterli riutilizzare in seguito. È richiesto un bersaglio a distanza fissa, con una riflettanza nota. La distanza minima richiesta è 600 mm e il target deve coprire l'intero campo visivo. A seconda della configurazione, l'utente può modificare le impostazioni per adattare la calibrazione della diafonia, come proposto nella tabella seguente.

Tabella 1. Impostazioni disponibili per la calibrazione

Collocamento Minimo Proposto da STMicroelectronics Massimo
Distanza [mm] 600 600 3000
Numero di samples 1 4 16
Riflettanza [%] 1 3 99

Nota: Aumentando il numero di samples aumenta la precisione, ma aumenta anche il tempo per la calibrazione. Il tempo relativo al numero di samples è lineare e i valori seguono il timeout approssimativo:

  • Anno 1ample ≈ 1 secondo
  • Anno 4amples ≈ 2.5 secondi
  • Anno 16amples ≈ 8.5 secondi

La calibrazione viene eseguita utilizzando la funzione vl53l7cx_calibrate_xtalk(). Questa funzione può essere utilizzata in qualsiasi momento. Tuttavia, il sensore deve essere prima inizializzato. La figura seguente rappresenta il flusso di calibrazione della diafonia.

Figura 6. Flusso di calibrazione della diafonia
Contenuto del pacchetto e flusso di dati

Flusso variabile

La figura seguente rappresenta il flusso variabile utilizzato per ottenere le misurazioni. La calibrazione Xtalk e le chiamate di funzioni opzionali devono essere utilizzate prima di iniziare la sessione di misurazione. Le funzioni get/set non possono essere utilizzate durante una sessione di intervallo e la programmazione "al volo" non è supportata.

Figura 7. Portata variabile utilizzando VL53L7CX
Contenuto del pacchetto e flusso di dati

Funzionalità disponibili

L'API ULD VL53L7CX include diverse funzioni che consentono all'utente di regolare il sensore, a seconda del caso d'uso. Tutte le funzioni disponibili per il driver sono descritte nelle sezioni seguenti.

Inizializzazione

L'inizializzazione deve essere eseguita prima di utilizzare il sensore VL53L7CX. Questa operazione richiede all'utente di:

  1. Accendere il sensore (VDDIO, AVDD, pin LPn impostati su High e pin I2C_RST impostato su 0)
  2. Chiama la funzione vl53l7cx_init(). La funzione copia il firmware (~84 Kbyte) nel modulo. Questo viene fatto caricando il codice sull'interfaccia I²C ed eseguendo una routine di avvio per completare l'inizializzazione.

Gestione del reset del sensore

Per ripristinare il dispositivo, è necessario attivare i seguenti pin:

  1. Impostare i pin VDDIO, AVDD e LPn su basso.
  2. Attendere 10 ms.
  3. Impostare i pin VDDIO, AVDD e LPn su alti.

Nota: La commutazione solo del pin I2C_RST ripristina la comunicazione I²C.

Risoluzione

La risoluzione corrisponde al numero di zone disponibili. Il sensore VL53L7CX ha due possibili risoluzioni: 4×4 (16 zone) e 8×8 (64 zone). Per impostazione predefinita il sensore è programmato in 4×4. La funzione vl53l7cx_set_length() consente all'utente di modificare la risoluzione. Poiché la frequenza di rilevamento dipende dalla risoluzione, questa funzione deve essere utilizzata prima di aggiornare la frequenza di rilevamento. Inoltre, la modifica della risoluzione aumenta anche la dimensione del traffico sul bus I²C quando vengono letti i risultati.

Frequenza di intervallo

La frequenza di variazione può essere utilizzata per modificare la frequenza di misurazione. Poiché la frequenza massima è diversa
tra le risoluzioni 4×4 e 8×8, questa funzione deve essere utilizzata dopo aver scelto una risoluzione. I valori minimo e massimo consentiti sono elencati nella tabella seguente.

Tabella 2. Frequenze minime e massime

Risoluzione Frequenza minima [Hz] Frequenza di portata massima [Hz]
4×4 1 60
8×8 1 15

La frequenza di range può essere aggiornata utilizzando la funzione vl53l7cx_set_ranging_frequency_hz(). Per impostazione predefinita, la frequenza di range è impostata su 1 Hz.

Modalità di misurazione della distanza

La modalità di misurazione consente all'utente di scegliere tra prestazioni elevate o basso consumo energetico. Le modalità proposte sono due:

  • Continuo: il dispositivo acquisisce continuamente fotogrammi con una frequenza variabile definita dall'utente. Il VCSEL è abilitato durante tutto il range, quindi la distanza massima del range e l'immunità ambientale sono migliori. Questa modalità è consigliata per misurazioni veloci o alte prestazioni.
  • Autonomo: questa è la modalità predefinita. Il dispositivo acquisisce continuamente fotogrammi con una frequenza variabile
    definito dall'utente. Il VCSEL viene abilitato durante un periodo definito dall'utente, utilizzando la funzione vl53l7cx_set_integration_time_ms(). Poiché il VCSEL non è sempre abilitato, il consumo energetico è ridotto. I vantaggi sono più evidenti con una frequenza di rilevamento ridotta. Questa modalità è consigliata per applicazioni a basso consumo.

La modalità di intervallo può essere modificata utilizzando la funzione vl53l7cx_set_ranging_mode().

Tempo di integrazione

Il tempo di integrazione è una funzionalità disponibile solo utilizzando la modalità di portata autonoma (fare riferimento alla Sezione 4.5: Gamma
modalità). Consente all'utente di modificare l'ora mentre VCSEL è abilitato. Modifica del tempo di integrazione se l'intervallo
la modalità è impostata su continua non ha alcun effetto. Il tempo di integrazione predefinito è impostato su 5 ms. L'effetto del tempo di integrazione è diverso per le risoluzioni 4×4 e 8×8. La risoluzione 4×4 è composta da un tempo di integrazione e la risoluzione 8×8 è composta da quattro tempi di integrazione. Le seguenti cifre rappresentano l'emissione VCSEL per entrambe le risoluzioni.

Figura 8. Tempo di integrazione per 4×4 autonomo
Funzionalità disponibili

Figura 9. Tempo di integrazione per 8×8 autonomo
Funzionalità disponibili

La somma di tutti i tempi di integrazione + 1 ms di sovraccarico deve essere inferiore al periodo di misurazione. In caso contrario, il periodo di intervallo viene aumentato automaticamente per adattarsi al valore del tempo di integrazione.

Modalità di alimentazione

Le modalità di alimentazione possono essere utilizzate per ridurre il consumo energetico quando il dispositivo non viene utilizzato. Il VL53L7CX può funzionare in una delle seguenti modalità di alimentazione:

  • Riattivazione: il dispositivo è impostato su HP inattivo (alta potenza), in attesa di istruzioni.
  • Sleep: il dispositivo è impostato su LP inattivo (basso consumo), lo stato di basso consumo. Il dispositivo non può essere utilizzato fino a quando non viene impostato in modalità di riattivazione. Questa modalità conserva il firmware e la configurazione.

La modalità di alimentazione può essere modificata utilizzando la funzione vl53l7cx_set_power_mode(). La modalità predefinita è sveglia.
Nota: Se l'utente desidera modificare la modalità di alimentazione, il dispositivo non deve trovarsi in uno stato di intervallo.

Temperamatite

Il segnale restituito da un bersaglio non è un impulso pulito con bordi netti. I bordi sono inclinati e possono influenzare le distanze riportate nelle zone adiacenti. L'affilatore viene utilizzato per rimuovere parte o tutto il segnale causato da un bagliore velante.

L'example mostrato nella figura seguente rappresenta un bersaglio vicino a 100 mm centrato nel FoV, e un altro bersaglio, più indietro a 500 mm. A seconda del valore dello sharpener, il bersaglio vicino può apparire in più zone rispetto a quello reale.

Figura 10. Exampfile della scena utilizzando diversi valori di nitidezza
Funzionalità disponibili
Funzionalità disponibili
Funzionalità disponibili

Il temperino può essere modificato utilizzando la funzione vl53l7cx_set_sharpener_percent(). I valori consentiti sono compresi tra 0% e 99%. Il valore predefinito è 5%.

Ordine obiettivo

Il VL53L7CX può misurare diversi target per zona. Grazie all'elaborazione dell'istogramma, l'host è in grado di farlo
scegli l'ordine dei target segnalati. Ci sono due opzioni:

  • Più vicino: l'obiettivo più vicino è il primo segnalato
  • Più forte: l'obiettivo più forte è il primo segnalato

L'ordine di destinazione può essere modificato utilizzando la funzione vl53l7cx_set_target_order(). L'ordine predefinito è Più forte. L'example nella figura seguente rappresenta il rilevamento di due bersagli. Uno a 100 mm a bassa riflettanza e uno a 700 mm ad alta riflettanza.

Figura 11. Example dell'istogramma con due target
Funzionalità disponibili

Obiettivi multipli per zona

Il VL53L7CX può misurare fino a quattro target per zona. L'utente può configurare il numero di target restituiti dal sensore.

Nota: La distanza minima tra due target da rilevare è 600 mm. La selezione non è possibile dal conducente; deve essere fatto nella piattaforma. H' file. La macro VL53L7CX_NB_ TARGET_PER_ZONE deve essere impostata su un valore compreso tra 1 e 4. L'ordine del target descritto nella Sezione 4.9: Ordine del target influisce direttamente sull'ordine del target rilevato. Per impostazione predefinita, il sensore emette solo un massimo di un target per zona.

Nota: Un numero maggiore di obiettivi per zona aumenta la dimensione della RAM richiesta.

Margine Xtalk

Il margine Xtalk è una funzionalità aggiuntiva disponibile solo utilizzando il plugin Xtalk. Il .c e .f fileÈ necessario utilizzare 'vl53l7cx_plugin_xtalk'.

Il margine viene utilizzato per modificare la soglia di rilevamento quando è presente un vetro di copertura sulla parte superiore del sensore. La soglia può essere aumentata per garantire che il vetro di copertura non venga mai rilevato, dopo aver impostato i dati di calibrazione della diafonia. Per esample, l'utente può eseguire una calibrazione crosstalk su un singolo dispositivo e riutilizzare gli stessi dati di calibrazione per tutti gli altri dispositivi. Il margine Xtalk può essere utilizzato per ottimizzare la correzione della diafonia. La figura seguente rappresenta il margine Xtalk.

Figura 12. Margine Xtalk
Funzionalità disponibili

Soglie di rilevamento

Oltre alle normali capacità di portata, il sensore può essere programmato per rilevare un oggetto in base a determinati criteri predefiniti. Questa funzionalità è disponibile utilizzando il plug-in "soglie di rilevamento", che è un'opzione non inclusa di default nell'API. Il fileÈ necessario utilizzare quelli chiamati 'vl53l7cx_plugin_detection_thresholds'. La funzione può essere utilizzata per attivare un'interruzione sul pin A3 (INT) quando vengono soddisfatte le condizioni definite dall'utente. Ci sono tre possibili configurazioni:

  • Risoluzione 4×4: utilizzando una soglia per zona (totale 16 soglie)
  • Risoluzione 4×4: utilizzando due soglie per zona (totale 32 soglie)
  • Risoluzione 8×8: utilizzando una soglia per zona (totale 64 soglie)

Qualunque sia la configurazione utilizzata, la procedura per la creazione delle soglie e la dimensione della RAM sono le stesse. Per ogni combinazione di soglia, devono essere compilati diversi campi:

  • ID zona: ID della zona selezionata (fare riferimento alla Sezione 2.2: Orientamento effettivo)
  • Misura: misura da catturare (distanza, segnale, numero di SPAD, …)
  • Tipo: finestre di misura (in finestre, fuori finestre, sotto soglia bassa, …)
  • Soglia bassa: utente con soglia bassa per il trigger. L'utente non ha bisogno di impostare il formato, viene gestito automaticamente dall'API.
  • Soglia alta: utente con soglia alta per il trigger. Non è necessario che l'utente imposti il ​​formato; viene gestito automaticamente dall'API.
  • Operazione matematica: utilizzata solo per combinazioni 4×4 – 2 soglie per zona. L'utente può impostare una combinazione utilizzando diverse soglie in una zona.

Indicatore di movimento

Il sensore VL53L7CX ha una funzionalità firmware incorporata che consente il rilevamento del movimento in una scena. La mozione
l'indicatore viene calcolato tra fotogrammi sequenziali. Questa opzione è disponibile utilizzando il plugin 'vl53l7cx_plugin_motion_indicator'.

L'indicatore di movimento viene inizializzato utilizzando la funzione vl53l7cx_motion_indicator_init(). Per cambiare il sensore
risoluzione, aggiorna la risoluzione dell'indicatore di movimento utilizzando la funzione dedicata: vl53l7cx_motion_indicator_set_length().

L'utente può anche modificare le distanze minima e massima per il rilevamento del movimento. La differenza tra le distanze minima e massima non può essere superiore a 1500 mm. Per impostazione predefinita, le distanze vengono inizializzate con valori compresi tra 400 mm e 1500 mm.

I risultati vengono memorizzati nel campo 'movimento_indicatore'. In questo campo, l'array 'motion' fornisce un valore contenente il
intensità di movimento per zona. Un valore elevato indica un'elevata variazione di movimento tra i fotogrammi. Un movimento tipico fornisce un valore compreso tra 100 e 500. Questa sensibilità dipende dal tempo di integrazione, dalla distanza del target e dalla riflettanza del target.

Una combinazione ideale per applicazioni a bassa potenza è l'uso dell'indicatore di movimento con modalità di rilevamento autonomo e soglie di rilevamento programmate sul movimento. Ciò consente il rilevamento delle variazioni di movimento nel campo visivo con un consumo energetico minimo.

Compensazione periodica della temperatura

Le prestazioni di misurazione sono influenzate dalle variazioni di temperatura. Il sensore VL53L7CX incorpora una temperatura
compensazione che viene calibrata una volta all'avvio dello streaming. Tuttavia, se la temperatura evolve, il
la compensazione potrebbe non essere allineata alla nuova temperatura. Per evitare questo problema, il cliente può eseguire una compensazione periodica della temperatura utilizzando un VHV automatico. La calibrazione periodica della temperatura richiede alcuni millisecondi per essere eseguita. L'utente può definire il periodo. Per utilizzare questa funzionalità, il cliente deve:

  • Chiama la funzione vl53l7cx_set_VHV_repeat_count().
  • Quindi, fornire come argomento il numero di fotogrammi tra ogni nuova calibrazione.

Se l'argomento è 0, la compensazione è disabilitata.

Risultati a distanza

Dati disponibili
Un ampio elenco di dati sull'obiettivo e sull'ambiente può essere emesso durante le attività di misurazione. La tabella seguente descrive i parametri a disposizione dell'utente.

Tabella 3. Uscita disponibile utilizzando il sensore VL53L7CX

Elemento Nb byte (RAM) Unità Descrizione
Ambiente per SPAD 256 Kcps/SPAD Misurazione della velocità ambientale eseguita sull'array SPAD, senza emissione di fotoni attivi, per misurare la velocità del segnale ambientale dovuta al rumore.
Numero di bersagli rilevati 64 Nessuno Numero di bersagli rilevati nella zona corrente. Questo valore dovrebbe essere il primo da controllare per conoscere la validità di una misura.
Numero di SPAD abilitati 256 Nessuno Numero di SPAD abilitati per la misura corrente. Un bersaglio riflettente lontano o basso attiva più SPAD.
Segnale per SPAD 256 x nb obiettivi programmati Kcps/SPAD Quantità di fotoni misurati durante l'impulso VCSEL.
Gamma sigma 128 x nb obiettivi programmati Millimetro Stimatore Sigma per il rumore nella distanza del target riportato.
Distanza 128 x nb obiettivi programmati Millimetro Distanza bersaglio
Stato obiettivo 64 x nb obiettivi programmati Nessuno Validità delle misure. Vedere Sezione 5.5: Risultati interpretazione per ulteriori informazioni.
Riflessione 64 obiettivi numerici programmati Percent Riflettanza target stimata in percentuale
Indicatore di movimento 140 Nessuno Struttura contenente i risultati dell'indicatore di movimento. Il campo 'movimento' contiene l'intensità del movimento.

Nota: Per più elementi (segnale per spad, sigma, …) l'accesso ai dati è diverso se l'utente ha programmato più di un target per zona (vedere Sezione 4.10: Target multipli per zona). Vedi esample code per ulteriori informazioni.

Personalizza la selezione dell'output

Per impostazione predefinita, tutte le uscite del VL53L7CX sono abilitate. Se necessario, l'utente può disabilitare alcune uscite del sensore. La disabilitazione delle misurazioni non è disponibile sul driver; deve essere eseguito nella 'piattaforma. H' file. L'utente può dichiarare le seguenti macro per disabilitare le uscite:

#definire VL53L7CX_DISABLE_AMBIENT_PER_SPAD
#definire VL53L7CX_DISABLE_NB_SPADS_ENABLED
#definire VL53L7CX_DISABLE_NB_TARGET_DETECTED
#definire VL53L7CX_DISABLE_SIGNAL_PER_SPAD
#definire VL53L7CX_DISABLE_RANGE_SIGMA_MM
#definire VL53L7CX_DISABLE_DISTANZA_MM
#definire VL53L7CX_DISABLE_TARGET_STATUS
#definire VL53L7CX_DISABLE_REFLECTANCE_PERCENT
#definire VL53L7CX_DISABLE_MOTION_INDICATOR

Di conseguenza, i campi non vengono dichiarati nella struttura dei risultati e i dati non vengono trasferiti all'host. Le dimensioni della RAM e quelle dell'I²C sono ridotte. Per garantire la coerenza dei dati, la ST consiglia sempre di mantenere abilitati il ​​"numero di target rilevati" e lo "stato del target". Questo filtra le misurazioni in base allo stato del target (fare riferimento alla Sezione 5.5: Interpretazione dei risultati).

Ottenere risultati variabili

Durante la sessione di misurazione, ci sono due modi per sapere se sono disponibili nuovi dati di misurazione:

  • Modalità polling: usa continuamente la funzione vl53l7cx_check_data_ready(). Rileva un nuovo conteggio del flusso restituito dal sensore.
  • Modalità interruzione: attende un'interruzione sollevata sul pin A3 (GPIO1). L'interruzione viene cancellata automaticamente dopo ~100 μs.

Quando i nuovi dati sono pronti, i risultati possono essere letti utilizzando la funzione vl53l7cx_get_ranging_data(). Restituisce una struttura aggiornata contenente tutto l'output selezionato. Poiché il dispositivo è asincrono, non è necessario eliminare alcuna interruzione per continuare la sessione di misurazione. Questa funzione è disponibile sia per la modalità di misurazione continua che per quella autonoma.

Utilizzo del formato firmware grezzo

Dopo aver trasferito i dati di misurazione tramite l'I²C, avviene una conversione tra il formato del firmware e il formato dell'host. Questa operazione viene generalmente eseguita per avere una distanza in millimetri come uscita predefinita del sensore. Se l'utente desidera utilizzare il formato firmware, è necessario definire la seguente macro nella piattaforma file: VL53L7CX

#definire VL53L7CX_USE_RAW_FORMAT

Interpretazione dei risultati 

I dati restituiti dal VL53L7CX possono essere filtrati per tenere conto dello stato di destinazione. Lo stato indica la validità della misurazione. L'elenco completo degli stati è descritto nella tabella seguente.

Tabella 4. Elenco degli stati di destinazione disponibili

Stato obiettivo Descrizione
0 I dati sulla distanza non vengono aggiornati
1 Velocità del segnale troppo bassa sull'array SPAD
2 Fase obiettivo
3 Stimatore Sigma troppo alto
4 Coerenza target non riuscita
5 Intervallo valido
6 Avvolgimento non eseguito (in genere il primo intervallo)
7 Coerenza della tariffa non riuscita
8 Velocità del segnale troppo bassa per il target attuale
9 Intervallo valido con impulso grande (potrebbe essere dovuto a un target unito)
10 Portata valida, ma nessun bersaglio rilevato alla portata precedente
11 Coerenza della misurazione non riuscita
12 Bersaglio sfocato da un altro, a causa dell'affilatoio
13 Obiettivo rilevato ma dati incoerenti. Succede spesso per obiettivi secondari.
255 Nessun target rilevato (solo se è abilitato il numero di target rilevati)

Per avere dati coerenti, l'utente deve filtrare lo stato del target non valido. Per fornire una valutazione di confidenza, un obiettivo con stato 5 è considerato valido al 100%. Uno stato di 6 o 9 può essere considerato con un valore di confidenza del 50%. Tutti gli altri stati sono al di sotto del livello di confidenza del 50%.

Errori del conducente

Quando si verifica un errore utilizzando il sensore VL53L7CX, il driver restituisce un errore specifico. La tabella seguente elenca i possibili errori.

Tabella 5. Elenco degli errori disponibili utilizzando il driver

Stato obiettivo Descrizione
0 Nessun errore
127 L'utente ha programmato un'impostazione errata
(risoluzione sconosciuta, frequenza di portata troppo alta,...)
255 Errore grave. Di solito si tratta di un errore di timeout, dovuto a un errore I²C.
altro Combinazione di più errori sopra descritti

Nota: L'host può implementare più codici di errore utilizzando la piattaforma files.

Cronologia delle revisioni

Tabella 6. Cronologia delle revisioni del documento

Data Versione Cambiamenti
02-ago-2022 1 Versione iniziale
02-Set-2022 2 Aggiornato Sezione Introduzione
Aggiunta nota sulla distanza minima tra i bersagli Sezione 4.10: Multiplo obiettivi per zona
21-feb-2024 3 Aggiunto VHV (voltage) a Sezione 1: Acronimi e abbreviazioni. Aggiunto Sezione 4.14: Compensazione periodica della temperatura

Assistenza clienti

AVVISO IMPORTANTE – LEGGERE ATTENTAMENTE
STMicroelectronics NV e le sue consociate ("ST") si riservano il diritto di apportare modifiche, correzioni, miglioramenti, migliorie e migliorie ai prodotti ST e/o al presente documento in qualsiasi momento e senza preavviso. Gli acquirenti devono ottenere le ultime informazioni rilevanti sui prodotti ST prima di effettuare ordini. I prodotti ST sono venduti in conformità ai termini e alle condizioni di vendita di ST in vigore al momento della conferma dell'ordine.

Gli acquirenti sono gli unici responsabili della scelta, della selezione e dell'uso dei prodotti ST e ST non si assume alcuna responsabilità per l'assistenza applicativa o la progettazione dei prodotti degli acquirenti.

Nel presente documento ST non concede alcuna licenza, espressa o implicita, su alcun diritto di proprietà intellettuale.

La rivendita di prodotti ST con disposizioni diverse dalle informazioni qui stabilite invaliderà qualsiasi garanzia concessa da ST per tale prodotto.

ST e il logo ST sono marchi di ST. Per ulteriori informazioni sui marchi ST, fare riferimento a www.st.com/trademarksTutti gli altri nomi di prodotti o servizi sono di proprietà dei rispettivi proprietari.

Le informazioni contenute nel presente documento annullano e sostituiscono le informazioni fornite in precedenza in qualsiasi versione precedente del documento.
© 2024 STMicroelectronics – Tutti i diritti riservati

Logo

Documenti / Risorse

Sensore di portata multizona del tempo di volo VL53L7CX STMicroelectronics [pdf] Guida utente
VL53L7CX Sensore di portata multizona dell'ora di volo, VL53L7CX, Sensore di portata multizona dell'ora di volo, Sensore di portata multizona del volo, Sensore di portata multizona, Sensore di portata

Riferimenti

Lascia un commento

Il tuo indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *