新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > MPU6050和STM32L152的微功耗三维无线鼠标设计

MPU6050和STM32L152的微功耗三维无线鼠标设计

作者:时间:2016-09-12来源:网络收藏

摘要:利用运动传感芯片,设计了一款运动感知及处理模块功耗仅为1.2 mA左右的低功耗三维鼠标。针对功耗问题,详细介绍了符合鼠标低功耗工作要求的低功耗运行、睡眠模式配置,以及加速度计单独循环、单轴加速度计工作模式的配置,给出了加速度计标定及基于加速度计的姿态角计算方法,实现了鼠标姿态的精确测量。

本文引用地址:http://www.eepw.com.cn/article/201609/303454.htm

关键词:;;三维无线鼠标

引言

针对低功耗设计问题,大多数三维无线鼠标仅考虑无线模块的低功耗设计。本文在此基础上,进一步将鼠标处理器模块及惯性测量模块功耗考虑进来,实现一款功耗更低、性能更优的三维无线鼠标。

1 方案选择

系统主要由电源模块、运动感测追踪组件MPU6050模块、串口转无线WiFi模块和主控芯片STM32L152构成,系统功能框图如图1所示。这里WiFi模块只是用于远程传输测试,不在低功耗设计考虑之中,若考虑远程传输低功耗设计,则使用ZigBee无线传输。

2 硬件电路设计

2. 1 微控制器接口电路

主控芯片STM32L152与MPU6050的I2C和串口转WiFi模块的接口电路如图2所示。

2.2 运动感测追踪组件MPU6050电路

MPU6050硬件电路设计如图3所示,将其SCL、SDA端口连接4.7 kΩ上拉电阻(否则I2C总线不能通信),并与微处理器PB8、PB9引脚相连;AD0经4.7 kΩ电阻接地,读写器件地址为0xD0,若悬空或接高电平,地址为0xD2;滤波电容取值0.1μF,电荷泵电容取值10 μF,否则片上传感器不工作。

2.3 串口转WiFi模块电路

WiFi232-s是一款实现串口到WiFi数据包的双向透明转发,其内部完成协议转换。串口转WiFi模块电路如图4所示。通过串口或WiFi网络连接至电脑,可以对模块进行AT指令集设置其配置参数。其中9、10、12引脚接4.7 kΩ上拉电阻,5、6引脚接处理器串口引脚PD8、PD9。

3 软件设计

3.1 三维鼠标低功耗设计描述

使用MPU6050可以设计两种三维鼠标:基于加速度计或陀螺仪,这里主要讨论基于加速度计的三维

三维鼠标低功耗设计中,主要实现在鼠标不工作时系统进入睡眠模式,达到功耗最低,并且能够及时从睡眠中唤醒,进入工作状态。因此,在微处理器STM32L152中设置一个3s定时器,用来扫描鼠标当前状态是否符合进入睡眠模式条件。每当定时溢出中断到来后,采集加速度计Z轴输出值并持续0.5s,采集的当前数据与上一时刻相减得到变化值,判断其是否大于所设的阈值,并对这些大于阈值的数据进行计数。若计数大于所设阈值,则鼠标仍然保持工作状态,等待下一次定时中断到来,此时STM32L152为低功耗运行模式,MPU6050工作模式为加速度计单独循环模式;若计数小于所设阈值,则鼠标进入睡眠模式,此时微处理器设置为低功耗睡眠模式,MPU6050的工作模式设置为加速度计Z轴工作,其余轴为Standby待机模式。

3.2 MPU6050低功耗设置

(1)MPU6050加速度计单独循环工作模式

三维鼠标的MPU6050模块中的三轴加速度计设置为循环工作模式,三轴陀螺仪设置为Standby待机模式,此时MPU6050电流消耗500μA。

MPU6050生产商已经给出了编程所需头文件mpu6050.h,其将编程中所用到的寄存器都做了定义,如MPU6050 DEFAULT ADDRESS,在头文件中对应地址为0xD0或0xD2。

(2)MPU6050其他工作模式配置

MPU6050睡眠模式:电源管理1寄存器PWR_MGMT_1设置为0x40。此时加速度和陀螺仪传感器都进入Standby待机模式,陀螺仪输出值为0,加速度传感器输出一个固定值,MPU 6050电流消耗为5μA。

MPU6050陀螺仪单独运行模式:电源管理1寄存器PWR_MGMT_1设置为0x0C,电源管理2寄存器PWR_MGMT_2设置为0x38。此时只有陀螺仪传感器工作,加速度计进入Standby待机模式,输出为一个固定值,MPU6050电流消耗为3.6 mA。

3.3 STM32L152低功耗设置

注意,一般睡眠函数放置在while循环最后执行,在其他任务跑完后进入睡眠模式,待中断到来时唤醒。

(3)STM32L152低功耗模式参数

低功耗睡眠模式:当静止不动时,三维鼠标会进入不工作状态。此时只有微处理器中的3 s定时扫描MPU6050加速度计Z轴动作的定时器在工作,在1.8 V或3 V电压下,微处理器功耗为6.1μA。

低功耗运行模式:三维鼠标进行旋转或位移动作时,进入工作状态,此时STM32L152处于低功耗运行模式,主频设置为16 MHz。关闭所有无关的外设,其电流消耗在500 μA左右。

3.4 鼠标工作状态及睡眠状态下的总功耗

鼠标正常工作状态:STM32L152工作在低功耗运行模式,MPU6050工作在加速度计单独循环模式,电流消耗在1.2 mA左右。

  • STM32单片机中文官网
  • STM32单片机官方开发工具
  • STM32单片机参考设计

上一页 1 2 下一页

评论


技术专区

关闭