搞清楚两次事情
A.搞清楚这个芯片的通信接口(spi还是uart还是i2c等,并且要搞清楚该芯片的对应的寄存器地址)
B.搞清楚这个芯片内部的寄存器如何操作
问:为什么samsung的芯片可以直接操作寄存器地址
答:因为samsung芯片和主存是同一编址,一部份给了主存,一部分给了寄存器
先搞清楚A步骤:
看一下地板原理图
发现只有i2c,并且是23和24号管脚
找到I2C的操作地址
由七位组成,允许连接两个mpu6050,看地板是连接一个并且最后一位低电平有效,即为0,故寄存器操作地址为1101000
B步骤
接下来就是搞清楚如何操作寄存器,对寄存器就的操作无异于只有读和写
这里面只用分析单个字节写入就行
为了写入内部的MPU-60X0寄存器,主机发送启动条件(S),然后发送l?c地址和写位(0)。在第9个时钟周期(时钟高),MPU-60x0承认传输。然后主机将寄存器地址(RA)放到总线上。当MPU-60xO接收到寄存器地址后,主控将寄存器数据放到总线上。然后是AcK信号,数据传输可以通过停止条件§结束。为了在最后一个AcK信号之后写入多个字节,主机可以继续输出数据而不发送停止信号。在这种情况下,MPU-60X0自动增加寄存器地址并将数据加载到适当的寄存器中。下图显示了单字节和双字节写入序列。
多个字节写的话地址会自动往后加
为了读取内部的MPU-60X0寄存器,主控发送一个启动条件,然后是I2C地址和写位,然后是将要被读取的寄存器地址。在接收到来自MPU-60xo的ACK信号后,主控机发送一个开始信号,后面跟着从机地址和读位。结果,MPU-60XO发送ACK信号和数据。通信以一个不确认(NACK)信号和一个来自主机的停止位结束。定义了NACK条件,使得SDA线在高时钟周期保持高电平。下图显示了单字节和双字节读取序列。这里被读取的寄存器地址应该是mpu6050当中的寄存器,因为要确认读出mpu6050当中哪个寄存器的值,所有主机要写到从机当中去,看看是要读哪个寄存器当中值