VL53L5CX 程式架構與移植

前言

有別於傳統 IR 感測器,VL53L5CX 採用 ST 最新一代的直接 ToF 技術,無論目標顏色和反射情況為何,都能達到絕對距離量測。它提供長達 400 cm 的準確測距,並能高速運作 (60 Hz),是目前市面上最快的多區域小型 ToF 感測器。

硬體接線

這邊因ST官方資料還蠻齊全的,針對幾個特點注意事項說明即可

這邊VL53L5線路部分基本上大多為電源與地線,主要通訊部分2 pin I2C與INT 還有一PIN GPIO output(Ln)去控制

這邊下載官方範例中可以看到定義腳位有點多,是因為這邊把左右側的小板也遇設上去

軟體移植

軟體部分可先下載STSW-IMG023,下載完成後如下圖

主要會使用到的為VL53L5CX_ULD_API與Platform,這邊官方很貼心,讓需要移植至不同平台開發者方便使用針對Platform這個資料夾中把該平台的I2C Bus Lib設定好即可使用

未定義

ST sample code已定義

如果單純只是ST 不同MCU移植可以直接拿取CubeIDE_F401RE_Example裡面Platform檔案直接覆蓋
這邊僅移植至不同ST MCU上把對應Code直接搬移即可使用

但這邊會發現解析度只有4*4需要改成8*8解析度可以在code上增加

status =vl53l5cx_set_resolution(&Dev, VL53L5CX_RESOLUTION_8X8);

其中

#define VL53L5CX_RESOLUTION_4X4			((uint8_t) 16U)
#define VL53L5CX_RESOLUTION_8X8			((uint8_t) 64U)

X-Talk CAL

這邊範例並沒有針對Offset與X-Talk寫上去,流程圖如下
只要在Ranging前把Xtalk數值抓出來即可並附加上去即可

	printf("Running Xtalk calibration...\n");

	status = vl53l5cx_calibrate_xtalk(&Dev, 3, 4, 600);
	if(status)
	{
		printf("vl53l5cx_calibrate_xtalk failed, status %u\n", status);
		return status;
	}else
	{
		printf("Xtalk calibration done\n");

		/* Get Xtalk calibration data, in order to use them later */
		status = vl53l5cx_get_caldata_xtalk(&Dev, xtalk_data);

		/* Set Xtalk calibration data */
		status = vl53l5cx_set_caldata_xtalk(&Dev, xtalk_data);
	}

Leave a Comment

Your email address will not be published. Required fields are marked *

Shopping Cart