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.

[参考译文] TMS320F280048C-Q1:I2C 无法生成停止条件

Guru**** 2478765 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1447879/tms320f280048c-q1-i2c-not-able-to-generate-stop-condition

器件型号:TMS320F280048C-Q1
Thread 中讨论的其他器件:C2000WARE

工具与软件:

尊敬的专家:

我的客户使用 I2C 从 EEPROM 中读取数据。 在某些情况下、F280049 (主接收器)无法生成 STOP 条件。

以下波形是在通信周期结束时捕获的。 EEPROM 正在响应 F280049。 但是、波形中有两个误差。

1.在 ACK 之前只有8个时钟。 当通信正常时、该值应为9。

2.缺少停止条件时、SCL 保持低电平、以便总线始终处于繁忙状态。

发生错误时我们读取 I2C 寄存器、我们看到 STP 位置位、但仍然没有生成停止条件。 再次手动清除并复位 STP 位通常可以生成停止条件。

似乎 I2C 以某种方式在一个时钟之前生成 ACK 并影响停止条件的生成。

有什么问题吗?

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

    尊敬的 Hang:

    我明天会再给你介绍一下。

    此致、

    Aishwarya.

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

    挂起、

    您是否参考了 C2000WARE 中的 I2C EEPROM 示例、这些示例展示了如何与 EEPROM 进行连接并向 EEPROM 发送各种数量的字节?

    另请参阅以下资源:

    在 I2C 模式下使用 PMBus 连接 EEPROM

    (+) I2C 主器件不产生 STP 条件(TMS320F28335)- C2000微控制器论坛- C2000 ︎ 微控制器- TI E2E 支持论坛

    此致、

    Aishwarya.

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

    尊敬的 Ashwarya:

    客户在 ex2 EEPROM 示例之上构建了 I2C 通信、其代码与示例中的 writedata()函数基本相同。

    我检查了参考链接。 在该 POST 中、似乎未生成 STP、因为 FIFO 剩余字节。 但是、我的客户使用重复模式、 与 i2ccnt 无关

    更重要的是、如果这是配置问题、应该每次都发生。 但是、它只会偶然发生、大约20%、在其余时间、它正常工作。

    此致、

    挂起。

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

    挂起、

    让我在这一周结束时就这一事项向你通报。

    此致、

    Aishwarya.

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

    挂起、

    如果总线上只有一个控制器、则很可能是目标器件由于软件配置不正确或目标代码挂起而将总线保持在低电平。

    I2C 控制器时钟和波特率配置为什么、这与正在使用的 EEPROM 是否匹配?

    SDA/SCL 线路上使用了哪些上拉电阻器? 这些是将总线从低电平状态转换为高电平状态(反之亦然)所必需的。

    此致、

    Aishwarya.

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

    尊敬的 Aishwarya:

    我想在此处添加一个背景。 当从器件"被要求"发送2个或更多字节的数据时、I2C 接口始终正常工作。 考虑到这一点、我认为波特率和上拉电阻应该是可以的。

    如果目标正是错误地将总线保持在低电平、通过查看波形、有什么方法来识别它吗?

    此致、

    挂起

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

    挂起、

    我想在此添加一个背景。 当从器件"被要求"发送2个或更多字节的数据时、I2C 接口始终正常工作。 考虑到这一点、我认为波特率和上拉电阻应该可以。

    是否有其他器件共享总线以及是否可以分享有关代码和/或所用 EEPROM 的更多详细信息? 听起来 EEPROM 可能需要一次发送2个字节的数据、这就是 I2C 通信始终正常工作的原因。 此处提供有关 I2C EEPROM 通信: 在 I2C 模式下使用 PMBus 连接 EEPROM 的更多信息

    此致、

    Aishwarya.

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

    尊敬的 Aishwarya:

    我在内部共享了 EEPROM 部分。 总线上只有这个 EEPROM、没有其他器件。  

    此致、

    挂起。

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

    谢谢、Hang。 通过聊天提出问题。 我将离开办公室、直至 Week 2025年01月06日、所以我会回来与您联系。 假日快乐!

    此致、

    Aishwarya.

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

    尊敬的 Hang:

    您是否能够解析此查询? 如果没有其他问题了、我将继续并关闭该主题。

    此致、

    Aishwarya.

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

    尊敬的 Aishwarya:

    我刚收到客户反馈、尚未找到根本原因、让我们继续找出根本原因。

    此致、

    挂起。  

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

    挂起、

    如果您能在我们的离线聊天中获得答案、请告诉我。 您可以重塑 EEPROM 的数据表吗、另外由于某种原因、我无法看到我们的聊天窗口。

    此致、

    Aishwarya.