使用da14531读取多个i2c设备

了解更多常见问题教程

7个帖子/ 0个新
最后发表
sripathi
离线
最后看到:两个月两个星期前
加入:12点45分的2020-03-18
使用da14531读取多个i2c设备

我们正在使用da14531开发套件,并尝试与两个i2c传感器、azotec trackpad模块和mcp23017 gpio扩展器通信。我们已经为模块编写了驱动程序,并且能够与模块独立通信,然而,当我们同时尝试与两个模块通信时,我们面临一个问题。在我们的代码中,我们将i2c配置结构声明为

// I2C静态的配置结构const i2c_cfg_t i2c_cfg = {.clock_cfg. cfg;ss_hcnt = I2C_SS_SCL_HCNT_REG_RESET, .clock_cfg。ss_lcnt = I2C_SS_SCL_LCNT_REG_RESET, .clock_cfg。fs_hcnt = I2C_FS_SCL_HCNT_REG_RESET, .clock_cfg。fs_lcnt = I2C_FS_SCL_LCNT_REG_RESET, .restart_en = I2C_RESTART_ENABLE, .speed = I2C_SPEED_FAST, .mode = I2C_MODE_MASTER, .addr_mode = I2C_ADDRESSING_7B, .address = MCP23017_ADDRESS, .tx_fifo_level = 1, .rx_fifo_level = 1,};

每次我们和i2c设备通信时我们就设置了这个功能

i2c_set_target_address (I2cdevice_ADDRESS);

试着和设备沟通。

您能否给我们提供一些如何同时与多个i2c设备通信的例子?我们讲了eeprom的例子,但事情还不清楚。非常感谢你的帮助。

PM_Dialog
离线
最后看到:15小时13分钟前
工作人员
加入:2018-02-08 11:03
嗨sripathi,

嗨sripathi,

谢谢你的问题。因此,如果我能正确理解的话,您的需求是将2 x I2C从机连接到同一总线。我的理解正确吗?

谢谢,PM_Dialog

sripathi
离线
最后看到:两个月两个星期前
加入:12点45分的2020-03-18
你好,是的

你好,

是的

sripathi
离线
最后看到:两个月两个星期前
加入:12点45分的2020-03-18
你能告诉我们吗

请您告诉我们任何有两个i2c slave的工作示例。谢谢

PM_Dialog
离线
最后看到:15小时13分钟前
工作人员
加入:2018-02-08 11:03
嗨sripathi,

嗨sripathi,

谢谢你的澄清。不存在这样的例子,并且不可能在同一总线上同时与2个I2C从站进行交互。你同一时间只能和一个奴隶互动。

谢谢,PM_Dialog

jsageder
离线
最后看到:2周23小时前
加入:2018-08-22 13:18
你好,

你好,
不确定它是否仍然相关,我通过创建一个i2c_target_select函数来解决这个问题,该函数使用一组新的参数重新初始化i2c外设(例如。不同的目标地址)。通信不是严格地同时发生,而是按顺序发生,一个传输一结束,另一个就开始了。

不幸的是,i2c_set_target_address函数只能在i2c外设被禁用时调用,并且由i2c_init用来设置外设。

Br J

PM_Dialog
离线
最后看到:15小时13分钟前
工作人员
加入:2018-02-08 11:03
嗨jsageder,

嗨jsageder,

谢谢你的评论和反馈!

谢谢,PM_Dialog