目录
I2C通信协议
硬件
软件
I2C时序
MPU6050
I2C通信协议
硬件
为了避免总线没协调好导致电源短路,配置为开漏输出,所有设备输出低电平不输出高电平,即右图。又为了避免高电平造成的引浮空,(第三点)总线外接上拉电阻(弱上拉)
好处:1.避免短路问题;
2.避免引脚模式频繁切换 开漏+弱上拉同时兼具输入输出。开漏模式输出高电平相当于断开引脚,在输入模式之前,可以输出高电平;
3.这个模式下会出现“线与”现象,有一个或多个设备输出低电平总线低电平,全部为高电平才处于高电平,可用于多主机模式下时钟同步和总线仲裁。
软件
一主多从时 起始和终止都是由主机产生,从机不允许
这里是高位先行,串口是地位先行。
主机拉低SCL将数据放在SDA线上,释放SCL从机读取SDA上的数据
SCL低电平从机放数据,高电平主机读数据(实线是主机控制,虚线是从机)
发送应答/接收应答
I2C时序
读写后地址指针会+1。同时要注意给应答
指定地址写:reg address(寄存器地址)
起始 重复起始 停止
MPU6050 (具体看两个手册)
3.3V稳压器
107 电源管理寄存器1 操作之前要解除睡眠,否则操作其他寄存器是无效的