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.

[参考译文] TMS570LC4357:I2C无法使CNT寄存器减量或ARDY变为活动状态。

Guru**** 2468570 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1094456/tms570lc4357-i2c-cannot-get-cnt-register-to-decrement-or-ardy-to-come-active

部件号:TMS570LC4357

附加代码在访问连接的EEPROM (CAT24C512-D)时工作正常。    我可以写入/读取,但只能使用带辅助,因为我无法使CNT寄存器减量,从而影响状态寄存器(我从未看到ARDY处于活动状态)。  我对线路进行示波,信号良好(示波器解码器显示正确的数据。

我在这里做错了什么?  为什么我不能让CNT减量?e2e.ti.com/.../eeDrv.ce2e.ti.com/.../eeDrv.h

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

    主中继器是否在重复模式下接收? 如果rm=1 (重复模式),则不使用cnt。

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

    我的RM=0。

    此外,I2CCNT的描述显示“注意:当RM设置为1时,ICCNT是一个“不在乎”??

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

    Mark,您好!

    I2CCNT是一个16位寄存器,用于指示I2C模块配置为发射器时要传输多少数据字节,或配置为主接收器时要接收多少数据字节。

    在重复模式(RM =1)中,不使用I2CCNT。  ARdy设置在从I2CDXR传输的每个字节的末尾

    在非重复模式(RM =0)中:如果I2CMDR中的STP =0,则当数据计数器倒计数为0时,将设置ARDY位。 如果STP =1,则ARDY不受影响(相反,当计数器达到0时,I2C模块生成停止条件)。

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

    好的,感谢您的回复,但我现在回到了开始。    我一直都有RM=0,但我从未看到I2CCNT递减(因此也没有ARDY),即使我正在传输有效的I2C数据包。

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

    Mark,您好!

    您是否已解决I2CCNT问题?