This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM3358:AM3358 I2C 总线清零操作

Guru**** 2540720 points
Other Parts Discussed in Thread: AM3358

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/952125/am3358-am3358-i2c-bus-clear-operation

器件型号:AM3358

您好!

在 AM3358技术参考手册的21.3-8节中、该注释指出当 SCL 一直处于低电平时、支持总线清零操作。

由于 I2C 状态寄存器中没有指示 SCL 或 SDA 卡在低电平状态的状态位、那么如何唤醒这个总线清零操作?

此外、I2C 状态寄存器没有用于 I2C 事务超时事件的位、那么如何监控超时?

谢谢、

Peng、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您使用的是 RTOS 还是嵌入式 Linux?

    谢谢、

    最大

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Max、

    我们使用的是 Linux。  TI SDK 为6.0。

    谢谢、

    Peng

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Peng:

    我已经为这个主题指派了一名 I2C 嵌入式 Linux 专家、您应该很快会听到他的声音。

    谢谢、

    最大

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Peng、

    Linux 驱动程序 i2c-omap.c 应负责实现总线清除操作。 如果 OMAP-i2c_wait_for_bb ()超时、它会调用 OMAP-i2c_recover 总线以尝试恢复总线。

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Nick、

    此 OMAP-i2c_wait_for_bb()无法处理一个读取事务中间的忙状态。

    我们观察到:CPU AM3358发出设置 了写入位的从器件(电池充电器)地址,并设置要读回的寄存器地址。 I2C 从设备对 CPU 进行肯定的确认,但随后将 SCL 拉至低电平的时间超过40ms (超过35mS 的 SMBus 超时时间),然后释放 ICL 信号。 CPU 继续之前的读-在读取位被置位时发出从地址、而不是重新开始传输- --在写入位被置位时发出从地址、发送要读取的地址、在读取位被置位时发出从地址、读取内容。

    那么 、在一个事务的中间是否有任何修补程序或代码句柄、例如 SMBus 超时?

    谢谢、