现象:
产品开发完成,并且经过严苛、详细的测试后,已经开始批量生产了,但是大家提出一个问题:能不能把功耗再降低一些,目前产品的功耗有些高(超过50uA),用干电池供电的话,用不了1年就要换电池。
试验:
因为我们一直以来的产品都是电池供电的,对于产品的功耗一直都做得很低,这也是我们一直使用TI的MSP430系列单片机的原因,因为它的超低功耗做的确实很好。
不过这款产品因为功能太多,并且有一个很好点的地方:每1s都要进行一次串口通信(每次通信几十个字节,波特率9600),在最初方案设计以及产品验证时,所有参与人员都认为目前的功耗已经做到最好了,没有再下降的空间了。并且这款产品的功耗与其他厂家同类产品相比,功耗基本一样。所以就觉得功耗降不下来了。
但是今天忽然考虑到一个问题:msp430单片机数据手册上说,低功耗状态下,单片机检测到中断后,进行中断处理时,自动退出低功耗状态,处理完中断后,退出中断时自动进入低功耗状态,而如果在退出中断时手动添加了退出低功耗状态的语句,那退出中断后,是不会进入低功耗状态的。而我们的程序由于接受完完整的一帧数据后,需要进行及时处理,所以在退出中断时,添加了退出低功耗状态的语句,在主循环中处理完数据后,才会再次进入低功耗状态。
因为串口采用的中断方式,每次中断接受一个字节,所有数据接收完后才会处理,所以,能不能在没有接收完所有数据的时候,串口中断退出时直接进入低功耗状态?
于是对程序进行了优化:只有在接收完一帧数据后才退出低功耗状态,否则不退出低功耗状态。
验证:
根据这个想法,对程序中的串口中断函数退出时根据条件退出或不退出低功耗状态,经过测试,电流减小了20uA左右,效果明显。
备注:
msp430单片机的的超低功耗确实很强大,但是实现起来是需要不断地深入研究,实践,最后总能做到更低功耗。
关键字:msp430 单片机
引用地址:
msp430单片机开发实录(25)
推荐阅读最新更新时间:2024-11-10 04:34
MSP430与12864连接驱动程序(KS0108)
#include msp430x14x.h // Standard Equations #include math.h #include stdlib.h #include stdio.h #include string.h #include ctype.h #include HZTable.h #include ASCII816.h #define uint unsigned int #define uchar unsigned char //********************************************** #de
[单片机]
带中断的单片机红绿灯
带中断的单片机红绿灯源程序: #include reg51.h #include intrins.h #define uchar unsigned char sbit c=P1^1; sbit d=P1^4; uchar led ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0到9数码管显示 void delay1(uchar j)//延时若干ms {uchar i; while(j--) {for(i=0;i 125;i++) for(i=0;i 125;i++);} } void delay(uchar i) //延时1秒钟 { unsigned c
[单片机]
MSP430F5529-MPU6050陀螺仪
这里使用的是维特智能的JY61陀螺仪,具体信息可以参考官网mpu6050三轴六轴加速度计姿态角度传感器模块维特智能JY61 JY61型陀螺仪可以通过I2C或者串口模式向开发板传输数据,但是I2C通信传过来的数据是原始数据,未经处理,需要自己解算姿态。串口通信传过来的数据是经过陀螺仪内部解算后的结果。以下为串口输出结果: 一般串口输出取用角度输出值。 I2C通信可以选择硬件通信或者模拟通信。硬件通信需要在开发板上配置相关的I2C引脚,模拟通信只要随意选择两个普通GPIO口即可。 串口接收数据仅需让陀螺仪的TX口,即发送口,接开发板的RX口,即接收口。供电3.3V与正常接地
[单片机]
通过ESP8266和RP2040 MCU实现无线树莓派HAT控制的PiSquare
原文链接:PiSquare enables wireless Raspberry Pi HAT control though ESP8266 and RP2040 MCUs (Crowdfunding) 由Jean-Luc Aufranc撰写。 SB Components PiSquare 是一款外形尺寸与树莓派HAT一样的板子,它是基于树莓派RP2040微控制器和ESP-12E的无线模块,可以方便无线控制多个树莓派 HAT,而且无需将那些HAT堆叠在树莓派上。 PiSquare使用socket编程的方式来无线控制多个树莓派HAT,例如,你们可以通过SPI或UART连接多个HAT,而其扩展板不会相互冲突,因为这里的物理接口
[工业控制]
基于单片机的四位二进制转十进制计算显示程序
此程序是根据自己的单片机板子写的,四位共阳数码管。 k1-k4是板子上的4个键 用来进行二进制输入,因为按键只有按下和没有按下两种状态, 十进制的数值就显示在数码管上. #include reg51.h #define uchar unsigned char #define uint unsigned int uchar code smg ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar data yy ={0xff,0xfe,0xfc,0xf8,0xf0,0xfe0,0xc0,0x80,0x00}; uint a; sbit K1=P3^0
[单片机]
基于STM32H7 MCU的智能家居语音接口参考设计
STEVAL语音接口可将基于云计算服务的Alexa体验带到烤箱、炉灶、温度计、百叶窗、吹风机等家电产品,减少传统按钮和旋钮的使用,而无需在电子硬件上大量投资。本方案采用集成了Alexa语音用户接口软件的STM32H7 MCU,可简化家电控制器的研发,而且软、硬件都可以轻松调整和修改。 图1. STEVAL语音接口样板 方案特点 ASTEVAL-VOICE-UI语音接口参考设计包括一个STM32H743高性能MCU、一个Wi-Fi模块,板子尺寸36mm x 65mm。与采用DSP、无闪存处理器等常用元器件的Alexa产品不同,本方案即使环境吵闹嘈杂,麦克风间隔很小,音频前端仍能提供出色的远场语音检测功能。 图2. STEVA
[单片机]
PIC16F84单片机控制电风扇的设计
一、硬件电路及原理 要使电风扇送出仿自然风,就需要改变电风扇送风的强弱,即需要改变风扇电机的电压和电流,从而改变其转速。如图1所示,风扇插座与晶闸管TREAC相串联,改变晶闸管控制角α,即控制晶闸管导通的时间,就能使风扇电机的电压、电流发生变化。图2展示了α角和电机负载电压的关系。 Α角的变化又可通过电容C1的充放电时间的改变来实现。PIC16F84单片机按一定规律选择电阻Rx,即可改变电容C1的充放电时间,从而改变2N2646的导通时间。改变了TREAC的导通角,达到改变电风扇送风强弱的目的。控制角α和强弱风的关系如图3所示 市电频率f=50Hz,则可得下式 α/360°=t/0.02……………(1) 根据图1所示RxC
[单片机]
深入解析汽车MCU的软件架构
电动汽车(EV)正在成为首选的交通方式,为传统内燃机汽车提供了一种可持续发展的环保型替代方案。在电动汽车复杂的生态系统中,众多电子控制单元(ECU)在确保其高效运行方面发挥着至关重要的作用。电机控制单元(MCU)就是这样一个 ECU,它是电机性能背后的大脑。在这篇综合文章中,我们将探索电机控制单元的世界,研究它们的功能、组件以及影响汽车 MCU 领域的最新趋势。 了解电动汽车使用的电机 在深入研究电动汽车电机控制单元的复杂性之前,有必要了解电动汽车常用的各种电机类型。最常见的两种类型是无刷直流(BLDC)电机和永磁同步(PMS)电机。 无刷直流电机又称电子换向电机,无需电刷和换向器,从而提高了效率,减少了维护。从本质上讲,它的
[嵌入式]