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.

[参考译文] TMS320F28335:通过 I2C 写入 EEPROM

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/931412/tms320f28335-writing-eeprom-by-i2c

器件型号:TMS320F28335

尊敬的团队:

我的程序根据 TI 提供的 i2c_EEPROM 例程进行了修改。

当使用"逐页写"函数时、我一次只能写入14个字节的数据+ 2个字节的地址。 如果数据超过14个字节、则不能输入中断并且写入失败。 但是、我使用的 EEPROM 每页可以写入32字节的数据。 这个问题是由例程使用的 FIFO 中断引起的、FIFO 缓冲区只能是16字节吗? 如何配置为每页写入32个字节?

此致

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

    您好!

    [引用 USER="F.F]这个问题是由于例程使用的 FIFO 中断造成的、并且 FIFO 缓冲区只能是16字节吗? 如何配置为每页写入32个字节?[/quot]

    是的、这听起来与 FIFO 大小有关。 如果使用 FIFO 并尝试写入2个地址字节+ 32个数据字节、您可以执行与以下类似的操作:

    1. 将 FIFO 中断配置为在它为空或之前的几个字节时发生、即 TXFFIL 配置
    2. 将 I2CCNT 设置为34 (2个地址+ 32个数据字节)
    3. 用要发送的前16个字节填充 I2CDXR
    4. 启动传输、MST、TRX、STT 位被置位
      1. 也可以设置 STP 位、以便在 I2CCNT 达到0时产生停止条件
    5. 当 FIFO 中断触发时、在 ISR 内填充接下来的"N"个数据字节
      1. 如有必要、在此期间器件应将 SCL 保持在低电平

    最棒的

    Kevin