Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
embedded_systems:experimentiersystem:vl53l0x-tof-sensor [2019-03-22 11:51] – angelegt mlammerichembedded_systems:experimentiersystem:vl53l0x-tof-sensor [2024-04-18 08:46] Urs Graf
Zeile 1: Zeile 1:
 ====== VL53L0X Time of Flight Sensor ====== ====== VL53L0X Time of Flight Sensor ======
  
-Der VL53L0X ist eine neue Generation von ToF Sensoren, die genaue Distanzmessungen bis 2m erlaubt.+Der [[ https://www.st.com/en/imaging-and-photonics-solutions/vl53l0x.html | VL53L0X ]] ist eine neue Generation von ToF Sensoren, die genaue Distanzmessungen bis 2m erlaubt.
  
-===== Verwendung mit dem MPC555 ===== 
  
-Der VL53L0X kann mit dem MPC55 verwendet werden. Es wird jedoch ein zweiter Mikrocontroller zum Anschluss an diesen benötigt. Die NTB stellt eine fertige Firmware für das [[https://www.st.com/en/evaluation-tools/nucleo-l432kc.html | Nucleo STM32L432KC Board]] zur Verfügung. **Es können maximal 4 Sensoren angesteuert werden.**+===== Verwendung mit Python unter Linux auf dem Zynq7000 =====
  
-==== Verdrahtung ====+Der VL53L0X wird direkt an eine I2C-Schnittstelle angeschlossen.  
 +^ Zynq7000 ^ VL53L0X          ^ 
 +| MIO10    | SCL              | 
 +| MIO11   | SDA              | 
 +| 3.3V    | Vcc | 
 +| GND         | GND              | 
 + 
 +===== Verwendung mit Deep auf dem MPC555 / Zynq7000 ===== 
 + 
 +Der VL53L0X kann mit dem MPC55 und dem Zynq7000 verwendet werden. Es wird jedoch ein zweiter Mikrocontroller zum Anschluss an diesen benötigt. Die OST stellt eine fertige Firmware für das [[https://www.st.com/en/evaluation-tools/nucleo-l432kc.html | Nucleo STM32L432KC Board]] zur Verfügung. **Es können maximal 4 Sensoren angesteuert werden.** 
 + 
 +==== Verdrahtung MPC555 ====
  
 ^ MPC555 ^ STM32L432KC ^ ^ MPC555 ^ STM32L432KC ^
Zeile 16: Zeile 26:
 | GND    | GND         | | GND    | GND         |
  
-Anmerkung: die relevanten Pins des STM32L432KC sind 5V tolerant, es sind als keine Pegelwandler nötig.+==== Verdrahtung Zynq7000 ==== 
 + 
 +^ Zynq7000 ^ STM32L432KC ^ Funktion ^ 
 +| MIO 12   | PA1 (A1)    | CLK      | 
 +| MIO 11   | PA11 (D10)  | MISO     | 
 +| MIO 10   | PA7 (A6)    | MOSI     | 
 +| MIO 13   | PB0 (D3)    | CS       | 
 +| GND      | GND         | GND      | 
 + 
 +Anmerkung: die relevanten Pins des STM32L432KC sind 5V tolerant, es sind also keine Pegelwandler nötig.
  
 ^ STM32L432KC ^ VL53L0X          ^ ^ STM32L432KC ^ VL53L0X          ^
 | PA9 (D1)    | SCL              | | PA9 (D1)    | SCL              |
-| PA10 (D0)   DSA              |+| PA10 (D0)   SDA              |
 | PA3 (A2)    | XSHUT (Sensor 1) | | PA3 (A2)    | XSHUT (Sensor 1) |
 | PA4 (A3)    | XSHUT (Sensor 2) | | PA4 (A3)    | XSHUT (Sensor 2) |
Zeile 39: Zeile 58:
  
 Wird das Nucleo STM32L432KC Board per USB mit dem PC verbunden, meldet es sich als USB Massenspeicher an. Die Firmware kann einfach in Form der .bin Datei auf das Board kopiert werden. Das Board durchläuft automatisch einen Reset und ist nun programmiert. Wird das Nucleo STM32L432KC Board per USB mit dem PC verbunden, meldet es sich als USB Massenspeicher an. Die Firmware kann einfach in Form der .bin Datei auf das Board kopiert werden. Das Board durchläuft automatisch einen Reset und ist nun programmiert.
 +
 +Die Firmware kann {{.:vl53l0x_2.bin | hier }} bezogen werden.
  
 ==== Verwendung in Deep ==== ==== Verwendung in Deep ====
  
-Der Deep Treiber ist unter ch.ntb.inf.deep.runtime.mpc555.driver.VL53L0X zu finden.+Der Deep Treiber ist unter ''org.deepjava.runtime.mpc555.driver.VL53L0X'' oder ''org.deepjava.runtime.zynq7000.driver.VL53L0X'' zu finden.
  
 === Initialisierung === === Initialisierung ===
Zeile 72: Zeile 93:
  
 <code java> <code java>
 +// Nur MPC555
 if (tof.resetDone()) if (tof.resetDone())
 { {
-  data = tof.read();+  short[] data = tof.read();
 } }
 </code> </code>
  
-=== reset ===+=== Reset (nur MPC555) ===
  
 Die reset() Methode veranlasst einen Reset die STM32L432KC und der Vl53L0X Sensoren. Die reset() Methode veranlasst einen Reset die STM32L432KC und der Vl53L0X Sensoren.
Zeile 84: Zeile 106:
 ==== Debugging / Troubleshooting ==== ==== Debugging / Troubleshooting ====
  
-Das Nucleo STM32L432KC bietet eine virtuelle serielle Schnittstelle über USB, wenn es mit einem PC verbunden ist. Über diese werden Debug Informationen über den internen Zustande des Mirkocontrollers sowie die Messwerte ausgegeben. Funktionert die Kommunikatio nicht korrekt, kann sich hier ein Überblick verschafft werden, wo die Ursache ligen könnte.+Das Nucleo STM32L432KC bietet eine virtuelle serielle Schnittstelle über USB, wenn es mit einem PC verbunden ist. Über diese werden Debuginformationen über den internen Zustande des Mirkocontrollers sowie die Messwerte ausgegeben. Funktioniert die Kommunikation nicht korrekt, kann sich hier ein Überblick verschafft werden, wo die Ursache liegen könnte.
  
-Des Weiteren leuchet LD3 (grüne LED unten link, wenn USB Port oben), wenn der STM32L432KC auf einen SPI Transfer wartet und erlischt während dem Messvorgang.+Des Weiteren leuchet LD3 (grüne LED unten links, wenn USB Port oben), wenn der STM32L432KC auf einen SPI Transfer wartet und erlischt während dem Messvorgang.
 Diese sollte im normalen Betrieb blinken. Diese sollte im normalen Betrieb blinken.
 +Das GPIO Signal der LED ist auf Pin D13 am Board zu finden.