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.

[参考译文] TMS320F28384D:I2C 读取 FIFO

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/999286/tms320f28384d-i2c-read-fifo

器件型号:TMS320F28384D
主题中讨论的其他器件:C2000WARELM96080

您好!

 我们按照该示例从 C2000目录读取、并使用 EEPROM 以重复开始进行读取。

 如果我们读取1个字节是正确的、如果我们尝试读取多个字节(使用启用的 FIFO)、则会使第一个 By 正确、但剩余的字节为0xFF。

 是否存在配置问题?

   I2C_DisableModule (i2cBase);

   I2C_initMaster (i2cBase、DEVICE_SYSCLK_FREQ、kHz_100、I2C_DUTYCYCLE _50);
   I2C_setAddressMode (i2cBase、I2C_ADDR_MODE_7BITS);
   I2C_setBitCount (i2cBase、I2C_BITCOUNT_8);
   I2C_setSlaveAddress (i2cBase、slaveAddr);

   // I2C_emulation_free_run -无论挂起(即断点)如何、I2C 操作都将继续
   I2C_setEmulationMode (i2cBase、I2C_emulation_free_run);

   //启用停止条件和寄存器访问就绪中断
   I2C_enableInterrupt (i2cBase、I2C_INT_STOP_Condition | I2C_INT_REG_ACCESS_RDY);

   // FIFO 配置
   I2C_enableFIFO (i2cBase); // FIFO 可在没有中断的情况下使用
   I2C_clearInterruptStatus (i2cBase、I2C_INT_RXFF | I2C_INT_TXFF);  //不使用中断时不会损坏

   //配置完成。 启用模块(即使其退出复位)
   I2C_enableModule (i2cBase);

   //参考手册:11.3.4... 通过设置使 I2C 外设从复位状态中退出后
   // IRS 位为1,等待一个大于最长数据传输所需的总时间的时间段。
   DEVICE_DELAY_US (10000); // 1msec 应该足够了

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

    您好!

    我假设您使用了 C2000ware 示例 i2c_ex2_eeprom。

    您正在尝试访问哪种类型的 EEPROM? 单字节寻址还是双字节寻址 EEPROM?

    此致、
    Praveen

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

    因此、我们按照 EEPROM 示例进行操作、实际上我们将与只有1个地址的 lm96080芯片进行通信。

    有关其工作原理的有趣之处在于、FIFO 将返回我们期望从器件中读取的正确字节数。

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

    Dorion、

    您提到的芯片是否具有基于 I2C 的 EEPROM? 看起来不是这样。

    在这种情况下、应使用正常的 I2C 流、因为 I2C EEPROM 访问具有单独的寻址方案、涉及地址阶段之后的器件 SEL、而 C2000ware EEPROM 示例正在部署与 I2C 从器件不一致的访问

    此致、
    Praveen

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

    Praveen、

     TI 是否有轮询驱动的 I2C 正常 I2C 流示例?

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

    Dorion、

    您可以参考示例:I2C_ex3_external_loopback、它在 I2CA<->I2CB 之间进行通信并使用 FIFO 模式

    此致、
    Praveen