10比特地址
当10位地址被使能(TENBITEN=1)并且ADDR寄存器被写,两个地址字节将被传输如下图所示。从机地址应答两
个地址字节并且伟输继续。不管传输是读或写,主机必须发出10比特地址带有读写比特(ADDR.ADDR[0])等于0
。
如果主机在每一个字节后接收一个NACK,然后写中断标志被置位并且NACK比特被设置。
如果每一个字节是一个或多个从机的应答,这时主机将处理传输第二个地址字节并且主机首先看密写中断标
志在第二个字节传输后。
如果执行是个读,10比特地址传输必须被跟一个重复的开始并且前7位读/写的地址位等于1。
以下过程是10比特读操作:
。10比特地址写到ADDR.ADDR[10:1]。ADDR.TENBITEN必须被设置(可以同时被写入ADDR)并且读/写比特
(ADDR.ADDR[0])等于0。
。当主机写中断被声明,写ADDR[7:0]寄存器为"11110 地址[9:8]1"。ADDR.TENBITEN必须被清除(可以同
时写入ADDR)。
。处理传输数据。
27.6.2.7 I2C从机操作
I2C从机是以字节组织的以中断为基础的。产生的中断的数量保持在最低限度,大多数事件的自动处理。
自动触发操作和一个特殊的SMART模式,它可以通过向控制器A中的Smart模式使能比特写1来使能,它包括了
减少软件的复杂度和代码长短。
I2C从机有两个中断策略。当SCL延伸模式(CTRLA.SCLSM)设置为0,SCL延伸在确认比特之前或之后。在这个模式,I2C从机操作根据行为来决定,如下图所示:圆圈带有大写S跟有数字(S1,S2,...等)指示出了总线逻辑能跳到哪个节点,这是以软件或硬件的互相作用决定的。
此图是用于整个文档的I2C从机操作说明参考。
第二个策略(SCLSM=1),中断只在ACK比特之后执行如下图所示。这个策略能被用在当在应答之前不需要检查DATA的时候。对主机读来说,一个地址和数据中断将要在地址应答后被同时执行,而对于主机写,每一个数据中断将被看作是在第一个数据被从机接收并且应答比特已经发给主机。
注意设置SCLSM为1,是高速传输需要的。
|