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

28027 I2C 写EEPROM AT24C04的问题

我尝试用查询方式(不用中断方式)来使用28027 I2C功能读写EEPROM AT24C04。

第一步:初始化

延时十几ms后,启动写2个字节:

之后每隔1ms检查一次:

if(I2caRegs.I2CFFTX.bit.TXFFINT==1) { I2caRegs.I2CFFTX.bit.TXFFINTCLR=1; /* …*/ }

这时I2CMDR的值变成了0x4220,I2CFFTX的值变成了0x6083。

问题一:为什么I2CMDR的值变成了0x4220?bit10是MST原来是1现在变成了0,竟然从Master mode变成了Slave mode?

问题二:为什么TXFFINTCLR=1清除中断标志不起作用?(0x6083中的那个8清不掉)

问题三:到底这次数据发送完了没有?

user1899627:自己顶一下

我尝试用查询方式(不用中断方式)来使用28027 I2C功能读写EEPROM AT24C04。

第一步:初始化

延时十几ms后,启动写2个字节:

之后每隔1ms检查一次:

if(I2caRegs.I2CFFTX.bit.TXFFINT==1) { I2caRegs.I2CFFTX.bit.TXFFINTCLR=1; /* …*/ }

这时I2CMDR的值变成了0x4220,I2CFFTX的值变成了0x6083。

问题一:为什么I2CMDR的值变成了0x4220?bit10是MST原来是1现在变成了0,竟然从Master mode变成了Slave mode?

问题二:为什么TXFFINTCLR=1清除中断标志不起作用?(0x6083中的那个8清不掉)

问题三:到底这次数据发送完了没有?

Jordan Zhou:

回复 user1899627:

抓一个clk和data线上的波形来看看。
怀疑I2C压根就没有工作。看看它的clock是否配置了。

我尝试用查询方式(不用中断方式)来使用28027 I2C功能读写EEPROM AT24C04。

第一步:初始化

延时十几ms后,启动写2个字节:

之后每隔1ms检查一次:

if(I2caRegs.I2CFFTX.bit.TXFFINT==1) { I2caRegs.I2CFFTX.bit.TXFFINTCLR=1; /* …*/ }

这时I2CMDR的值变成了0x4220,I2CFFTX的值变成了0x6083。

问题一:为什么I2CMDR的值变成了0x4220?bit10是MST原来是1现在变成了0,竟然从Master mode变成了Slave mode?

问题二:为什么TXFFINTCLR=1清除中断标志不起作用?(0x6083中的那个8清不掉)

问题三:到底这次数据发送完了没有?

user4329368:

回复 Jordan Zhou:

如果clk和data的线一直是高电平,但I2C 模块的寄存器是可赋值的,这样的话怎么解决。 我的程序和上面一样,而且在TMS320F28377D芯片测AT24C64上正常,在28034测 AT24C08上不行,给CMDR付过值之后,FFTX,和STR的值均不变化,不知道是什么原因?请指教?

赞(0)
未经允许不得转载:TI中文支持网 » 28027 I2C 写EEPROM AT24C04的问题
分享到: 更多 (0)