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.
我使用的是连接到主机的串行器949、另一侧使用的是948。 我读取寄存器 I2C_CONTRAING_2以检查 FORWARE_CHANGE_S equation_ERROR 位、在极少数情况下、解串器会拉低 SCL、除了复位之外、不会从该位恢复。 BCC_Watchdog_control 寄存器具有默认值、I2C_CONTRAL_2寄存 器具有以下配置:I2C_BUS_TIMER_SPEED UP = 1、I2C_BUS_TIMER_DISABLE = 0。 I2C 看门狗将处理该用例位、但它不会处理该位。 是否有任何方法可以处理此情形?
尊敬的 Tomislav:
您是否说过 SCL 引脚会下拉一次? 或者、当您尝试读取 I2C_CONTINL_2的寄存器时、它始终发生。 您能否检查您是否已在两个器件949和948之间建立链路? 您的主设备似乎正在将其下拉。 如果我看到相同的症状、我将在结尾处检查。
Aaron
我在949和948之间建立了链路。 大部分时间一切都正常、但当我尝试读取解串器寄存器时、我没有从949获得 ACK (非常罕见)。 然后等待一段时间(超时)并尝试终止发送停止位的传输、但由于 SCL 被下拉、这种情况没有变化、只有复位才是解决方案。 也许我们在硬件方面遇到了一些问题、但我想知道解串器处理情况下的 I2C 看门狗何时会将 SCL 线保持在较长(拉伸)的位置?
尊敬的 Tomislav:
您可以在总线上捕获示波器照片吗?
Aaron
尊敬的 Tomislav:
如果您有机会捕获 I2C 事务、只需再次与您联系。
Aaron
尊敬的 Tomislav:
由于您没有回答、我假设您解决了问题。
Aaron
尊敬的 Aron:
是的、问题已解决。 您可以关闭该问题。
感谢您的支持!
此致、
Tomislav
尊敬的 Tomislav:
我很高兴你能够解决这个问题。 您能否解释一下您为使其正常工作所做的工作? 谢谢你。
Aaron