目的: setAddress在i2c从器件软件方面的应用。
示例:具有相同地址0x29的3个传感器。通过一些方法sensor1设置0x22,sensor2设置0x25,sersor3设置0x28。
信息:我有三个相同的i2c地址的类似设备。i2c从设备是VL53L0X (TOF)传感器,带有BeagleBone黑色debian。通信通过sys/ioctl.h和linux/i2c-dev.h进行。
示例代码:
#include
#include
ioctl(open("/dev/i2c-2", O_RDWR), I2C_SLAVE, 0x29);谢谢你!!
发布于 2021-12-08 08:39:46
VL53L0X的数据表,第18-19页,指定设备的I2C地址可以通过简单的写入操作更改到设备中的适当寄存器。请注意,在您的示例中,I2C地址0x29与数据表中的0x52相同,但是数据表地址值被移动一位,以便在最不重要的位位置包含I2C读/写位。
但是,由于多个VL52L0X设备最初都将具有相同的地址,因此必须有一种方法可以独立地控制每个VL53L0X芯片的复位信号。必要的过程在用于程4846的VL53L0X应用程序说明中描述。总之,应该有两个GPIO引脚分别连接到每个VL53L0X芯片上,直接或通过一些GPIO扩展芯片。您需要检查您的硬件设计,以找出它们在其中的路由位置。
注册号在用于VL50L0X的C编程API包中显示(免费,但需要注册一个有效的电子邮件地址)。在API包VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS包en.STSW-IMG005_v1.0.4.zip的文件VL53L0X_1.0.4/Api/core/inc/vl53l0x_device.h中查找D5。
https://unix.stackexchange.com/questions/655810
复制相似问题