ST意法半导体
直播中

周煌煦

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

VL53L1X初始化序列后SW待机消耗的问题如何处理?

大家好,
我用我的微控制器和一个 VL53L1X-SATEL 开发了一块威廉希尔官方网站 板——我的 X-NUCLEO-53L1A1 套件随附的分线板。我为没有稳压器的威廉希尔官方网站 板使用 3v 电池,为 I2C 线路(100khz)使用 1K 上拉电阻。
我使用 VL53L1X ULD API 文件进行初始化和一次测距测量。在 VL53L1X 初始化(SetDistanceMode=short,SettimingBudgetInMs = SetInterMeasurementInMs = 20mS)后,我的 CPU 进入睡眠模式,电流消耗为 6uA,每 30 秒我的 CPU 唤醒开始测量(StartRanging,CheckForDataReady,GetDistance,ClearInterrupt,StopRanging)消耗=14mA,Distance 值正常,再次进入 Sleep。
一切如我所料,但每次更换电池或重置 CPU 时,如果 VL53L1X 前面没有目标,在初始化阶段(睡眠模式)后电流消耗为 3mA(预期 6uA)每 30 秒 CPU 唤醒发送一次良好的距离测量并再次以 3mA 进入睡眠状态。如果我在初始化阶段(睡眠模式)将目标放在 0 到 50cm 之间,我得到 6uA。我已经尝试使用短距离和长距离以及 20mS&100mS&500mS 进行初始化问题仍然存在:如果没有目标,则 SW 待机中的消耗为 3mA。如果我用 XSHUT 引脚强制 HW 待机,功耗会恢复到 6uA,但我会丢失我的配置。
请帮我解决这个问题
初始化:
         if(!VL53L1X_GetID() && (Event.Log[0]==0xEA)) { // 测试传感器是否存在
            同时(传感器状态==0){
               status = VL53L1X_BootState(VL53L1X_ADDR_I2C, &sensorState);
               事件.timer_1mS = 2; while(Event.timer_1mS);
            }
            // 必须调用此函数以使用默认设置初始化传感器
            status = VL53L1X_SensorInit(VL53L1X_ADDR_I2C);
            status = VL53L1X_SetDistanceMode(VL53L1X_ADDR_I2C, 1); // 1=短,2=长
            status = VL53L1X_SetTimingBudgetInMs(VL53L1X_ADDR_I2C, 20); // 小姐
            status = VL53L1X_SetInterMeasurementInMs(VL53L1X_ADDR_I2C, 20); // 小姐
       }
一次射击测距(每 30 秒):
醒来...
            status = VL53L1X_StartRanging(VL53L1X_ADDR_I2C);
            数据就绪=0;
            while (dataReady == 0){
               status = VL53L1X_CheckForDataReady(VL53L1X_ADDR_I2C_1, &dataReady);
               事件.timer_1mS = 2; while(Event.timer_1mS);
            }
            status = VL53L1X_GetRangeStatus(VL53L1X_ADDR_I2C_1, &RangeStatus);
            status = VL53L1X_GetDistance(VL53L1X_ADDR_I2C_1, &Distance1);
            status = VL53L1X_ClearInterrupt(VL53L1X_ADDR_I2C_1);
            status = VL53L1X_StopRanging(VL53L1X_ADDR_I2C_1);







回帖(1)

李博

2023-1-3 14:14:11
在 Dominique 的帮助下,我们找到了解决方案。问题是:
当我使用你的 VL53L1X 分线板时,在你的原理图中,中断线有一个上拉电阻 R4=1K,有时配置序列让中断线状态为“1”或“0”,因此 3volts/1K = 3mA。我删除了上拉,现在一切都很好。
举报

更多回帖

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