TI中文支持网
TI专业的中文技术问题搜集分享网站

F28335 I2C eeprom按页写入问题

使用TI的I2C eeprom程序进行修改,在实现按页写入功能时只能写入14字节数据+2字节地址,如果超过14字节数据就进不了中断,写入失败,但是我使用的eeprom一页可以写32字节的数据,请问需要如何配置实现按页写入32字节,或者说如何配置I2C可以实现发送32字节的数据到I2C总线并触发中断?

Green Deng:

是基于这个位置的程序吗?C:\ti\c2000\C2000Ware_3_02_00_00\device_support\f2833x\examples\i2c_eeprom
你的EEPROM用的是哪款?具体程序中是如何修改的?

user6223461:

回复 Green Deng:

是的,是这个程序,eeprom的型号是AT24C64,修改只是对写入的 字节个数部分改动了
I2caRegs.I2CCNT = 14+2;//msg->NumOfBytes+2;
14字节数据+2字节的写入地址,现在的问题是14字节的数据只要改成超过14字节就不行了,程序进不了I2C中断,也没有写入eeprom。但是我的eeprom是一页可以写32字节数据的,这个问题是不是因为例程使用的FIFO中断,而FIFO的缓存区只能是16字节的缘故?

user6223461:

回复 Green Deng:

请问您知道怎么解决吗?

Green Deng:

回复 user6223461:

应该是FIFO大小有关,可以试一下以下方法:
1、将FIFO中断配置为在其为空或之前几个字节时发生,i.e. TXFFIL config。
2、将I2CCNT 设置为 34 (2 address + 32 data bytes)
3、用要发送的前16个字节填充I2CDXR
4、启动传输,置位MST,TRX,STT位。
也可以将STP位置1,以便在I2CCNT达到0时产生STOP条件。
5、当FIFO中断触发时,在ISR中填充下一个'N'字节的数据
如有必要,器件在此期间应将SCL保持为低电平

user6223461:

回复 Green Deng:

谢谢,我目前采用一次写8个字节,写4次为32字节一页,已经可以满足我的需求了。

Green Deng:

回复 user6223461:

好的!

赞(0)
未经允许不得转载:TI中文支持网 » F28335 I2C eeprom按页写入问题
分享到: 更多 (0)