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.

[参考译文] TMS570LS1227:I2C 没有结束信号

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1168087/tms570ls1227-i2c-has-no-end-signal

器件型号:TMS570LS1227

大家好、

以下是客户提出的问题、可能需要您的帮助:

1) 1) 已在引脚多路复用器中选择 I2C 引脚:

2) 2)在 I2C 配置中、启用 I2C 引脚作为 I2C 功能:

3) 3)有一个外部2.2K 上拉电阻器。

4) 4)发送一个字节的数据后、START 信号由示波器进行监控、但不会监控 END 信号。 在1秒间隔后、当再次发送一个字节时、发现程序卡在

while (i2cIsStopDetected (i2cREG1)= 0);  

该函数的发送代码如下:  

void i2c_send_test(void)
{
     int32_t delay=0;
     /* Configure address of Slave to talk to */
    i2cSetSlaveAdd(i2cREG1, Slave_Address);

    /* Set direction to Transmitter */
    /* Note: Optional - It is done in Init */
    i2cSetDirection(i2cREG1, I2C_TRANSMITTER);


    /* Configure Data count */
    /* Note: Optional - It is done in Init, unless user want to change */
    i2cSetCount(i2cREG1, 1);

    /* Set mode as Master */
    i2cSetMode(i2cREG1, I2C_MASTER);

    /* Set Stop after programmed Count */
    i2cSetStop(i2cREG1);

    /* Transmit Start Condition */
    i2cSetStart(i2cREG1);

    /* Tranmit DATA_COUNT number of data in Polling mode */
    i2cSend(i2cREG1, 1, TX_Data_Master);

    /* Wait until Bus Busy is cleared */
    while(i2cIsBusBusy(i2cREG1) == true);

    /* Wait until Stop is detected */
    while(i2cIsStopDetected(i2cREG1) == 0);

    /* Clear the Stop condition */
    i2cClearSCD(i2cREG1);

    /* Simple Dealya before starting Next Block */
    /* Depends on how quick the Slave gets ready */
    for(delay=0;delay<1000000;delay++);

}

5) 5) 示波器捕获的波形信号如下:

6) 6) 仿真 I2C 的程序可以正确地从从 DS1339读取数据。  

您可以帮助检查此案例吗? 谢谢。

此致、

樱桃

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

    您好、Cherry、

    我正在处理您的问题、我将在本周一返回给您。

    --

    谢谢、此致、

    Jagadish。

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

    您好、Cherry、

    我验证了"i2c_send_test"函数中的代码、看起来不错、但我没有发现任何问题、我希望客户在 "i2c_send_test"函数之前调用"i2cInit"函数。

    我希望客户使用以下 i2c 引脚配置进行测试

    请让客户使用上述配置进行测试、并告诉我结果。

    --
    谢谢、此致、
    Jagadish。