米尔电子
直播中

jf_15811252

3年用户 249经验值
擅长:嵌入式技术
私信 关注
[技术]

【米尔-瑞萨RZ/G2UL开发板】2.IIC设备读取陀螺仪数据

IIC简介

I2C 是很常见的一种总线协议,I2C 是 NXP 公司设计的,I2C 使用两条线在主控制器和从 机之间进行数据通信。一条是 SCL(串行时钟线),另外一条是 SDA(串行数据线),这两条数据 线需要接上拉电阻,总线空闲的时候 SCL 和 SDA 处于高电平。I2C 总线标准模式下速度可以 达到 100Kb/S,快速模式下可以达到 400Kb/S。I2C 总线工作是按照一定的协议来运行的,接下 来就看一下 I2C 协议。

I2C 是支持多从机的,也就是一个 I2C 控制器下可以挂多个 I2C 从设备,这些不同的 I2C 从设备有不同的器件地址,这样 I2C 主控制器就可以通过 I2C 设备的器件地址访问指定的 I2C 设备了,一个 I2C 总线连接多个 I2C 设备。
image.png

帧起始:I2C 通信起始标志,通过这个起始位就可以告诉 I2C 从机,“我”要开始 进行 I2C 通信了。在 SCL 为高电平的时候,SDA 出现下降沿就表示为起始位
image.png

帧停止:停止 I2C 通信的标志位,和起始位的功能相反。在 SCL 位高电平的时候,SDA 出现上升沿就表示为停止位。
image.png

数据传输:I2C 总线在数据传输的时候要保证在 SCL 高电平期间,SDA 上的数据稳定,因此 SDA 上 的数据变化只能在 SCL 低电平期间发生。
image.png

IIC写时序:首先是给一个起始信号,发送IIC设备地址,读写位,从机发送应答信号,重新发送起始信号,发送要写入数据的寄存器地址,从机发送应答信号,发送要写入的数据,从机发送应答信号,停止信号。
image.png

I2c-tools

I2CTOOL 是一个专门调试 I2C 接口的开源工具,可以获取挂载的设备及设备地址,具 有在对应的设备上读取和设置寄存器值等功能。

下载工具并拷贝到虚拟机,解压并添加文件操作权限,这里是之前编译好的,所以直接用
image.png

修改makefile,屏蔽CC , AR , STRIP这几行:
image.png

输入make编译,并查看生成的可执行文件:
image.png

将i2cdetect,i2cdump,i2cget,i2cset,i2ctransfer 拷贝到开发板/usr/bin 目录下:
image.png

将 lib 下的库文件拷贝到开发板/usr/lib 目录
image.png

将MPU6050连接开发板,检测总线和检测总线上的设置,可以看到有68的这个设备地址,如下所示68
image.png

代码设计

MPU6050初始化,打开I2C设备
image.png

写一个byte函数
image.png

读取Mpu6050原始数据,并打印出来
image.png

编译代码,并生产可执行文件,拖入开发板,添加可执行权限
image.png

效果

执行代码,如下所示,1s打印一次读取的数据:
image.png

更多回帖

发帖
×
20
完善资料,
赚取积分