Manual Pengguna Penderia Jarak Penerbangan ST VL53L3CX Masa

pengenalan
VL53L3CX ialah modul sensor jarak Masa-Penerbangan (ToF).
Tujuan manual pengguna ini adalah untuk menerangkan model penyepaduan dan set fungsi untuk dipanggil untuk mendapatkan data julat menggunakan pemacu kosong VL53L3CX.
Sistem VL53L3CX tamatview
Sistem VL53L3CX terdiri daripada modul VL53L3CX dan pemacu yang dijalankan pada hos.
Dokumen ini menerangkan fungsi pemacu yang boleh diakses oleh Hos, untuk mengawal peranti dan mendapatkan data julat untuk penyepaduan dengan hos bukan linux.

Rajah 1. Sistem VL53L3CX
Nota:
Dokumen ini menerangkan fungsi yang dilaksanakan dan disahkan. Sebarang fungsi lain yang tersedia dalam pemacu tidak boleh digunakan jika tidak diterangkan dalam dokumen ini.
Pemacu kosong ialah pelaksanaan set fungsi yang diperlukan untuk menggunakan peranti VL53L3CX. Ia membuat andaian minimum pada penyepaduan dan perkhidmatan OS. Oleh itu, penjujukan tindakan, model pelaksanaan/benang, penyesuaian platform dan peruntukan struktur peranti bukanlah sebahagian daripada pelaksanaan pemacu kosong tetapi dibiarkan terbuka kepada penyepadu.
Penjujukan panggilan pemandu kosong mesti mengikut set peraturan, yang ditakrifkan dalam dokumen ini.
huraian fungsian berkisar
Bahagian ini menerangkan secara ringkas keupayaan fungsi peranti julat VL53L3CX.
Urutan julat
Peranti berjalan dengan mekanisme jabat tangan, berdasarkan skim pengurusan gangguan standard.
Selepas setiap julat, hos memperoleh data julat dan mendayakan julat seterusnya dengan mengosongkan gangguan. Proses ini dirujuk sebagai mekanisme jabat tangan. Julat seterusnya kemudiannya dicetuskan jika yang semasa telah selesai dan jika hos telah mengosongkan gangguan yang belum selesai sebelum ini.
Mekanisme gangguan membolehkan pemindahan data lebih pantas, tanpa kehilangan sebarang nilai julat disebabkan oleh isu komunikasi atau tak segerak. Semasa fasa jabat tangan, hos melakukan beberapa pemprosesan data. Urutan julat diterangkan secara fungsional dalam rajah di bawah.

Urutan jabat tangan membolehkan pengiraan parameter dalaman dan menggunakannya untuk julat seterusnya.
Jabat tangan mesti dilakukan oleh pengguna pemandu yang terdedah. Kelewatan untuk mendayakan julat baharu selepas pengukuran baharu diterima adalah kunci kepada kadar pengukuran keseluruhan sistem.
Pertimbangan masa
Masa dibentangkan dalam Rajah 3. Urutan jujukan dan sasaran masa.
Hos boleh mendapatkan julat terkini yang tersedia semasa tempoh (belanjawan masa julat) julat semasa.
Jika kelewatan untuk mengosongkan gangguan diperkenalkan oleh hos, julat seterusnya akan terhenti sehingga gangguan yang belum selesai dikosongkan.
Nota: Masa ditunjukkan dalam Rajah 3. Urutan jujukan dan sasaran masa adalah pemasaan biasa. Hos boleh menukar belanjawan pemasaan lalai dengan menggunakan fungsi pemacu khusus yang diterangkan dalam Bahagian 5.1 Belanjawan pemasaan. Hos boleh memutuskan untuk menukar belanjawan masa sama ada untuk menyegerakkan pada aplikasi atau untuk meningkatkan ketepatan julat.
Dalam rajah berikut, "Boot", "SW standby" dan "Init" berlangsung selama 40 ms. Masa ini diperlukan untuk melakukan pemulaan peranti yang betul, dan ia bebas daripada platform atau belanjawan pemasaan yang digunakan. Julat pertama, "Julat1", tidak sah, kerana semakan keliling tidak mungkin. Ini bermakna nilai julat pertama yang sah ialah "Julat2", tersedia selepas 40 ms ditambah dua kali ganda tempoh belanjawan pemasaan.

Rajah 3. jujukan jujukan dan sasaran masa
Penerangan fungsi asas pemandu kosong
Bahagian ini menerangkan aliran panggilan fungsi pemacu yang harus diikuti untuk melakukan pengukuran julat
menggunakan VL53L3CX.
Pemacu VL53L3CX digunakan dalam dua kelas aplikasi:
- Aplikasi kilang yang digunakan untuk penentukuran peranti, biasanya pada ujian pembuatan produk akhir (aliran kilang)
- Aplikasi medan, yang mengumpulkan semua aplikasi pengguna akhir menggunakan peranti VL53L3CX (aliran julat)
Pemandu telanjang
Aliran kilang pemandu telanjang digambarkan dalam rajah berikut.

Rajah 4. Aliran julat API VL53L3CX (kilang)
Nota: Aliran penentukuran menukar mod jarak. Ia adalah wajib untuk memanggil fungsi SetDistanceMode() jika anda ingin menggunakan sensor selepas penentukuran.
Aliran julat pemandu kosong digambarkan dalam rajah berikut.

Rajah 5. Aliran julat API VL53L3CX (medan)
Inisialisasi sistem
Bahagian berikut menunjukkan panggilan fungsi API yang diperlukan untuk melaksanakan pemulaan sistem, sebelum memulakan pengukuran.
Tunggu boot
Fungsi VL53LX_WaitDeviceBooted() memastikan peranti dibut dan sedia. Ia tidak wajib untuk memanggil fungsi ini.
Nota: Fungsi ini menyekat pelaksanaan hos. Fungsi ini tidak boleh menyekat selama lebih daripada 4 ms, dengan mengandaikan:
- 400 kHz frekuensi I2C
- Kependaman 2 ms setiap transaksi
Data init
Fungsi VL53LX_DataInit() mesti dipanggil setiap kali peranti keluar daripada keadaan "but awal". Ia melakukan permulaan peranti. Selepas memanggil fungsi VL53LX_DataInit() data penentukuran perlu dimuatkan menggunakan fungsi VL53LX_SetCalibrationData().
Bermula dengan VL53L3CX
Pada hos bukan Linux, pengguna jujukan pemandu kosong memanggil pemacu dengan cara yang sesuai dengan keperluan aplikasi, keupayaan platform dan peraturan jujukan panggilan pemandu kosong.
Mulakan pengukuran
Fungsi VL53LX_StartMeasurement() mesti dipanggil untuk memulakan pengukuran.
Tunggu keputusan: pengundian atau gangguan
Terdapat 3 cara untuk mengetahui bahawa ukuran tersedia. Tuan rumah boleh:
- memanggil fungsi pengundian
- tinjauan pada fungsi pemandu
- tunggu gangguan fizikal
Undian pemandu untuk mendapatkan status keputusan
Fungsi VL53LX_WaitMeasurementDataReady() sedang meninjau status dalaman sehingga ukuran sedia.
Nota: Fungsi ini menyekat, kerana pengundian dalaman dilakukan.
Undian hos untuk mendapatkan status keputusan
Hos boleh meninjau fungsi VL53LX_GetMeasurementDataReady() untuk mengetahui bila ukuran baharu sedia. Fungsi ini tidak menyekat.
Menggunakan gangguan fizikal
Cara alternatif dan pilihan untuk mendapatkan status julat adalah dengan menggunakan output gangguan fizikal. Secara lalai, GPIO1 menjadi rendah apabila ukuran baharu sedia.
Pin ini adalah pin output sahaja, tiada pin gangguan input pada peranti ini. Gangguan mesti dibersihkan dengan memanggil fungsi pemacu VL53LX_ClearInterruptAndStartMeasurement().
Dapatkan ukuran
Berbilang objek boleh dikesan setiap julat dan data pengukuran dilaporkan setiap objek VL53LX_GetMultiRangingData() boleh digunakan untuk mendapatkan data julat apabila berbilang objek berada dalam bidang view. Apabila memanggil fungsi ini untuk mendapatkan hasil julat berbilang peranti, struktur yang dipanggil VL53LX_MultiRangingData_t dikembalikan.
Hentikan pengukuran
Dalam mod berterusan, hos boleh menghentikan pengukuran dengan memanggil fungsi VL53LX_StopMeasurement(). Jika permintaan berhenti berlaku semasa pengukuran julat, maka pengukuran akan dibatalkan serta-merta.
Merangkai struktur data
Struktur bernama VL53LX_MultiRangingData_t mengandungi data berikut yang boleh digunakan untuk semua sasaran yang dikesan:
- Masa Stamp: tidak dilaksanakan.
- Kiraan Strim: integer 8-bit ini memberikan pembilang yang dinaikkan pada setiap julat. Nilai bermula pada 0, menambah 1 dengan 1 hingga 255. Apabila mencapai 255, ia bermula semula dari 128 hingga 255.
- Bilangan Objek Ditemui: Nilai integer 8-bit yang memberikan bilangan objek yang ditemui.
- Data Julat [VL53LX_MAX_RANGE_RESULTS]: jadual struktur jenis VL53LX_TargetRangeData_t. Bilangan maksimum sasaran diberikan oleh VL53LX_MAX_RANGE_RESULTS dan secara lalainya bersamaan dengan 4.
- Adakah Nilai X talk Berubah: Nilai integer 8-bit yang menunjukkan jika nilai crosstalk telah diubah.
- Kiraan Rtn Spad Berkesan: Integer 16-bit yang mengembalikan kiraan diod avalanche foton tunggal (SPAD) berkesan untuk julat semasa. Untuk mendapatkan nilai sebenar ia hendaklah dibahagikan dengan 256.
Satu struktur bagi setiap sasaran dikesan (sehingga 4 secara lalai) dipanggil VL53LX_TargetRangeData_t yang mengandungi hasil khusus berikut untuk setiap sasaran yang dikesan.
- JulatMaxMilliMeter: ialah integer 16-bit, menunjukkan jarak pengesanan yang lebih besar.
- JulatMinMilliMeter: ialah integer 16-bit, menunjukkan jarak yang dikesan lebih kecil.
- SignalRateRtnMegaCps: nilai ini ialah kadar isyarat pulangan dalam MegaCountPer Second (MCPS), ini ialah nilai titik tetap 16.16. Untuk mendapatkan nilai sebenar ia hendaklah dibahagikan dengan 65536.
- AmbientRateRtnMegaCps: nilai ini ialah kadar ambien pulangan (dalam MCPS), ini ialah nilai titik tetap 16.16, yang secara berkesan merupakan ukuran jumlah cahaya ambien yang diukur oleh sensor. Untuk mendapatkan nilai sebenar ia hendaklah dibahagikan dengan 65536.
- SigmaMilliMeter: nilai titik tetap 16.16 ini ialah anggaran sisihan piawai julat arus, dinyatakan dalam milimeter. Untuk mendapatkan nilai sebenar ia hendaklah dibahagikan dengan 65536.
- JulatMilliMeter: ialah integer 16-bit yang menunjukkan jarak julat dalam milimeter.
- Status Julat: ini ialah integer 8-bit yang menunjukkan status julat untuk pengukuran semasa. Nilai = 0 bermakna julat adalah sah. Lihat Jadual 1. Status julat.
- Julat Lanjutan: ini ialah integer 8-bit yang menunjukkan jika julat telah dibuka (hanya untuk jarak jauh)
Tingkah laku tertentu dilaksanakan apabila sasaran tidak dikesan. Jika sasaran tidak dikesan dan pengukuran adalah sah, nilai berikut dilaporkan dalam struktur VL53LX_TargetRangeData_t:
- RangeMaxMilliMeter: terpaksa ke 8191.
- JulatMinMilliMeter: terpaksa ke 8191.
- SignalRateRtnMegaCps: terpaksa 0.
- AmbientRateRtnMegaCps: nilai kadar ambien biasanya dikira.
- SigmaMilliMeter: terpaksa 0.
- RangeMilliMeter: terpaksa ke 8191.
- RangeStatus: dipaksa ke 255.
- ExtendedRange: dipaksa kepada 0.
Jadual 1. Status julat
| Nilai | Rentetan RangeStatus | Komen |
| 0 | VL53LX_RANGESTATUS_RANGE_VALID | Pengukuran julat adalah sah |
| 1 | VL53LX_RANGESTATUS_SIGMA_FAIL | Dinaikkan jika semakan penganggar sigma melebihi ambang ditentukan dalaman. Penganggar sigma memberikan maklumat kualitatif tentang isyarat. |
| 2 | VL53LX_RANGESTATUS_SIGNAL_FAIL | Dinaikkan apabila isyarat terlalu rendah untuk mengesan sasaran. |
| 4 | VL53LX_RANGESTATUS_OUTOFBOUNDS_FAIL | Dinaikkan apabila hasil julat di luar had |
| 5 | VL53LX_RANGESTATUS_HARDWARE_FAIL | Dibangkitkan sekiranya berlaku kegagalan HW atau VCSEL |
| 6 | VL53LX_RANGESTATUS_RANGE_VALID_NO_WR AP_CHECK_FAIL | Tiada semakan penutup telah dilakukan (ini adalah julat pertama) |
| 7 | VL53LX_RANGESTATUS_WRAP_TARGET_FAIL | Pembungkusan berlaku |
| 8 | VL53LX_RANGESTATUS_PROCESSING_FAIL | Ralat pemprosesan dalaman |
| 10 | VL53LX_RANGESTATUS_SYNCRONISATION_INT | Dinaikkan satu kali selepas init, nilai julat perlu diabaikan |
| 11 | VL53LX_RANGESTATUS_RANGE_VALID_MERGE D_PULSE | Julat adalah OK, tetapi jarak yang dilaporkan adalah hasil daripada berbilang sasaran yang digabungkan. |
| 12 | VL53LX_RANGESTATUS_TARGET_PRESENT_LA CK_OF_SIGNAL | Tunjukkan bahawa terdapat sasaran, tetapi isyarat terlalu rendah untuk melaporkan julat |
| 14 | VL53LX_RANGESTATUS_RANGE_INVALID | Data julat adalah negatif dan harus diabaikan |
| 255 | VL53LX_RANGESTATUS_TIADA | Sasaran tidak dikesan, tanpa amaran atau ralat dibangkitkan |
Pengukuran pertama tidak termasuk semakan keliling. Ukuran julat ini boleh dibuang.
Nota: Status julat 1 selalunya disebabkan oleh ukuran yang bising. Penganggar sigma dipengaruhi oleh SNR isyarat yang dirawat.
Nota: Status julat 4 dinaikkan apabila beberapa ralat pada rujukan pengukuran berlaku. Ini boleh menyebabkan outlier sebagai ukuran negatif atau nilai julat yang sangat tinggi.
Penerangan fungsi pemandu tambahan
Belanjawan masa
Belanjawan masa ialah masa yang diperuntukkan oleh pengguna untuk melakukan satu ukuran julat. VL53LX_SetMeasurementTimingBudgetMicroSeconds() ialah fungsi yang akan digunakan untuk menetapkan belanjawan pemasaan. Nilai belanjawan pemasaan lalai ialah 33 ms. Minimum ialah 8 ms, maksimum ialah 500 ms.
Untuk example, untuk menetapkan belanjawan pemasaan kepada 66 ms: status = VL53LX_SetMeasurementTimingBudgetMicroSeconds(&VL53L3Dev, 66000 );
Fungsi VL53LX_GetMeasurementTimingBudgetMicroSeconds() mengembalikan belanjawan pemasaan yang diprogramkan.
Mod jarak
Satu fungsi telah ditambah untuk mengoptimumkan tetapan dalaman bergantung pada jarak julat yang diminta oleh pengguna. Faedah menukar mod jarak diperincikan dalam jadual berikut.
Jadual 2. Mod jarak
| Mod jarak yang mungkin | Faedah / komen |
| pendek | Imuniti ambien yang lebih baik |
| Sederhana (Lalai) | Jarak maksimum |
| Panjang | Penggunaan kuasa yang lebih rendah |
Fungsi untuk digunakan dipanggil VL53LX_SetDistanceMode().
Pemandu boleh membantu hos untuk memilih mod jarak optimum. Nilai tertentu dikembalikan pada setiap julat untuk menunjukkan pilihan terbaik, bergantung pada keadaan ambien.
Nilai yang mungkin adalah:
- VL53LX_DISTANCE_SHORT
- VL53LX_DISTANCE_MEDIUM
- VL53LX_DISTANCE_LONG
Parameter penalaan
Parameter penalaan membolehkan anda mencari kesesuaian terbaik antara penderia dan kes penggunaan hos. Untuk setiap kes penggunaan, satu set parameter penalaan boleh ditakrifkan dan dimuatkan dalam pemacu.
Kebanyakan parameter penalaan ialah ambang boleh tala, digunakan dalam algoritma rawatan isyarat. Mengubah suai parameter ini membolehkan algoritma membuat pertukaran teknikal kepada kes penggunaan pelanggan tertentu.
Tetapkan parameter penalaan
Fungsi tambahan wujud untuk memuatkan parameter penalaan. Untuk kes penggunaan tertentu, ST boleh mengesyorkan beberapa parameter khusus yang terdiri daripada kunci dan nilai.
Senarai parameter penalaan dan nilai lalainya diberikan dalam vl53lx_tuning_parm_defaults.h file. Sama ada menukar nilai parameter penalaan dalam ini file dan susun semula kod, atau gunakan fungsi VL53LX_SetTuningParameter() untuk memuatkan parameter penalaan ini.
Menukar parameter penalaan boleh mengubah suai prestasi peranti. ST mengesyorkan untuk menggunakan nilai lalai untuk hasil yang optimum.
Meningkatkan ketepatan
Untuk meningkatkan ketepatan peranti, gunakan parameter penalaan yang dipanggil VL53LX_TUNINGPARM_PHASECAL_PATCH_POWER. Secara lalai parameter penalaan ini tidak digunakan (nilai ditetapkan kepada 0).
ST mengesyorkan untuk menetapkan nilai penentukuran dan julat aliran kepada 2 selepas static_init. Dalam kes ini, masa untuk melakukan pengukuran isyarat rujukan meningkat dan membolehkan ketepatan yang lebih baik. Menetapkan parameter ini kepada 2 meningkatkan tempoh untuk mendapatkan ukuran pertama sebanyak 240 ms.
Tingkatkan kependaman dan jarak julat maksimum
Apabila sasaran bergerak, VL53L3CX mungkin memerlukan beberapa julat untuk bertindak balas, bergantung pada tempat kejadian. Satu cara untuk meningkatkan kependaman adalah dengan menala parameter VL53LX_TUNINGPARM_RESET_MERGE_THRESHOLD. Nilai lalai ialah 15000. Ia boleh diturunkan untuk meningkatkan kependaman, tetapi jarak julat maksimum akan terjejas.
Jika pengguna meningkatkan nilai, jarak julat maksimum boleh dipertingkatkan, tetapi kependaman terjejas.
Pengesanan kotoran kaca penutup
Cakap silang boleh dipengaruhi oleh comot pada kaca penutup. VL53L3CX membenamkan fungsi yang dapat mengesan comot dengan cepat dan menggunakan nilai pembetulan crosstalk baharu. Pengguna boleh mendayakan/melumpuhkan fungsi ini dengan memanggil VL53LX_SmudgeCorrectionEnable().
Tiga pilihan berikut boleh ditetapkan dengan fungsi ini:
- VL53LX_SMUDGE_CORRECTION_NONE untuk melumpuhkan pembetulan
- VL53LX_SMUDGE_CORRECTION_CONTINUOUS untuk membolehkan pembetulan berterusan
- VL53LX_SMUDGE_CORRECTION_SINGLE untuk mendayakan pembetulan tunggal selepas arahan mula diterima.
Pengesanan kotoran sedang dijalankan pada setiap julat. Jika beberapa syarat dipenuhi (tiada objek di bawah 80 cm, aras cahaya ambien di bawah ambang dan nilai crosstalk melebihi 1kcps), nilai crosstalk baharu dikira.
Jika pembetulan smudge ditetapkan, nilai crosstalk dibetulkan dan bendera HasXtalkValueChanged ditetapkan. Bendera ini dikosongkan secara automatik pada julat seterusnya.
Nota: Pembetulan comot adalah terhad kepada:
- 1.2 m menggunakan mod jarak dekat
- 1.7 m menggunakan mod jarak sederhana
- 3.8 m menggunakan mod jarak jauh.
alamat I2C
Alamat I2C lalai VL53L3CX ialah 0x52. Sesetengah aplikasi perlu menetapkan alamat peranti I2C yang berbeza. Ini adalah kesnya, contohnyaampOleh itu, apabila beberapa bahagian VL53L3CX berkongsi bas I2C yang sama.
Pelanggan hendaklah menggunakan prosedur berikut:
- Papan yang memasang VL53L3CX perlu direka bentuk dengan teliti. Pin Xshut dan GPIO1 (gangguan) perlu dikawal secara individu untuk setiap VL53L3CX
- Hos perlu memasukkan HW Standby, menetapkan pin Xshut rendah, semua VL53L3CX.
- Hos menaikkan pin Xshut 1 daripada VL53L3CX
- Hos memanggil fungsi VL53LX_SetDeviceAddress()
- Hos mengulangi tiga mata yang terakhir kerana semua alamat VL53L3CX ditetapkan dengan betul.
Untuk example, dengan memanggil fungsi: status = VL53LX_SetDeviceAddress(&VL53L3Dev, WantedAddress) nilai WantedAddress ditetapkan sebagai alamat I2C baharu.
Fungsi penentukuran kilang pelanggan
Untuk mendapat manfaat daripada prestasi penuh peranti, pemacu VL53L3CX menyertakan fungsi penentukuran untuk dijalankan sekali di barisan pengeluaran pelanggan.
Prosedur penentukuran perlu dijalankan untuk mengimbangi parameter bahagian ke bahagian yang boleh menjejaskan prestasi peranti. Data penentukuran yang disimpan dalam hos perlu dimuatkan dalam VL53L3CX pada setiap permulaan menggunakan fungsi pemacu khusus. Tiga penentukuran diperlukan: refSPAD, crosstalk dan offset.
Susunan fungsi penentukuran dipanggil seperti berikut:
- refSPAD
- crosstalk
- mengimbangi
Tiga fungsi penentukuran boleh dilakukan dalam mod berurutan atau secara individu. Apabila dijalankan secara individu, data langkah sebelumnya perlu dimuatkan sebelum menjalankan penentukuran.
Penentukuran RefSPAD
Bilangan diod avalanche foton tunggal (SPAD) ditentukur semasa ujian modul akhir di ST. Nilai bahagian ke bahagian ini disimpan dalam NVM dan dimuatkan secara automatik dalam peranti semasa but.
Penentukuran ini membolehkan untuk melaraskan bilangan SPAD untuk mengoptimumkan dinamik peranti.
Walau bagaimanapun, menambah kaca penutup pada bahagian atas modul boleh menjejaskan penentukuran ini. ST mengesyorkan agar pelanggan melakukan penentukuran ini sekali lagi dalam aplikasi produk akhir. Algoritma yang sama berjalan di FMT digunakan apabila fungsi ini dipanggil: algoritma mencari melalui tiga lokasi: 1 (1x SPAD dilemahkan), 2 (5 x SPAD dilemahkan) dan 3 (10 x SPAD dilemahkan). Bilangan SPAD yang dipilih dilakukan untuk mengelakkan ketepuan isyarat.
Fungsi penentukuran RefSPAD
Fungsi berikut tersedia untuk penentukuran SPAD: VL53LX_PerformRefSpadManagement(VL53LX_DEV Dev)
Nota: Fungsi ini mesti dipanggil terlebih dahulu dalam prosedur penentukuran.
Fungsi ini boleh mengeluarkan tiga mesej amaran berikut:
- VL53LX_WARNING_REF_SPAD_CHAR_NOT_ENOUGH_SPA S Kurang daripada 5 SPAD Baik tersedia, output tidak sah
- VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_HIGH Pada akhir kadar rujukan carian > 40.0 Mcps Kestabilan offset mungkin menurun.
- VL53LX_WARNING_REF_SPAD_CHAR_RATE_TOO_LOW Pada akhir kadar rujukan carian < 10.0 Mcps. Kestabilan mengimbangi mungkin terdegradasi.
Prosedur penentukuran RefSPAD
Tiada syarat tertentu yang perlu dipatuhi untuk penentukuran ini, kecuali tiada sasaran harus diletakkan di atas peranti.
Masa untuk melakukan penentukuran ini hanya beberapa milisaat.
Fungsi ini perlu dipanggil selepas fungsi VL53LX_DataInit() dipanggil.
Mendapatkan hasil penentukuran refSPAD
Fungsi VL53LX_GetCalibrationData() mengembalikan semua data penentukuran. Struktur yang dikembalikan VL53LX_CalibrationData_t mengandungi struktur lain yang dipanggil VL53LX_customer_nvm_managed_t, yang mengandungi lapan parameter penentukuran refSPAD:
- ref_spad_man__num_requested_ref_spads: nilai ini antara 5 dan 44. Ia memberikan bilangan SPAD yang dipilih
- ref_spad_man__ref_location: nilai ini boleh menjadi 1, 2 atau 3. Ia memberikan lokasi SPAD dalam kawasan rujukan.
- enam parameter tambahan memberikan peta spad yang betul untuk lokasi yang dipilih:
- global_config__spad_enables_ref_0
- global_config__spad_enables_ref_1
- global_config__spad_enables_ref_2
- global_config__spad_enables_ref_3
- global_config__spad_enables_ref_4
- global_config__spad_enables_ref_5
Menetapkan data penentukuran refSPAD
Pada setiap permulaan, selepas but awal, aplikasi medan pelanggan boleh memuatkan data penentukuran refSPAD selepas fungsi VL53LX_DataInit() dipanggil, dengan menggunakan VL53LX_SetCalibrationData().
Adalah disyorkan untuk mendapatkan keseluruhan struktur penentukuran dengan memanggil VL53LX_GetCalibrationData(). Ubah suai lapan parameter yang diterangkan dalam Bahagian 6.1.3 Mendapatkan hasil penentukuran refSPAD dan panggil VL53LX_SetCalibrationData().
Penentukuran crosstalk
Crosstalk (XTalk) ditakrifkan sebagai jumlah isyarat yang diterima pada tatasusunan kembali yang disebabkan oleh pantulan cahaya VCSEL di dalam tingkap pelindung (kaca penutup) yang ditambahkan di atas modul atas sebab estetik.
Bergantung pada kualiti kaca penutup, isyarat parasit ini boleh menjejaskan prestasi peranti. VL53L3CX mempunyai pembetulan terbina dalam yang mengimbangi masalah ini.
Penentukuran crosstalk digunakan untuk menganggarkan jumlah pembetulan yang diperlukan untuk mengimbangi kesan kaca penutup yang ditambahkan pada bahagian atas modul.
Output penentukuran crosstalk mengandungi banyak parameter yang mentakrifkan model crosstalk, seperti yang diterangkan dalam Bahagian 6.2.3 Mendapatkan hasil penentukuran crosstalk.
Fungsi penentukuran crosstalk
Fungsi khusus berikut tersedia untuk penentukuran crosstalk: VL53LX_PerformXTalkCalibration(&VL53L3Dev);
Nota: Fungsi ini mesti dipanggil pada kedudukan kedua dalam prosedur penentukuran, selepas penentukuran refSPAD dilakukan, dan sebelum penentukuran mengimbangi.
Prosedur penentukuran crosstalk
Untuk melakukan penentukuran crosstalk, sasaran perlu diletakkan pada jarak 600mm dari peranti. Penentukuran crosstalk hendaklah dijalankan dalam persekitaran yang gelap tanpa sumbangan IR. Selepas fungsi VL53LX_DataInit() dan VL53LX_PerformRefSpadManagement() dipanggil, fungsi penentukuran khusus perlu dipanggil, menggunakan: VL53LX_PerformXTalkCalibration(&VL53L3Dev). Apabila fungsi ini dipanggil, penentukuran crosstalk dilakukan dan pembetulan crosstalk digunakan secara lalai.
Mendapat hasil penentukuran crosstalk
Hasil penentukuran terdiri, antara lain, histogram dan parameter yang dipanggil "pengimbangan satah". Pengimbangan satah mewakili jumlah pembetulan yang digunakan, dan histogram ialah partisi semula pembetulan pada setiap tong. Fungsi VL53LX_GetCalibrationData() mengembalikan semua data penentukuran. Struktur yang dikembalikan VL53LX_CalibrationData_t mengandungi struktur lain. Pengimbangan satah terkandung dalam VL53LX_customer_nvm_managed_t: algo_crosstalk_compensation_plane_offset_kcps ialah nilai berkod titik 7.9 tetap. Ia perlu dibahagikan dengan 512 untuk mendapatkan nombor sebenar.
Dua struktur lain yang berkaitan dikembalikan: VL53LX_xtalk_histogram_data_t dan algo__xtalk_cpo_HistoMerge_kcps. Ia adalah wajib untuk menyimpannya.
Menetapkan data penentukuran crosstalk
Setelah fungsi VL53LX_DataInit() dipanggil, pelanggan boleh memuatkan data penentukuran crosstalk menggunakan: VL53LX_SetCalibrationData()
Adalah lebih baik untuk memanggil VL53LX_GetCalibrationData(), mengubah suai parameter yang diterangkan dalam bahagian sebelumnya, struktur xtalk_histogram disertakan dan memanggil VL53LX_SetCalibrationData()
Dayakan/lumpuhkan pampasan crosstalk
Fungsi VL53LX_SetXTalkCompensationEnable() mendayakan atau melumpuhkan pampasan crosstalk.
Nota: Pampasan Crosstalk dilumpuhkan secara lalai. Untuk mendayakan panggilan pampasan crosstalk V53LX_SetXTalkCompensationEnable&VL53L3Dev, 1);
Untuk melumpuhkan pampasan crosstalk panggil VL53LX_SetXTalkCompensationEnable&VL53L3Dev, 0);
Nota: Fungsi ini tidak melakukan sebarang penentukuran atau pemuatan data crosstalk, ia hanya membolehkan pampasan.
Nota: Penentukuran, atau pemuatan fungsi data penentukuran, perlu dipanggil secara berasingan daripada fungsi dayakan/lumpuhkan ini (lihat bahagian di atas).
Penentukuran mengimbangi
Memateri peranti pada papan pelanggan atau menambah kaca penutup boleh memperkenalkan offset dalam jarak julat. Offset bahagian ke bahagian ini perlu diukur semasa penentukuran ofset. Penentukuran offset juga membolehkan untuk menentukur nilai dmax, menggunakan keadaan penentukuran yang sama daripada penentukuran offset.
Fungsi penentukuran mengimbangi
Dua fungsi berikut tersedia untuk penentukuran offset:
- VL53LX_PerformOffsetSimpleCalibration(Dev, CalDistanceMilliMeter)
- VL53LX_PerformOffsetPerVCSELCalibration(Dev, CalDistanceMilliMeter)
Hujah fungsi ialah jarak sasaran dalam milimeter. Penentukuran ofset perlu dilakukan selepas pembetulan crosstalk.
VL53LX_PerformOffsetPerVCSELCalibration ialah fungsi yang paling tepat, tetapi ia mengambil masa yang lebih lama untuk melaksanakan penentukuran (masa didarab dengan 3).
Prosedur penentukuran mengimbangi
Pelanggan boleh memilih mana-mana pantulan carta yang diletakkan pada sebarang jarak (menggunakan persediaan yang sama seperti penentukuran crosstalk). Satu-satunya perkara yang perlu diperiksa ialah memastikan kadar isyarat diukur antara 2 dan 80 MCps dengan persediaan yang dipilih.
Jadual 3. Persediaan penentukuran mengimbangi
| Carta | Jarak | Keadaan persekitaran | Kadar Isyarat |
| mana-mana | mana-mana | Gelap (tiada sumbangan IR) | 2MCps < Kadar Isyarat <80Mcps |
Dua mesej amaran dikembalikan oleh fungsi ini:
- VL53LX_WARNING_OFFSET_CAL_INSUFFICIENT_MM1_SP DS Isyarat terlalu rendah, Ketepatan penentukuran mengimbangi mungkin menurun.
- VL53LX_WARNING_OFFSET_CAL_PRE_RANGE_RATE_TOO_H Isyarat GH terlalu tinggi. Ketepatan penentukuran mengimbangi mungkin terdegradasi.
Mendapatkan hasil penentukuran mengimbangi
Fungsi VL53LX_GetCalibrationData() mengembalikan semua data penentukuran. Struktur yang dikembalikan VL53LX_CalibrationData_t mengandungi struktur lain yang dipanggil VL53LX_customer_nvm_managed_t yang mengandungi tiga keputusan penentukuran ofset:
- algo__part_to_part_range_offset_mm
- mm_config__inner_offset_mm
- mm_config__outer_offset_mm
Offset keseluruhan yang digunakan pada peranti ialah purata dua nilai terakhir. Jika perVCSELCalibration dipilih, output fungsi termasuk data berikut:
- short_a_offset_mm
- short_b_offset_mm
- medium_a_offset_mm
- medium_b_offset_mm
- long_a_offset_mm
- long_bb_offset_mm
Bergantung pada mod jarak (tempoh VCSEL) yang dipilih, salah satu daripada ofset ini digunakan secara automatik.
Memilih mod pembetulan mengimbangi
Mod pembetulan offset boleh ditetapkan dengan dua pilihan, menggunakan fungsi VL53LX_SetOffsetCorrectionMode.
Nota: VL53LX_OFFSETCORRECTIONMODE_PERVCSEL harus digunakan secara lalai. Ia membolehkan untuk meningkatkan ketepatan mengimbangi setiap tempoh VCSEL.
Jadual 4. Opsyen pembetulan mengimbangi
| Fungsi penentukuran mengimbangi dipanggil | Pilihan mod pembetulan untuk digunakan |
| LakukanSimpleOffsetCalibration | VL53LX_OFFSETCORRECTIONMODE_STANDARD |
| PerformPerVCSELOoffsetCalibration | VL53LX_OFFSETCORRECTIONMODE_PERVCSEL |
Nota: Jika hanya satu jenis penentukuran offset tersedia, adalah wajib untuk menetapkan mod pembetulan offset kepada pilihan yang sepadan. Ini tidak dilakukan secara automatik.
Menetapkan data penentukuran mengimbangi
Pelanggan boleh memuatkan data penentukuran ofset selepas fungsi VL53LX_DataInit() dipanggil, dengan menggunakan VL53LX_SetCalibrationData().
Adalah lebih baik untuk memanggil VL53LX_GetCalibrationData(), mengubah suai parameter yang diterangkan dalam bahagian sebelumnya dan memanggil VL53LX_SetCalibrationData()
Penentukuran kedai pembaikan pelanggan
Sekiranya nilai penentukuran hilang, disebabkan perubahan komponen di kedai pembaikan, pelanggan boleh menggunakan prosedur khusus, di mana tiada persediaan (sasaran) khusus diperlukan.
Penentukuran terdiri daripada tiga langkah:
- RefSpad
- Crosstalk
- Penentukuran mengimbangi
RefSpad dan Xtalk adalah sama seperti yang diterangkan dalam Bahagian 6.1 penentukuran RefSPAD dan Seksyen 6.2 penentukuran Crosstalk.
Fungsi khusus tersedia untuk melaksanakan penentukuran offset: VL53LX_PerformOffsetZeroDistanceCalibration.
Sasaran perlu ditetapkan di hadapan peranti, menyentuh kaca penutup. Sasaran boleh berupa helaian kertas ringkas (tanpa keperluan khusus untuk pemantulan kertas).
Fungsi di atas perlu dipanggil dan hasilnya boleh diambil sama seperti proses yang diterangkan dalam bahagian sebelumnya.
Ralat dan amaran pemandu yang terdedah
Ralat pemacu dilaporkan apabila sebarang fungsi pemacu dipanggil. Nilai yang mungkin untuk ralat pemandu diterangkan dalam jadual berikut. Amaran ada untuk memaklumkan pengguna bahawa beberapa parameter tidak dioptimumkan. Amaran tidak menyekat untuk hos.
Jadual 5. Ralat pemandu kosong dan penerangan amaran
| Nilai ralat | Rentetan ralat API | Kejadian |
| 0 | VL53LX_ERROR_TIADA | Tiada kesilapan |
| -1 | VL53LX_ERROR_CALIBRATION_WARNING | Data penentukuran tidak sah |
| -4 | VL53LX_ERROR_INVALID_PARAMS | Parameter tidak sah ditetapkan dalam fungsi |
| -5 | VL53LX_ERROR_NOT_SUPPORTED | Parameter yang diminta tidak disokong dalam konfigurasi yang diprogramkan |
| -6 | VL53LX_ERROR_RANGE_ERROR | Status gangguan tidak betul |
| -7 | VL53LX_ERROR_TIME_OUT | Ranging dibatalkan kerana tamat masa |
| -8 | VL53LX_ERROR_MODE_NOT_SUPPORTED | Mod yang diminta tidak disokong |
| -10 | VL53LX_ERROR_COMMS_BUFFER_TERLALU_KECIL | Penampan yang dibekalkan adalah lebih besar daripada sokongan I2C |
| -13 | VL53LX_ERROR_CONTROL_INTERFACE | Ralat dilaporkan daripada fungsi IO |
| -14 | VL53LX_ERROR_INVALID_COMMAND | Perintah tidak sah |
| -16 | VL53LX_ERROR_REF_SPAD_INIT | Ralat berlaku semasa penentukuran SPAD Rujukan |
| -17 | VL53LX_ERROR_GPH_SYNC_CHECK_FAIL | Pemandu tidak segerak dengan peranti. Berhenti/mula atau but semula mungkin diperlukan |
| -18 | VL53LX_ERROR_STREAM_COUNT_CHECK_FAIL | |
| -19 | VL53LX_ERROR_GPH_ID_CHECK_FAIL | |
| -20 | VL53LX_ERROR_ZONE_STREAM_COUNT_CHEC K_FAIL | |
| -21 | VL53LX_ERROR_ZONE_GPH_ID_CHECK_FAIL | |
| -22 | VL53LX_ERROR_XTALK_EXTRACTION_FAIL | Tiada s berjayaamples apabila menggunakan tatasusunan penuh untuk sample the crosstalk. Dalam kes ini tidak ada maklumat yang mencukupi untuk menjana nilai crosstalk baharu. Fungsi akan keluar dan membiarkan parameter crosstalk semasa tidak diubah |
| -23 | VL53LX_ERROR_XTALK_EXTRACTION_SIGMA_L IMIT_FAIL | Anggaran purata sigma bagi crosstalk sample adalah > daripada had maksimum yang dibenarkan. Dalam kes ini, crosstalk sample terlalu bising untuk pengukuran. Fungsi akan keluar dan membiarkan parameter crosstalk semasa tidak diubah |
| -24 | VL53LX_ERROR_OFFSET_CAL_NO_SAMPLE_FA IL | Ralat berlaku semasa penentukuran mengimbangi. Persediaan semak adalah selaras dengan cadangan ST. |
| -25 | VL53LX_ERROR_OFFSET_CAL_NO_SPADS_ENA BLED_FAIL | |
| -28 | VL53LX_WARNING_REF_SPAD_CHAR_NOT_EN OUGH_SPADS | Amaran: bilangan spad ditemui terlalu rendah untuk mendapatkan penentukuran RefSpadManagement yang tepat. Pastikan persediaan selaras dengan cadangan ST. |
| -29 | VL53LX_WARNING_REF_SPAD_CHAR_RATE_TO O_HIGH | Amaran: kadar isyarat didapati terlalu rendah untuk mendapatkan penentukuran RefSpadManagement yang tepat. Pastikan persediaan selaras dengan cadangan ST. |
| -30 | VL53LX_WARNING_REF_SPAD_CHAR_RATE_TO O_LOW | Amaran: Bilangan spad didapati terlalu rendah untuk mendapatkan penentukuran offset yang tepat. Pastikan persediaan selaras dengan cadangan ST. |
| -31 | VL53LX_WARNING_OFFSET_CAL_MISSING_SA MPLES | Amaran berlaku semasa penentukuran mengimbangi. Pastikan persediaan selaras dengan cadangan ST. |
| -32 | VL53LX_WARNING_OFFSET_CAL_SIGMA_TOO_ HIGH | |
| -33 | VL53LX_WARNING_OFFSET_CAL_RATE_TOO_HI GH | |
| -34 | VL53LX_WARNING_OFFSET_CAL_SPAD_COUNT_TOO_LOW | |
| -38 | VL53LX_WARNING_XTALK_MISSING_SAMPLES | Amaran berlaku semasa penentukuran crosstalk. Pastikan persediaan selaras dengan cadangan ST. |
| -41 | VL53LX_ERROR_NOT_IMPLEMENTED | Fungsi yang dipanggil tidak dilaksanakan |
Sejarah semakan
| tarikh | Versi | Perubahan |
| 28-Sep-2020 | 1 | Keluaran awal |
| 02-Dis-2021 | 2 | Mengemas kini struktur yang dikembalikan dalam Bahagian 6.2.3 Mendapatkan hasil penentukuran crosstalk |
| 03-Jun-2022 | 3 | Bahagian 3.1 Pemandu kosong: menambah nota mengenai penentukuranBahagian 5.4 Pengesanan comot kaca penutup: menambah nota mengenai pembetulan comot |
NOTIS PENTING – BACA DENGAN TELITI
STMicroelectronics NV dan anak syarikatnya (“ST”) berhak untuk membuat perubahan, pembetulan, penambahbaikan, pengubahsuaian dan penambahbaikan pada produk ST dan/atau pada dokumen ini pada bila-bila masa tanpa notis. Pembeli hendaklah mendapatkan maklumat terkini berkaitan produk ST sebelum membuat pesanan. Produk ST dijual menurut terma dan syarat jualan ST yang ada pada masa penerimaan pesanan.
Pembeli bertanggungjawab sepenuhnya untuk pilihan, pemilihan dan penggunaan produk ST dan ST tidak bertanggungjawab untuk bantuan permohonan atau reka bentuk produk pembeli.
Tiada lesen, nyata atau tersirat, kepada mana-mana hak harta intelek diberikan oleh ST di sini.
Jualan semula produk ST dengan peruntukan yang berbeza daripada maklumat yang dinyatakan di sini akan membatalkan sebarang waranti yang diberikan oleh ST untuk produk tersebut. ST dan logo ST adalah tanda dagangan ST. Untuk maklumat tambahan tentang tanda dagangan ST, rujuk kepada www.st.com/trademarks. Semua nama produk atau perkhidmatan lain adalah hak milik pemilik masing-masing.
Maklumat dalam dokumen ini menggantikan dan menggantikan maklumat yang dibekalkan sebelum ini dalam mana-mana versi terdahulu dokumen ini. © 2022 STMicroelectronics – Hak cipta terpelihara
Dokumen / Sumber
![]() |
ST VL53L3CX Masa Penderia Jarak Penerbangan [pdf] Manual Pengguna VL53L3CX Masa Penderia Jarak Penerbangan, VL53L3CX, Masa Penderia Jarak Penerbangan, Penderia Jarak Penerbangan, Penderia Jarak |




