做笔记用,多为转载。
分类: LINUX
2014-06-21 23:27:21
对iic总线来说工作在中断和非中断模式在时序上是相同的,只不过在非中断模式下是通过检测ACK信号来
判断从设备响应了,在中断模式下是通过中断信号来判断从设备响应了,一般是读主CPU侧的iic控制器的
中断标志来判断的。
master时发送slave地址后接收到ACK信号然后产生中断,
slave 时接收到的数据是自己的地址时会产生中断。
如果在进行了一个操作从设备没有中断信号响应的话,那么iic的SCL会被拉低,一直等待。
根据IIC协议,IIC从机可以在通讯过程中通过拉低SCL线迫使主机进入等待状态,当从机准备好之后再释放SCL线继续数据传输.
也就是当iic中断标志位被置1时,SCL是被拉低的,当我们检测到中断标志位被置1时需清空该寄存器以便使能下一组数据的发送
那么当从设备发生异常情况,无法应答时,从设备也会主动将SCL拉低,阻止后续数据的继续发送。