完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1 简介I2C 是很常见的一种总线协议,I2C 是 NXP 公司设计的,I2C 使用两条线在主控制器和从 机之间进行数据通信。一条是 SCL(串行时钟线),另外一条是 SDA(串行数据线),这两条数据 线需要接上拉电阻,总线空闲的时候 SCL 和 SDA 处于高电平。I2C 总线标准模式下速度可以 达到 100Kb/S,快速模式下可以达到 400Kb/S。I2C 总线工作是按照一定的协议来运行的,接下 来就看一下 I2C 协议。 I2C 是支持多从机的,也就是一个 I2C 控制器下可以挂多个 I2C 从设备,这些不同的 I2C 从设备有不同的器件地址,这样 I2C 主控制器就可以通过 I2C 设备的器件地址访问指定的 I2C 设备了,一个 I2C 总线连接多个 I2C 设备。 帧起始:I2C 通信起始标志,通过这个起始位就可以告诉 I2C 从机,“我”要开始 进行 I2C 通信了。在 SCL 为高电平的时候,SDA 出现下降沿就表示为起始位 帧停止:停止 I2C 通信的标志位,和起始位的功能相反。在 SCL 位高电平的时候,SDA 出现上升沿就表示为停止位。 数据传输:I2C 总线在数据传输的时候要保证在 SCL 高电平期间,SDA 上的数据稳定,因此 SDA 上 的数据变化只能在 SCL 低电平期间发生。 IIC写时序:首先是给一个起始信号,发送IIC设备地址,读写位,从机发送应答信号,重新发送起始信号,发送要写入数据的寄存器地址,从机发送应答信号,发送要写入的数据,从机发送应答信号,停止信号。 2硬件连接在开发板设计中引出了扩展IO,用于接外设,如下所示,本次选择IIC0进行测试,对于can接口板子只引出了排针,没有将can的电平转换电路附在开发板上,需要自己外接独立模块,这样稍微比较麻烦,同时还有RS485等电路。 3 I2c-toolsI2CTOOL 是一个专门调试 I2C 接口的开源工具,可以获取挂载的设备及设备地址,具 有在对应的设备上读取和设置寄存器值等功能。当前板子已经板载此工具, 直接使用就行,先把MPU6050连在开发板上,使用终端链接开发板; 输入i2cdetect -a 0进行IIC设备检测,检测到0x68,陀螺仪的设备地址,如下所示: 4代码设计MPU6050初始化,打开I2C设备 IIC读取MPU6050数据: IIC向MPU6050写数据: 主函数初始化MPU6050,并打印读取到MPU6050的数据: 配置编译工具链,编译代码 5 验证生产编译好的文件,传递到开发板,并添加可执行权限。运行,数据读取成功 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
79 浏览 0 评论
417 浏览 1 评论
390 浏览 0 评论
【龙芯2K0300蜂鸟板试用】第四篇 龙芯2K0300蜂鸟板--继续点灯
467 浏览 0 评论
【龙芯2K0300蜂鸟板试用】-05-关于SD卡升级的澄清和TF卡、U盘挂载
431 浏览 0 评论
980浏览 29评论
422浏览 7评论
635浏览 3评论
624浏览 3评论
【龙芯2K0300蜂鸟板试用】tinnu-02-有线网卡驱动问题导致的SSH连接问题
861浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-18 15:26 , Processed in 0.422519 second(s), Total 42, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191