网站建设结课策划书,成都市房产信息网,html5视频播放器 js,申请开网店的详细步骤一、Exynos_4412下的IIC控制器
4412有四个IIC#xff0c;如果要使用需要配置四个寄存器
I2CCON#xff1a;配置一些功能
I2CSTAT#xff1a;控制一些功能、显示一些状态
I2CDS#xff1a;发送和接收数据
I2CADD#xff1a;当4412作为从机时需要一个地址#xff…一、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的状态 I2CADD4412的地址。作为从机时才需要设置。 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.主机发送停止信号