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.

[参考译文] CCS/TM4C123BH6ZRB:TM4C123上的 I2C

Guru**** 2581345 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/777355/ccs-tm4c123bh6zrb-i2c-on-tm4c123

器件型号:TM4C123BH6ZRB

工具/软件:Code Composer Studio

我正在尝试为 i2c 器件创建如下所示的唤醒函数。   

我的电流唤醒看起来是这样的。

以下是我的代码:

 基本上、我需要一半的时钟周期。 将其更改为写入而不是读取会在时钟周期的后半部分将其保持为低电平而不是高电平。 是否有办法这样做?

谢谢、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您连接的是哪种类型的 I2C 器件? I2C 传输将由地址帧后跟数据帧组成。 您不能仅仅发送没有地址帧的数据帧。 在您的第一张图片中、我认为主器件正在尝试通过发送地址帧来写入从器件、从器件地址等于0。 由于没有从器件响应、NACK 被返回到主器件、因此主器件用一个停止来终止传输。
    查看以下 I2C 应用手册、了解有关 API 使用和 I2C 操作的详细信息。 我还建议您运行 TivaWare i2c 示例。

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

    您好!

    我正在连接 ATECC508A。 是否可以在没有地址帧的情况下发送 i2c 消息? 为了唤醒此 i2c 器件、开发套件数据线在80us 内保持低电平、并且不使用地址帧。

    谢谢、  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    根据设计、不能仅发送数据帧。 我建议您在开漏 GPIO 模式下手动驱动 SDA 足够长的时间来唤醒您的外部器件、或者使用从器件地址等于0且持续时间超过唤醒时间的地址帧。 您可能需要降低 I2C 时钟速率。 唤醒后、您将重新配置 I2C 时钟速率。