历史上的今天
今天是:2024年10月10日(星期四)
2019年10月10日 | 基于MSP430F413水果电池供电的低功耗时钟
2019-10-10 来源:eefocus
我最早接触MSP430时候,看到书的第一页就是一张水果电池的图片,一直以来想做一个低功耗的可以水果电池供电的系统,毕业之后的下半年选择MSP430F413单片机来画了一个低功耗的板子,一直没有调试成功,液晶显示太暗几乎看不到,最近又拿出来调试,更换偏压电阻,最终更换液晶后才可以正常显示,先看下最终效果:
最终效果

电路图:

调试过程
最初调试时,先准备好苹果一个,电池正负极(铜锌),程序是显示一个数字,效果如下:

突发奇想,用自来水试了一下,效果也是杠杠的(程序中间修改过,这是显示较多的液晶段):

时钟调试效果(这里电池没有接入电路,调试时所用,当时没有拿下来,用跳线帽接到水果供电的电路上):

刚刚调试时,万用表测试水果电池电压接近0.9V,短路电流25-30uA,接上电路仅显示数字7的时候,电流12uA,4节水果电池电压从3.4降到2.6V;水(普通自来水,每个地方水中含有离子数量不一样,获得电压电流都有区别)每节电池0.8V,短路电流接近40uA。
程序换为时钟时,水果电池3.4V降到2.2V,大约维1个多小时,液晶完全没有显示,电极片换个位置重新插一下,时钟可以继续运行,测试电压和新做水果电池一样,苹果都要变干的时候,电压低一些,液晶明显变暗。

后来,电路中提供液晶偏压电压的电阻有330K改为1M后,系统电流降到大约10uA,水果电池大约可以维持3-4小时,用水做的电池可以维持24小时以上

功耗分析
这个低功耗的电路还有优化空间,单片机的不用的引脚可以再做优化,现有线路中有一般的液晶段引脚没有使用,却也提供的驱动波形,这里相对现有系统应当是浪费电流最大的一部分;另外一个优化空间是4个按键的上拉电阻太小,10K,3V的时候,按键按下瞬间,电流可以达到300uA,用水果电池的时候,按键功能不能使用,现在调试的时候,都是先拿CR2302供电,调节好时间后,再用水果(水)电池供电。
进一步优化功耗后,电流应当可以降到5uA以下。
程序
按键程序继续使用之前程序库中的按键程序;
RTC计时使用TI的RTC软件库
段码液晶的程序由程序库中的数码管程序移植而来:
#include #include "segment_lcd_btl006.h" /*宏定义,数码管a-h各段对应的比特,更换硬件只用改动以下8行*/ #define a 0x01 // AAAA #define b 0x02 // F B #define c 0x04 // F B #define d 0x80 // GGGG #define e 0x40 // E C #define f 0x10 // E C #define g 0x20 // DDDD HH #define h 0x08 //小数点 /*用宏定义自动生成段码表,很好的写法,值得学习*/ /*更换硬件无需重写段码表*/ const char tab[] = { a + b + c + d + e + f, // Displays "0" b + c, // Displays "1" a + b + d + e + g, // Displays "2" a + b + c + d + g, // Displays "3" b + c + f + g, // Displays "4" a + c + d + f +g, // Displays "5" a + c + d + e + f + g, // Displays "6" a + b + c, // Displays "7" a + b + c + d + e + f + g, // Displays "8" a + b + c + d + f + g, // Displays "9" a + b + c + e + f + g, // Displays "A" c + d + e + f + g, // Displays "B" a + d + e + f, // Displays "C" b + c + d + e + g, // Displays "D" a + d + e + f + g, // Displays "E" a + e + f + g, // Displays "F" a + c + d + e + f, // Displays "G" b + c + e + f + g, // Displays "H" e + f, // Displays "I" b + c + d + e, // Displays "J" b + d + e + f + g, // Displays "K" d + e + f, // Displays "L" a + c + e + g, // Displays "M" a + b + c + e + f, // Displays "N" c + e + g, // Displays "n" c + d + e + g, // Displays "o" a + b + c + d + e + f, // Displays "O" a + b + e + f + g, // Displays "P" a + b + c + f + g, // Displays "Q" e + g, // Displays "r" a + c + d + f +g, // Displays "S" d + e + f + g, // Displays "t" a + e + f , // Displays "T" b + c + d + e + f, // Displays "U" c + d + e, // Displays "v" b + d + f + g, // Displays "W" b + c + d + f + g, // Displays "Y" a + b + d + e + g, // Displays "Z" g, // Displays "-" h, // Displays "." 0 // Displays " " }; #undef a #undef b #undef c #undef d #undef e #undef f #undef g void lcd_init() { // Initialize LCD LCDCTL = LCDP1+LCDP0+LCD4MUX+LCDON; // 4-Mux LCD, segments S0-S23 BTCTL = BTFRFQ1; // Set freqLCD = ACLK/128 P5SEL = 0xFC; // Set Rxx and COM pins for LCD // Clear LCD memory to clear display for (int i=0; i<12; i++) { LCDMEM[i] = 0x00; } }
史海拾趣
|
利用电流传感器进行过流检测的IGBT保护电路 图8是利用电流传感器进行过流检测的IGBT保护电路,电流传感器(SC)初级(1匝)串接在IGBT的集电极电路中,次级感应的过流信号经整流后送至比较器IC1的同相输入端,与反相端的基准电压进行比较,IC1的 ...… 查看全部问答> |
|
关于arm嵌入式开发,nand 无法启动的问题!急切求帮助! 我开发板上nor flash使用的是sst39vf1601,NAND FLASH使用的是k9f2g08uom,首先从nor 启动,使用usb下载,烧进steprdl.nb1,eboot,logo文件,显示都ok,烧文件的过程中,nand 的片选,读写信号正常。接上跳线冒,从NAND 启动,一直都起不起来,没有读 ...… 查看全部问答> |
|
请教在 Windows Mobile 5,6 (PPC) 上如何保持 SD 卡的供电(即便在系统 suspend 的时候) 请教在 Windows Mobile 5,6 (PPC) 上如何保持 SD 卡的供电(即便在系统 suspend 的时候) 问题起因: 由于 WM 会在系统 suspend 的时候关闭 SD 卡电源,于是导致在系统 awake 之后应用程序所持有的文件句柄失效(短暂失效或者永久失效),进而导 ...… 查看全部问答> |
|
明明显示数据库打开失败,但是可以对数据库进行操作 BOOL CEvcsqlserverceDlg::OpenDatabase(LPCTSTR szDbName) { HRESULT hr; VARIANT varConn1; //与指定的数据库 ...… 查看全部问答> |
|
philips isp1581的驱动程序 phkit.sys 提供给应用程序的接口函数有哪些 要编写philips isp1581的应用程序,现在不知道它的驱动phkit.sys 提供了怎样的接口函数,哪个达人知道的,告诉一声,感激不尽。… 查看全部问答> |
|
一个经过A/D转换后发送到C51单片机的数字量怎么和一个RS422协议的数字量通过一个串口发给PC机? 系统要求是一个数据采集,现在有两个传感器,一个输出是0-10V模拟量,一个是25位的RS422数字量。模拟量可以通过一个C51单片机和一个A/D转换变成数字量。 那么我想请教怎么能把这两个不同的数字量通过一个串口发送给PC机! … 查看全部问答> |
|
各位好: 由于stm8s207k6的NSS脚不是片选脚,那请问一个主机和多从机SPI通讯功能怎么实现? 其他MCU都有CS脚可以很方便实现多从机功能. ST的MCU怎么这么怪啊?… 查看全部问答> |




