5 posts / 0 new
Last post
lisir
Offline
Last seen:1 year 9 months ago
加入:2018-09-21 03:07
怎么使用SDK的I2C驱动配置多个I2C设备

最近在做一个DA14583平台的项目,项目里用到了多个I2C设备,对于官方给的Demo里面的函数i2c_eeprom_init只能初始化一个从设备的地址,对于多个I2C设备的地址该怎么初始化呢?这个初始化的函数应该放在哪一块?为了节省IO口,多个I2C设备能挂在同一条I2C总线上吗,就是只用两个IO映射SDA和SCL,然后所有I2C设备都挂在这两个io口上,还是必须用多个IO口,一个设备对应两个IO。在扩展睡眠模式下,使用app_easy_timer能够周期性依次读取I2C设备数据吗?

Device:
CYibin
Offline
Last seen:4 months 2 weeks ago
Staff
加入:2017-12-14 02:48
你好,

你好,

关于你的问题中,可以确定的是:

1. IIC 总线上可以挂多个设备,然后通过不同的从机地址访问不同的设备。即可以将多个设备都接到两个 IO 口上。

2. app_easy_timer 启动之后,可以将系统从休眠中唤醒并执行程序。需要注意的是,在 timer callback 中不能有阻塞。

3. 访问不同设备,给寄存器 I2C_TAR_REG 写不同的值即可。

lisir
Offline
Last seen:1 year 9 months ago
加入:2018-09-21 03:07
您可以给一份da14580与多个I2C设备通信的例子吗

您可以给一份da14580与多个I2C设备通信的例子吗

CYibin
Offline
Last seen:4 months 2 weeks ago
Staff
加入:2017-12-14 02:48
Hello lisir,

Hello lisir,

//www.xmece.com/products/da14585-iot-multi-sensor-d...

上面链接的 IoT 工程,是基于 585 开发的。有多个 IIC 通讯的功能。

585 和 580 芯片架构,SDK 架构类似,所以这个工程也有比较大的参考价值

lisir
Offline
Last seen:1 year 9 months ago
加入:2018-09-21 03:07
您好,继上次的问题

您好,继上次的问题,在初始化一个I2C设备后并使用SDK中的驱动函数对I2C设备进行了读写,I2C设备工作正常,但是再对下一个I2C设备进行初始化并读写时出现不能正常写入设备地址的现象,两个设备单独均可以使用SDK中的I2C驱动函数正常工作,在您的上次回答之中,您说对I2C_TAR_REG写入设备地址就能实现读写,但是这个设备地址根本写不对,不知道问题出在哪里。