ST意法半导体
直播中

周煌煦

7年用户 1033经验值
私信 关注
[问答]

为什么无法在VL53L1上进行测距和多区域扫描?

我有一个传感器部件号 VL53L1CBV0FY/1 我使用驱动程序版本 6.6.1。
GetDeviceInfo 报告:
名称:VL53L1 cut1.0
型号:VL53L1
产品类型:0
主要版本:1
次要版本:0
我的初始化顺序是这样的:
  • status += VL53L1_WaitDeviceBooted(Dev);
  • status += VL53L1_DataInit(Dev);
  • status += VL53L1_StaticInit(Dev);
  • status += VL53L1_SetPresetMode(Dev, VL53L1_PRESETMODE_RANGING);
  • status += VL53L1_SetDistanceMode(Dev, VL53L1_DISTANCEMODE_LONG);
  • status += VL53L1_SetMeasurementTimingBudgetMicroSeconds(16 * 1000);status += VL53L1_StartMeasurement(Dev);
我的查询序列是这样的:
  •   VL53L1_ClearInterruptAndStartMeasurement(Dev);
  •   VL53L1_WaitMeasurementDataReady(Dev);
  •   VL53L1_GetMultiRangingData(Dev, &MultiRangingData);
但返回的数据完全是假的:
  • MultiRangingData.DmaxMilliMeter: 0
  • MultiRangingData.EffectiveSpadRtnCount 24408
  • MultiRangingData.HasXtalkValueChanged: 0
  • MultiRangingData.NumberOfObjectsFound: 3
  • MultiRangingData.RecommendedDistanceMode: 3
  • MultiRangingData.RoiNumber: 0
  • MultiRangingData.RoiStatus: 2
  • MultiRangingData.StreamCount: 7
  • MultiRangingData.RangeData[0].AmbientRateRtnMegaCps: 3072
  • MultiRangingData.RangeData[0].ExtendedRange: 0
  • MultiRangingData.RangeData[0].RangeFractionalPart: 0
  • MultiRangingData.RangeData[0].RangeMaxMilliMeter: -1791
  • MultiRangingData.RangeData[0].RangeMilliMeter: -2015
  • MultiRangingData.RangeData[0].RangeMinMilliMeter: -2075
  • MultiRangingData.RangeData[0].RangeQualityLevel: 50
  • MultiRangingData.RangeData[0].RangeStatus: 4
  • MultiRangingData.RangeData[0].SigmaMilliMeter: 99840
  • MultiRangingData.RangeData[0].SignalRateRtnMegaCps: 1575936
  • MultiRangingData.RangeData[1].AmbientRateRtnMegaCps: 3072
  • MultiRangingData.RangeData[1].ExtendedRange: 0
  • MultiRangingData.RangeData[1].RangeFractionalPart: 0
  • MultiRangingData.RangeData[1].RangeMaxMilliMeter: 622
  • MultiRangingData.RangeData[1].RangeMilliMeter: 612
  • MultiRangingData.RangeData[1].RangeMinMilliMeter: 612
  • MultiRangingData.RangeData[1].RangeQualityLevel: 50
  • MultiRangingData.RangeData[1].RangeStatus: 0
  • MultiRangingData.RangeData[1].SigmaMilliMeter: 2381824
  • MultiRangingData.RangeData[1].SignalRateRtnMegaCps: 7680
  • --------------------------------------------------------
  • MultiRangingData.DmaxMilliMeter: 0
  • MultiRangingData.EffectiveSpadRtnCount 24408
  • MultiRangingData.HasXtalkValueChanged: 0
  • MultiRangingData.NumberOfObjectsFound: 3
  • MultiRangingData.RecommendedDistanceMode: 3
  • MultiRangingData.RoiNumber: 0
  • MultiRangingData.RoiStatus: 2
  • MultiRangingData.StreamCount: 8
  • MultiRangingData.RangeData[0].AmbientRateRtnMegaCps: 6144
  • MultiRangingData.RangeData[0].ExtendedRange: 0
  • MultiRangingData.RangeData[0].RangeFractionalPart: 0
  • MultiRangingData.RangeData[0].RangeMaxMilliMeter: -2801
  • MultiRangingData.RangeData[0].RangeMilliMeter: -2807
  • MultiRangingData.RangeData[0].RangeMinMilliMeter: -2807
  • MultiRangingData.RangeData[0].RangeQualityLevel: 50
  • MultiRangingData.RangeData[0].RangeStatus: 4
  • MultiRangingData.RangeData[0].SigmaMilliMeter: 95744
  • MultiRangingData.RangeData[0].SignalRateRtnMegaCps: 1476096
  • MultiRangingData.RangeData[1].AmbientRateRtnMegaCps: 6144
  • MultiRangingData.RangeData[1].ExtendedRange: 0
  • MultiRangingData.RangeData[1].RangeFractionalPart: 0
  • MultiRangingData.RangeData[1].RangeMaxMilliMeter: -1654
  • MultiRangingData.RangeData[1].RangeMilliMeter: -1654
  • MultiRangingData.RangeData[1].RangeMinMilliMeter: -1665
  • MultiRangingData.RangeData[1].RangeQualityLevel: 50
  • MultiRangingData.RangeData[1].RangeStatus: 4
  • MultiRangingData.RangeData[1].SigmaMilliMeter: 1776128
  • MultiRangingData.RangeData[1].SignalRateRtnMegaCps: 9216
  • --------------------------------------------------------
传感器由 3V3 供电,代码中定义了 2V8。
请帮忙?








回帖(1)

萧昕腾

2023-1-11 14:43:37
查看 MCU 上的手册。有很多 MCU 限制 I2C 的长度,因为它可以节省硬件空间。63 听起来像是这些限制之一。
进入 platoform.c 中的 write_multi() 函数并将长写入分解为更小的块。这需要一点编码。
但这并不难。
在那之后,我敢打赌芯片会设置得更好。
我们实际上对长 I2C 进行了辩论,但不想基于一些不能进行长写入的 MCU 来减慢所有 MCU 的启动过程。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分