编辑: kieth | 2018-08-12 |
8 位数 据传送完毕.HAAS 为1时,是地址匹配引起 I2 C 中断,HAAS 为0时,是8个位的数据传 输完毕引起的 I2 C 中断.在数据传递中,需要注意的是,在7位从机地址被发送后,接下来 的一位,即第
8 位,是读取/写入控制位,该位的值会反映到 SRW.从器件通过检测 SRW 以确定从机是要进入发送模式还是接收模式. I2 C 的时序图如下图所示: D a t a
1 0
1 0
0 1
0 0
1 0
0 1
0 1
0 1
1 S = S t a r t (
1 b i t ) S A = S l a v e A d d r e s s (
7 b i t s ) S R = S R W b i t (
1 b i t ) M = S l a v e d e v i c e s e n d a c k n o w l e d g e b i t (
1 b i t ) D = D a t a (
8 b i t s ) A = A C K ( R X A K b i t f o r t r a n s m i t t e r , T X A K b i t f o r r e c e i v e r
1 b i t ) P = S t o p (
1 b i t ) S C L S t a r t S D A S R W A C K A C K S t o p S C L S D A S l a v e A d d r e s s S S A S R M D A D A S S A S R M D A D A P I2 C 通信时序图 通信时序图 通信时序图 通信时序图 HT66F40 使用 使用 使用 使用 SIM I2 C Mode 之用法与注意事项 之用法与注意事项 之用法与注意事项 之用法与注意事项
5 开始信号 开始信号 开始信号 开始信号 开始信号只能由连接 I2 C 总线的主机设备产生,总线的所有器件必须侦测开始信号,当检 测到后, 表明 I2 C 总线处于忙状态, 从机设备会设置 HBB 位. 开始信号是指在 SCL 为高时, SDA 发生电平从高到低的变化. 从机地址 从机地址 从机地址 从机地址 总线的所有器件都会侦测由主机发起的开始信号的发送.发送开始信号后,主机必须发送 从机地址以选择要进行数据传输的从机设备.所有在 I2 C 总线的从机设备都会接收到这个 从机地址(7 位),并与各自内部的从机地址进行比较.如果地址匹配,该从机会产生一个中 断,并将接下来的一位数据 (即第
8 位) 保存到 SRW 位,并发出一个应答信号,即第
9 位 的低电平信号.当从器件地址匹配时,还会设置位状态标志位 (HAAS). 由于 I2 C 总线有两个中断源,在中断服务子程序中,通过检测 HAAS 位可以确定 I2 C 总线 中断是来自从机地址匹配,还是来自
8 个位数据传送完毕.当是地址匹配引起的中断时, 则从机必定是用于设置发送模式或是接收模式,所以必须写入数据到 SIMDR 或从 SIMDR 虚拟读取数据以释放 SCL. SRW 位位位位SIMC1 寄存器的 SRW位表示主控制器是要从 I2 C总线读取数据还是要将数据写到 I2........