应用:28069 读写数据到CAT1025。28069都是做主机,
我想用查询的方式,操作I2C,不用中断!!,不用FIFO!!
按I2C说明,随机读取应该是如下步骤
(1)发送一个START condition,->确认START condition已经发送 。下一步(我怎样确认START condition已经发送?是通过STT吗?)
(2)通过I2CDXR 发送 从机设备地址,->确认从机设备地址已经发送,确认从机返回ACK 。下一步 (这两次确认,我应该查询哪个标志位)
(3)通过I2CDXR 发送 要读取的字节地址,->确认字节地址已经发送,确认从机返回ACK 。下一步 (这两次确认,我应该查询哪个标志位)
(4)再发送一次START condition 。确认START condition已经发送 。下一步(我怎样确认START condition已经发送?是通过STT吗?)
(5))通过I2CDXR 发送 从机设备地址,->确认从机设备地址已经发送,确认从机返回ACK 。下一步 (这两次确认,我应该查询哪个标志位)
(6) 将28069 从发送状态,转为 接收状态(这一步,只要TRX=0 吗?要不要通过IRS 复位 I2C)
谢谢回复!
Jeanne Yi:
如果不用中断,建议用软件模拟I2C的操作时序,直接操作作为SCL和SDA的GPIO口,不用I2CDXR 等内部寄存器。
应用:28069 读写数据到CAT1025。28069都是做主机,
我想用查询的方式,操作I2C,不用中断!!,不用FIFO!!
按I2C说明,随机读取应该是如下步骤
(1)发送一个START condition,->确认START condition已经发送 。下一步(我怎样确认START condition已经发送?是通过STT吗?)
(2)通过I2CDXR 发送 从机设备地址,->确认从机设备地址已经发送,确认从机返回ACK 。下一步 (这两次确认,我应该查询哪个标志位)
(3)通过I2CDXR 发送 要读取的字节地址,->确认字节地址已经发送,确认从机返回ACK 。下一步 (这两次确认,我应该查询哪个标志位)
(4)再发送一次START condition 。确认START condition已经发送 。下一步(我怎样确认START condition已经发送?是通过STT吗?)
(5))通过I2CDXR 发送 从机设备地址,->确认从机设备地址已经发送,确认从机返回ACK 。下一步 (这两次确认,我应该查询哪个标志位)
(6) 将28069 从发送状态,转为 接收状态(这一步,只要TRX=0 吗?要不要通过IRS 复位 I2C)
谢谢回复!
jason chen1:
回复 Jeanne Yi:
同问,不过我用的是FIFO模式
既然有I2C硬件,我觉得还是用硬件比软件模拟要好很多,至少效率要高出不少