I2C通信协议&MPU6050

目录

I2C通信协议

硬件

 软件

 I2C时序

MPU6050 


I2C通信协议

硬件

 为了避免总线没协调好导致电源短路,配置为开漏输出,所有设备输出低电平不输出高电平,即右图。又为了避免高电平造成的引浮空,(第三点)总线外接上拉电阻(弱上拉)

好处:1.避免短路问题;

2.避免引脚模式频繁切换 开漏+弱上拉同时兼具输入输出。开漏模式输出高电平相当于断开引脚,在输入模式之前,可以输出高电平;

3.这个模式下会出现“线与”现象,有一个或多个设备输出低电平总线低电平,全部为高电平才处于高电平,可用于多主机模式下时钟同步和总线仲裁。


 

GPIO口这里都要配置成复用开漏输出。复用,GPIO口的状态交由片上外设来控制 

 起始,从机地址,应答,数据1,应答,数据2,应答。

当前地址读 

 

 软件

一主多从时 起始和终止都是由主机产生,从机不允许

这里是高位先行,串口是地位先行。

主机拉低SCL将数据放在SDA线上,释放SCL从机读取SDA上的数据

SCL低电平从机放数据,高电平主机读数据(实线是主机控制,虚线是从机)

 发送应答/接收应答

 I2C时序

读写后地址指针会+1。同时要注意给应答

指定地址写:reg address(寄存器地址)

起始      重复起始      停止

 


MPU6050 (具体看两个手册)

 3.3V稳压器

 

 107 电源管理寄存器1 操作之前要解除睡眠,否则操作其他寄存器是无效的

猜你喜欢

转载自blog.csdn.net/m0_70732442/article/details/130889818