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.

[参考译文] TMDSDOCK28069:I2C 实现

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/569277/tmdsdock28069-i2c-implementation

器件型号:TMDSDOCK28069
Thread 中讨论的其他器件:controlSUITE

我已经 使用 I2C 逐位拆裂连接了 PCF8563 RTC。

我想通过启用中断来在 F28069器件上使用内置 I2C 外设。

是否提供了相同的示例?  

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

    通过安装 controlSUITE 并在... ti\controlSUITE\device_support\f2806x 中查找所有可用的软件示例。

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

    主席先生、您能不能再多说几个问题、  

    我指 的是 controlSUITE 中给出的 I2C EEPROM 示例。 如果我必须在无限循环之前编写以下代码。

    开始|写入(地址)+从器件接收 ACK | 写入(寄存器)+从器件接收 ACK | 写入(数据)+从器件接收 ACK |停止

    如果使用 I2C 示例代码在不同的寄存器位置重复6次、如何实现上述功能? 地址、寄存器位置和数据为8位。

    如果我必须写入不同的寄存器位置、应该执行什么操作?

    在无限循环内:

    现在、为了便于阅读、我使用了:

    开始|写入地址|写入 寄存器地址|停止|开始|写入 读取地址|从 SDA 线路读取8位并发送 ACK | 从 SDA 线路读取8位并发送 ACK | 从 SDA 线路读取8位并发送 NACK |停止。

    如何使用 I2C 硬件实现上述功能?

    请帮助。

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

    我们无法为您编写代码、但如果您有具体问题、我们将乐意为您提供帮助。 您可以在 F2806x TRM 中了解有关 I2C 模块的更多信息:

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

    I2C 的初始化为:
    空 I2CA_Init (空)

    //初始化 I2C
    I2caRegs.I2CSAR = 0xA2;//从器件地址- PCF8563

    I2caRegs.I2CPSC.all = 8;//(90MHz/9)
    I2caRegs.I2CCLKL = 20;
    I2caRegs.I2CCLKH = 20;
    I2caRegs.I2CIER.ALL = 0x24;//启用 SCD 和 ARDY 中断

    I2caRegs.I2CMDR.ALL = 0x0020;//使 I2C 退出复位
    //挂起时停止 I2C

    I2caRegs.I2CFFTX.ALL = 0x6000;//启用 FIFO 模式和 TXFIFO
    I2caRegs.I2CFFRX.ALL = 0x2040;//启用 RXFIFO、清除 RXFFINT、

    返回;


    PLL 时钟设置为:
    InitPll(18,2);

    我得到的 I2C 时钟为100kHz、但根据计算、时钟应为200kHz。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    奇怪。 您有其他时钟设置代码吗? 您可以尝试作用域 XCLKOUT 以验证系统是否真正以90MHz 运行。