ST / X_NUCLEO_53L0A1

Dependencies:   ST_INTERFACES X_NUCLEO_COMMON

Dependents:   ConcorsoFinal HelloWorld_IHM01A1 m3pi_BT m3pi_LIDAR ... more

Fork of X_NUCLEO_53L0A1 by ST Expansion SW Team

X-NUCLEO-53L0A1 Proximity Sensor Expansion Board Firmware Package

Introduction

This firmware package includes Component Device Drivers and the Board Support Package for STMicroelectronics' X-NUCLEO-53L0A1 Proximity sensor expansion board based on VL53L0X.

Firmware Library

Class X_NUCLEO_53L0A1 is intended to represent the Proximity sensor expansion board with the same name.

The expansion board provides support for the following components:

  1. on-board VL53L0X proximity sensor,
  2. up to two additional VL53L0X Satellites,
  3. on-board 4-digit display

It is intentionally implemented as a singleton because only one X-NUCLEO-VL53L0A1 may be deployed at a time in a HW component stack. In order to get the singleton instance you have to call class method `Instance()`, e.g.:

// Sensors expansion board singleton instance
static X_NUCLEO_53L0A1 *board = X_NUCLEO_53L0A1::Instance(device_i2c, A2, D8, D2);

Example Applications

The library and sample application code were tested against mbed revision 143, dated 26th May 2017.

Revision:
20:cb95ef8a3508
Parent:
15:44e6c9013bff
--- a/Components/VL53L0X/vl53l0x_class.cpp	Tue Aug 08 14:41:03 2017 +0000
+++ b/Components/VL53L0X/vl53l0x_class.cpp	Fri Dec 15 14:13:04 2017 +0000
@@ -4008,6 +4008,12 @@
     return status;
 }
 
+VL53L0X_Error VL53L0X::vl53l0x_get_device(VL53L0X_DEV *dev)
+{
+   *dev = _device;
+   return VL53L0X_ERROR_NONE;
+}    
+
 VL53L0X_Error VL53L0X::vl53l0x_perform_ref_calibration(VL53L0X_DEV dev, uint8_t *p_vhv_settings,
         uint8_t *p_phase_cal)
 {
@@ -5205,6 +5211,7 @@
     FixPoint1616_t signalLimit = (FixPoint1616_t)(0.25 * 65536);
     FixPoint1616_t sigmaLimit = (FixPoint1616_t)(18 * 65536);
     uint32_t timingBudget = 33000;
+//    uint32_t timingBudget = 20*1000;
     uint8_t preRangeVcselPeriod = 14;
     uint8_t finalRangeVcselPeriod = 10;
 
@@ -5261,13 +5268,13 @@
         /* Ranging configuration */
 //*
 //        switch(rangingConfig) {
-//        case LONG_RANGE:
-        signalLimit = (FixPoint1616_t)(0.1 * 65536);
-        sigmaLimit = (FixPoint1616_t)(60 * 65536);
-        timingBudget = 33000;
-        preRangeVcselPeriod = 18;
-        finalRangeVcselPeriod = 14;
-        /*        	break;
+/*             case LONG_RANGE:
+                    signalLimit = (FixPoint1616_t)(0.1 * 65536);
+                    sigmaLimit = (FixPoint1616_t)(60 * 65536);
+                    timingBudget = 33000;
+                    preRangeVcselPeriod = 18;
+                    finalRangeVcselPeriod = 14;
+                	break;
                 case HIGH_ACCURACY:
         			signalLimit = (FixPoint1616_t)(0.25*65536);
         			sigmaLimit = (FixPoint1616_t)(18*65536);
@@ -5405,7 +5412,3 @@
 
 /******************************************************************************/
 
-
-
-
-