I2C基础
I2通信
1.写数据帧:
空闲时,SDA是高电平,在SCL高电平时主机发送SDA线上拉低电平,提醒从机开始通信,然后发送从机硬件地址+读写位(7位地址 << 1 + 读写位),读1写0,从机接收后发送应答信号0,主机接收应答,主机再发送主机8位寄存器地址,从机应答后通信就可以开始读或者写了,主机发送或接收一次数据从机应答一次
2.读数据帧,
起始和设备地址和寄存器地址一样,然后是主机重新发送起始信号0,发送设备地址<<1 + 0(写),从机应答后,从机发送8位数据到SDA,需要判断是LSB还是HSB(高位先行),主机发送应答信号0继续读,发送非应答信号,主机在SDA线上发送一位高电平,从而停止通信
3.SCL时钟线在低电平时,主机\从机更换SDA电平, SCL为高电平时,主机\从机采样 SDA信号
I2C主从设备的设备地址\数据传输是MSB(高位在前),低位在后