1 低功耗模式的验证和连接
根据系统的接线图

利用跳线连接万用表的电流档测量电路,从而得出功耗对比

2 高分辨率模式的功耗对比
根据上述的GUI图形化工具的设定,可以选择在高分辨率和低分辨率分别测试,在连续模式和自动模式下分布测试功耗。完全没有启动前,测量芯片供电电压3.3V,电流6.9mA。
启动传感器监测后,进入连续模式8x8的分辨率

测得电流为34.3mA
进入自动模式下测量

测量为16.8mA

3 低分辨率模式的功耗对比

测得电流为34.7mA

进入自动模式下测量为11.1mA
对应于参考电压和内核电压供电的电流非常小在0.05mA及以下,可以忽略。
4 系统集成的验证
4.1 导入范例代码

编译运行成功

连接串口,可以读出距离的测量值

int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_I2C1_Init();
MX_USART2_UART_Init();
Dev.platform.address = VL53L8CX_DEFAULT_I2C_ADDRESS;
VL53L8CX_Reset_Sensor(&(Dev.platform));
status = vl53l8cx_is_alive(&Dev, &isAlive);
if(!isAlive)
{
printf("VL53L8CX not detected at requested address (0x%x)\n", Dev.platform.address);
return 255;
}
printf("Sensor initializing, please wait few seconds\n");
status = vl53l8cx_init(&Dev);
status = vl53l8cx_set_ranging_frequency_hz(&Dev, 2); // Set 2Hz ranging frequency
status = vl53l8cx_set_ranging_mode(&Dev, VL53L8CX_RANGING_MODE_CONTINUOUS); // Set mode continuous
printf("Ranging starts\n");
status = vl53l8cx_start_ranging(&Dev);
if (is_interrupt) {
get_data_by_interrupt(&Dev);
}
else {
get_data_by_polling(&Dev);
}
}
5小结
可以看到这个ToF传感器可以工作在低功耗下和连续模式,取得的不同功耗。
最低6.9mA,工作时34mA左右,低功耗下11mA左右。
范例测试,需要适用专用的ULP API就可以直接启动传感器的读取和计算,使用非常简便 |