使用da14531读取多个i2c设备

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
7个职位/ 0个新职位
最后发表
sripathi
离线
最后看到:7个月1个星期前
加入:12点45分的2020-03-18
使用da14531读取多个i2c设备

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

/ /配置结构I2C静态常量i2c_cfg_t i2c_cfg = {.clock_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
离线
最后看到:1周2天前
工作人员
加入:2018-02-08 11:03
嗨sripathi,

嗨sripathi,

谢谢你的问题。因此,如果我能正确理解,您的要求是将2个I2C从服务器连接到同一总线。我的理解正确吗?

谢谢,PM_Dialog

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

你好,

是的

sripathi
离线
最后看到:7个月1个星期前
加入:12点45分的2020-03-18
你能让我们知道吗

你能让我们知道任何工作的例子与两个i2c奴隶。谢谢

PM_Dialog
离线
最后看到:1周2天前
工作人员
加入:2018-02-08 11:03
嗨sripathi,

嗨sripathi,

谢谢你的解释。没有这样的例子,它不可能与2 I2C从服务器同时和在同一总线上交互。你应该在同一时间只与一个slave进行交互。

谢谢,PM_Dialog

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

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

不幸的是,i2c_set_target_address函数只能在i2c外设被破坏并由i2c_init用于设置外设时调用。

Br J

PM_Dialog
离线
最后看到:1周2天前
工作人员
加入:2018-02-08 11:03
嗨jsageder,

嗨jsageder,

谢谢你的评论和反馈!

谢谢,PM_Dialog