LV.12 D23 IIC控制器与MPU6050 学习笔记

一、Exynos_4412下的IIC控制器

4412有四个IIC,如果要使用需要配置四个寄存器

I2CCON:配置一些功能

I2CSTAT:控制一些功能、显示一些状态

I2CDS:发送和接收数据

I2CADD:当4412作为从机时需要一个地址,这个寄存器用于设置地址

 

支持7位的地址模式,极少数IIC的地址是10位的。标准模式下最快速度是100K,快速模式下可以达到400k。支持主机发送,主机接收,从机发送,从机接收的工作模式。支持中断和轮询。

​ 

​ 

上图是主机发送模式下4412的工作流程

上图是主机接收模式下4412的工作流程 

由于4412一般作为主控制器,很少作为从机,所以另外两个模式暂时不看了。

二、IIC寄存器详解

 

[7]  接收到一个字节数据后是否产生应答信号   1产生   0不产生

[6]  分频,影响IIC的通信速度。 0是16倍分频,1是512倍分频

[5]  中断的开关,IIC在接收和发送一个信号后都会产生一个中断信号通知你。 0关闭,1开启

[4]  中断挂起标志位,当[5]把中断功能打开时,[4]这一位才有效。当中断产生这位自动置1,在处理完中断信号后要写成0

[3:0]  影响IIC的通信速度,改变时钟频率。(不用设置)

 

[7:6]  模式选择

[5]  发送起始和停止信号,0是停止,1是起始

[4]  总线收发数据的开关

[3:0]  只读,表示IIC的状态

I2CADD:4412的地址。作为从机时,才需要设置。

 I2CDS:数据移位寄存器。

I2CLC:用于设置滤波器和延迟,暂时用不上就不设置了。 

三、MPU6050原理

3.1 MPU6050

    MPU6050是一个运动处理传感器,其内部集成了3轴加速度传感器和3轴陀螺仪(角速度传感器),以及一个可扩展数字运动处理器。

3.2 MPU6050主要参数

可测量X、Y、Z轴三个方向的角速度    

可编程设置角速度测量范围为±250、±500、±1000、±2000°/sec    

可测量X、Y、Z轴三个方向的加速度    

可编程设置加速度测量范围为±2g、±4g、±8g、±16g    

可编程设置低功耗模式    

可编程设置采样频率

........

3.3 MPU6050通信接口

        MPU6050可以使用IIC总线和其他器件进行数据交互,我们可以使用IIC总线向MPU6050中的控制寄存器写入数据来设置MPU6050的工作参数 也可以使用IIC总线从MPU6050中的数据寄存器读取数据来获取加速度、角速度等信息

 

3.4 MPU6050官方芯片手册 

MPU6050的引脚:

 引脚的分布说明:

 

典型电路:

 每个电容的作用:

3.5 MPU6050寄存器 

所有的寄存器:

 MPU6050常用寄存器:


/****************MPU6050内部常用寄存器地址****************/#define	SMPLRT_DIV		0x19	//陀螺仪采样率,典型值:0x07(125Hz)
#define	CONFIG			0x1A	//低通滤波频率,典型值:0x06(5Hz)
#define	GYRO_CONFIG		0x1B	//陀螺仪自检及测量范围,典型值:0x18(不自检,2000°/s)
#define	ACCEL_CONFIG	0x1C	//加速计自检及测量范围及高通滤波频率,典型值:0x0(不自检,2G,5Hz)
#define	ACCEL_XOUT_H	0x3B
#define	ACCEL_XOUT_L	0x3C
#define	ACCEL_YOUT_H	0x3D
#define	ACCEL_YOUT_L	0x3E
#define	ACCEL_ZOUT_H	0x3F
#define	ACCEL_ZOUT_L	0x40
#define	TEMP_OUT_H		0x41
#define	TEMP_OUT_L		0x42
#define	GYRO_XOUT_H		0x43
#define	GYRO_XOUT_L		0x44
#define	GYRO_YOUT_H		0x45
#define	GYRO_YOUT_L		0x46
#define	GYRO_ZOUT_H		0x47
#define	GYRO_ZOUT_L		0x48
#define	PWR_MGMT_1		0x6B	//电源管理,典型值:0x00(正常启用)
#define	SlaveAddress	0x68	//MPU6050-I2C地址

例:GYRO_CONFIG寄存器

 

如果把[4:3]设置成0,就是±250。以此类推。

典型值为0x18,转换为二进制是00011000,[4:3]是11,转换十进制是3,即角速度传感器是2000

 上方选中的寄存器是用来存放加速度和角速度传感器的测量结果的。

3B和3C是存放X轴加速度的结果的,MPU6050测量的加速度的值是16位的,高位存放在ACCEL_XOUT_H,低位存放在ACCEL_XOUT_L。后面依次类推。

41和42是存放温度的结果的,MPU6050测量的加速度的值是16位的,高位存放在ACCEL_XOUT_H,低位存放在ACCEL_XOUT_L。

43和44是存放X轴角速度的结果的,MPU6050测量的加速度的值是16位的,高位存放在GYRO_XOUT_H,低位存放在GYRO_XOUT_L。后面以此类推。

MPU6050的IIC地址有两个,一个0x68一个0x69,他的地址由ADO决定,ADO的引脚接到低电平就是0,接到高电平就是1。(为了避免和其他芯片的地址冲突,所以设计成两个地址可选)

四、MPU6050寄存器读写时序 

4.1 向MPU6050的一个寄存器写一个字节的数据

MPU6050只能作为从机。

1.主机(Exynos4412)发送起始信号

2.主机发送从机地址(MPU6050的地址)及读写方向(写)

3.从机(MPU6050)发送应答信号

4.主机发送一个字节数据(要写的寄存器的地址)

5.从机发送应答信号

6.主机发送一个字节数据(要写到寄存器的数据)

7.从机发送应答信号

8.主机发送停止信号

4.2 从MPU6050的一个寄存器读一个字节的数据

1.主机(Exynos4412)发送起始信号

2.主机发送从机地址(MPU6050的地址)及读写方向(写)

3.从机(MPU6050)发送应答信号

4.主机发送一个字节数据(要写的寄存器的地址)

5.从机发送应答信号

6.主机(Exynos4412)发送起始信号

7.主机发送从机地址(MPU6050的地址)及读写方向(读)

8.从机(MPU6050)发送应答信号

9.从机发送一个字节数据(要读的寄存器中的数据)

10.主机发送非应答信号(不再接收更多的数据)

11.主机发送停止信号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/203140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

minio的k8s的单机部署

minio的k8s的单机部署 apiVersion: apps/v1 kind: Deployment metadata:name: minionamespace: itshare spec:replicas: 1selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:containers:- name: minioimage: minio/minio:RELEASE.2022-10-15T19-57-03Z…

Centos服务器上根据端口号查询jar包,根据jar包查端口号

在开发springboot服务器时,经常会遇到其他人部署的java服务,需要自己维护,留下的信息又非常少。经常面临找不到jar包位置,或者不知道占用端口,不知道启动命令的问题。这里记录一下常用的centos服务器上的命令&#xff…

python数据可视化工具 ----matplotlib

python数据可视化工具 ----matplotlib 一、安装matplotlib模块二、设置绘图风格三、画布四、折线图五、垂直柱状图六、水平柱状图七、饼状图八、散点图九、设置x,y轴坐标标题十、添加注释文字十一、设置标题十二、添加图例十三、绘制多子图十四、多个子图添加总标题十五、修改…

联通宽带+老毛子Padavan固件 开启IP v6

联通宽带开启IP v6 参考: 联通宽带开启 IPV6 的方法_联通ipv6怎么开通-CSDN博客 个人宽带如何开启IPv6网络访问 - 知乎 (zhihu.com) 首先,你要确定当前你所在的地区运营商已经开通了IPV6,可以使用手机流量 IP查询(ipw.cn) | IPv6测试 | IPv…

Altair推出 Altair RapidMiner 2023 平台,提供生成式 AI 功能

Altair推出 Altair RapidMiner 2023 平台,提供生成式 AI 功能 更新包括自动聚类、扩展 SAS、Python 和 R 编程功能等 近日,Altair(纳斯达克股票代码:ALTR)近日宣布其数据分析和 AI 平台 Altair RapidMiner 取得了一系…

ACM32F403/F433 12 位多通道,支持 MPU 存储保护功能,应用于工业控制,智能家居等产品中

ACM32F403/F433 芯片的内核基于 ARMv8-M 架构,支持 Cortex-M33 和 Cortex-M4F 指令集。芯片内核 支持一整套DSP指令用于数字信号处理,支持单精度FPU处理浮点数据,同时还支持Memory Protection Unit (MPU)用于提升应用的…

限流算法,基于go的gRPC 实现的

目录 一、单机限流 1、令牌桶算法 3、固定窗口限流算法 4、滑动窗口 二、集群限流 1、分布式固定窗口 (基于redis) 2、分布式滑动窗口 一、单机限流 1、令牌桶算法 令牌桶算法是当流量进入系统前需要获取令牌,没有令牌那么就要进行限…

Kafka使用指南

Kafka简介架构设计Kafka的架构设计关键概念Kafka的架构设计关键机制 Partition介绍Partition工作机制 应用场景ACK机制介绍ACK机制原理ACK机制对性能的影响ACK控制粒度Kafka分区数对集群性能影响调整分区优化集群性能拓展Kafka数据全局有序 Kafka简介 Kafka是由Apache软件基金…

同旺科技 USB TO RS-485 定制款适配器--- 拆解(二)

内附链接 1、USB TO RS-485 定制款适配器 ● 支持USB 2.0/3.0接口,并兼容USB 1.1接口; ● 支持USB总线供电; ● 支持Windows系统驱动,包含WIN10 / WIN11系统32 / 64位; ● 支持Windows RT、Linux、Mac OS X、Windo…

基于epoll实现Reactor服务器

了解epoll底层逻辑 在我们调用epoll_create的时候会创建出epoll模型,这个模型也是利用文件描述类似文件系统的方式控制该结构。 在我们调用epoll_create的时候,就会在内核管理中创建一个epoll模型,并且建管理模块地址给file结构体&#xff…

HNU-计算机网络-实验2-网络基础编程实验(Python3)

计算机网络 课程基础实验二 网络基础编程实验(Python3) 计科210X 甘晴void 202108010XXX 一、实验目的 ​ 通过本实验,学习采用Socket(套接字)设计简单的网络数据收发程序,理解应用数据包是如何通过传输层进行传送的。 二、实验…

ubuntu中显卡驱动,cuda,cudnn安装

1. 在ubuntu中安装显卡驱动 参考:https://blog.csdn.net/m0_37605642/article/details/119651996 2.在ubuntu中安装cuda 参考:https://blog.csdn.net/m0_61431544/article/details/127007300 2.1 安装cuda cuda官网: https://developer.n…

前端“量子纠缠”:multipleWindow3dScene 来了

最近前端实现的量子纠缠在网络上火了起来,作者bgstaal的推文:效果如下: 量子纠缠 那我们一起来看下什么是量子纠缠,以及前端是如何实现的。 什么是量子纠缠? 在量子力学里,当几个粒子在彼此相互作用后&…

大数据Doris(三十三):Doris高级设置

文章目录 Doris高级设置 一、增大内存

【华为数据之道学习笔记】2-建立企业级数据综合治理体系

数据作为一种新的生产要素,在企业构筑竞争优势的过程中起着重要作用,企业应将数据作为一种战略资产进行管理。数据从业务中产生,在IT系统中承载,要对数据进行有效治理,需要业务充分参与,IT系统确保遵从&…

AWS Remote Control ( Wi-Fi ) on i.MX RT1060 EVK - 2 “架构 AWS”

接续上一章节,我们把开发环境架设好之后,此章节叙述如何建立 AWS IoT 环境,请务必已经有 AWS Account,申请 AWS Account 之流程将不在此说明。 III-1. 登入AWS IoT, 在“管理”>“所有装置”>“实物”下点击“建…

IDEA切换Python虚拟环境

前言 因为之前一直使用的IDEA开发,换到VSCODE之后各种不习惯,特别是DEBUG的操作,特别难受,因此决心换回IDEA 环境配置 已有项目调整 进入Project 选择SDKs,新建Python 配置Conda以及虚拟环境 有就选择一个虚拟环境…

LeetCode-周赛-思维训练-中等难度

第一题 1798. 你能构造出连续值的最大数目 解题思路 我们先抛开原题不看,可以先完成一道简单的题目,假设现在就给你一个目标值X,问你能够构造出从【1~X】的连续整数,最小需要几个数? 贪心假设期望:我们要…

Path Finder for Mac:超越系统的文件管理利器

Path Finder for Mac是一款卓越的文件管理器,它不仅具备基本的文件浏览、打开、复制和移动等操作功能,还引入了一系列强大的特性,使得用户可以更高效地管理和处理文件。 一、强大的预览功能 Path Finder for Mac支持多种文件格式的预览&…

题目分析,高度理解一维二维数组的申请和[]是什么运算符

第0题: 动态申请二维数组并输出非负数和 和负数出现次数 思路:输入数组大小,然后申请内存并不对其初始化,提高速度,传入数据到申请的数组中,判断如果数组中有元素小于0对其进行计数,否则加上非0数最后输出答案,释放内存 第一题: 解答: 运行结果: 思路分析: 创建长度为20的…