i2c总线驱动
1.硬件:
两根线:
scl :时钟线
sda :数据线
单工:只能从发送方向接收方发送数据
半双工:同一时间内只能从一个方向发送到另外一个方向
全双工:同时可以双向传输数据
三种信号:
起始信号:当scl为高电平的时候,sda来一个下降沿
停止信号:当scl为高电平的时候,sda来一个上升沿
应答信号:从机给主机发送一个低电平
读写时序:
写时序:
start+slave addr(7位) + 写(0)+ack+reg+ack
+data+ack+stop
读时序:
start+slave addr(7位) + 写(0)+ack+reg+ack
+start+slave addr(7位) + 读(1)+ack+data+
no ack+stop
有多少个起始位就有多少个消息,结构体数组
struct i2c_msg
速率: 100K 400K 3.4M