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

DSP6748 I2C通信问题

DSP做主 ,多任务访问,保证各个任务不会对I2C进行抢占,以send和receive访问两个I2C从机地址,执行一段时间之后在进行I2C发送时一直被当在while(i_Flag)位置处,经过检查ICIMR中停止、发送、NACK中断都已经使能、ICSTR中BB管脚为0、但是没有进I2C中断,导致send模块一直被当在while(i_Flag)位置处,i_Flag在中断处理函数中进行的清零。经过检查系统中没有对I2C的中断进行clear,IFR中I2C的中断标志位为0,请问,系统中对中断标志进行了清零吗?出现以上问题是为什么?谢谢

Shine:

请问是否有查看过ICSTR状态寄存器各个状态位是否正确?

user5850425:

回复 Shine:

Dear Shine:

我查看ICSTR寄存器,ICSTR寄存器的值为0x00000410,没有产生错误。具体为ICSTR中XSMT与ICXRDY为1其余为0,ICCNT为0x02,ICMDR中STT、TRX与IRS为1其余为0,ICVIR为0。个人觉得是MasterStart之后没有进中断,但是我没有Clear I2C的中断,只是在进入I2C中断处理函数之后获取了一次ICIVR的值,然后使用IntEventClear(I2C0),Clear了I2C的中断事件,请问这是什么原因导致的?谢谢

Shine:

回复 user5850425:

I2C是运行一段时间后不能在产生发送中断吗?有没有试过DLB自环模式有没有同样的问题?

user5850425:

回复 Shine:

Dear Shine Zhang:
试过DLB自环模式是可以的

user5850425:

回复 user5850425:

Dear Shine Zhang:
多个从机通信过程中频繁切换可以吗?如果不可以,怎样才能实现多个从机的频繁切换呢?

Shine:

回复 user5850425:

频繁切换是指什么?I2C不是按照slave address和从机通信的吗?

user5850425:

回复 Shine:

Dear Shine Zhang:
主要是与一个从机通信完成之后,立即重新设置一个新的从机地址与另外一个从机进行通信。I2C两次通信之间需要进行延时处理吗?

赞(0)
未经允许不得转载:TI中文支持网 » DSP6748 I2C通信问题
分享到: 更多 (0)