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.

[参考译文] TMS320F28027/AM4096 I2C,无 SCL/SDA 信号

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/801517/tms320f28027-am4096-i2c-no-scl-sda-signal

器件型号:TMS320F28027

工具/软件:Code Composer Studio

您好!

我尝试以 AM4096作为从器件、以 TMS320F28027作为主器件进行读取和写入。

 我使用 example_2802xI2c_EEPROM.c。 我已经将此示例与 EEPROM (作为从器件)一起使用、它可以正常工作。

问题在于 AM4096作为从器件、F28027作为主器 件、没有 SDA 和 SCL 信号。

我的 SDA 和 SCL 信号 位于 GPIO28和 GPIO29中。

在 Example_2802xI2c_EEPROM.c 中、我刚刚将预分频器的值更改为频率等于126kHz。  

                                                                                                                                                      ( #IF (CPU_FRQ_60MHz)
                                                                             I2caRegs.I2CPSC.all = 6;      //预分频器-模块时需要7-12MHz
                                                                                                                                                          #endif

我知道在 这个 exemple 中需要设置很多东西、但我看不到 SCL 信号已经很奇怪了。

您是否有任何解决方案?

此致、

Anja RD

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

    您以什么 CPU 频率运行器件? 您将 I2CPSC、I2CCLKL 和 I2CCLKH 更改为什么? 这是您在示例中更改的唯一部分?

    i2c_EEPROM 示例可能需要进行适当的修改、以便与 AM4096配合使用并与其预期的协议相匹配。

    在您的测试中、您正在探测 SCL/SDA 信号、并且未在总线上看到任何移动? 此信号是否保持高/低?

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

    尊敬的 Kevin:

    感谢您的回答。

    我的 CPU 频率为60MHz。  我的 SCL/SDA 信号保持低电平。 您可以在这张图片中查看我拥有的内容。

    e2e.ti.com/.../5047.tek00000.tif

    我 只需将 I2CPSC 更改为 具有等于100kHz 的 I2C 频率。  我不会更改我的 I2CCLKL 和 I2CCLKH。

    这是我的代码:

     e2e.ti.com/.../Program_5F00_bus_5F00_I2C_5F00_modif.c

    此外,我看到一篇文章,他向你说 :

    您说您使用的是 I2C 示例,但您使用的代码用于哪个 组件?

    此致、

    Anja RD  

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

    在图片中很难分辨总线是否被保持在高电平/低电平。 此外、在屏幕截图开始之前、可能发生了总线上的活动。 您需要在示波器上设置触发器以正确捕获时钟/数据。

    您的代码与默认的 i2c_EEPROM 示例相同、需要对其进行更改以匹配 AM4096器件。 请查看相应的器件数据表及其预期的数据格式。 简单地看一下 DS、AM4096期望一个字节的存储器地址、而不是2个字节、就像配置为提供的示例一样。

    之前发布中提供的代码可能更易于构建、但仍需要针对您的特定从器件对其进行操作:

    e2e.ti.com/.../773846

    默认情况下、它设计为与不同的 EEPROM 配合使用。 查看 AM4096数据表并利用我发布的示例代码中的函数(提示:使用1个寄存器字节而不是2)。

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

    这是最后的工作。
    问题是我的传感器连接到了发动机,我没有打开它。 之后,我必须在打开引擎的 GPIO 和 I2C 的线路指令之间设置一个延迟。

    感谢您的帮助和回答!

    最棒的

    Anja