请教 uboot模式下 - I2C硬件发送寄存器的理解。
Hi 大侠:
omap 3530板子。其中有一个寄存器:
register name :I2C_STAT
第4个bit位的描述:
XRDY Transmit Data Ready IRQ status. Set to 1 in transmit mode when new data is requested RW 0
for transmission. When this bit is set to 1, an interrupt is signaled to MPU subsystem
Read 0x0: No transmit data is requested for transmission
Read 0x1: Transmit data is requested for transmission
Write 0x0: No effect
Write 0x1: Clear this bit to 0.
再看另外一短描述:
Poll the I2Ci.I2C_STAT[4] XRDY bit,
or use the XRDY interrupt (the I2Ci.I2C_IE[4] XRDY_IE bit must be
set to 1)
or the DMA TX channel (the I2Ci.I2C_BUF[7] XDMA_EN bit must be set to 1) to write data to the I2Ci.I2C_DATA register.
在uboot的代码中就是对这个位设置“1”。这个时候是不是触发了数据发送?在没有中断(uboot)的情况下:也就是在这个位设置“1”以后。data line上就会出现串行的数据?
希望做过类似驱动的大虾们给点帮助。
谢谢
[解决办法]
不对。
这个状态位只是起到1个提醒程序员"数据已经准备好了"的作用。
也就是说,在这个代码里就算你不清零,数据也会发送出去。