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.

[参考译文] TMS320F2800157-Q1:I2C 总线扫描无法正常工作

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1635858/tms320f2800157-q1-i2c-bus-scan-is-not-working-properly

器件型号: TMS320F2800157-Q1

i2cLib_FIFO_Polling.c init.c

我附加了.C 文件...我有 SVERE 问题  

状态= I2CBusScan (I2CA_BASE、pAvailableI2C_Targets);..进入 InfinIT 循环..

我不知道背后的 RESAON。。。

请尽快查看。

image.png正如标记我的照片以黄色突出显示它不会从黄色无限循环出来。

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

    很抱歉,我保持上面的图片... yellow..it上的标记只在那个循环.. Kindy 请尽快看看它..

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

    尊敬的 Muntazha,

    您能否确认是否看到控制器发送了第一个启动条件+地址 (0x50)、EEPROM ACK、然后由于 TX FIFO 为空、代码滞留在这一行中? 您可以尝试设置一下

    I2C_setDataCount(base, 0);
    发送启动条件?

    此外、还可以从以下句段的第一行中删除;:

    while(I2C_getStopConditionStatus(base) && attemptCount <= 3U);  // ← SEMICOLON
    {
        DEVICE_DELAY_US(I2C_Params->Delay_us);
        attemptCount++;
    }
    

    此致、

    Aishwarya

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

    我将比特率从 100 千赫兹更改为 400 千赫兹。 现在它不会进入无限的 loop....can 你告诉我为什么它正在发生..就像在示例代码 10 万赫兹..

     I2C_initController (I2CA_BASE、DEVICE_SYSCLK_FREQ、400000、I2C_DUTYCYCLE_50);

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

    Muntaha,

    让我看看这件事,并在一周结束后回复你

    此致、

    Aishwarya

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

    Muntaha,

    TX FIFO 时序问题仅显示为 100KHz。 您可能有弱上拉电阻器、导致 100kHz 时钟不稳定。 您是否确定了该行的范围、上拉电阻值是多少? 什么是 DEVICE_SYSCLK_FREQ?

    另外、为什么您具有“atterptCount < 3“逻辑?  这是没有必要的。

    此致、

    Aishwarya

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

    上拉电阻为 4.7k

    100MHz 是频率

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

    Muntaha,

    另请查看本文档以获取与总线电容相关的信息、并确认: I2C 总线上拉电阻器计算。 4.7k 通常很好、但您可能需要不同的值、但假设这是定制电路板、电容也很重要。 Launchpad 已经处理好了。

    软件方面、您能否提供 100kHz 下 I2C 工作情况的示波器屏幕截图? SCL 实际上是以该速率还是其他某个频率切换? 我还会尝试将代码放在第 58 行之后的第 49 行。

    此致、

    Aishwarya