|
低功耗項(xiàng)目從年前到年后也花了接近一個(gè)月左右的時(shí)間,其實(shí)主要的時(shí)間也是花在功耗問題上面,在此對(duì)低功耗方面做一個(gè)總結(jié),說不上是什么技術(shù)分享,只是想把自己遇到的問題說給大家聽聽,大家共同學(xué)習(xí),希望對(duì)后期制作低功耗項(xiàng)目有所幫助。
該項(xiàng)目大體情況:項(xiàng)目使用在一個(gè)無電場(chǎng)所,所以需要電池供電,而且由于設(shè)備上最終需要使用12-15V供電傳感器,傳感器(功耗在30-60mA)數(shù)據(jù)通過無線模塊發(fā)射到服務(wù)器終端。
項(xiàng)目解決方案:
1、12-15V電源使用電池串聯(lián)方式供電(5號(hào)電池10節(jié)串聯(lián)后再并聯(lián)一組共20節(jié)蓄能基本在2000mA左右),由于電池在使用過程中電壓會(huì)降低,當(dāng)電壓低于12V時(shí)向服務(wù)器發(fā)送更換電池請(qǐng)求。
2、對(duì)于STM32電源使用雙電源方案,待機(jī)使用低功耗變壓芯片(允許最大電流小),工作是使用1117變壓芯片。
3、低功耗變壓芯片與1117“并聯(lián)”,電壓輸出使用二極管隔離,1117芯片通過STM32控制場(chǎng)效應(yīng)管控制其輸入電源,當(dāng)STM32進(jìn)入待機(jī)模式,場(chǎng)管斷開,1117停止供電。
項(xiàng)目遇到的問題:
最開始計(jì)劃經(jīng)過數(shù)據(jù)手冊(cè)的查閱確實(shí)是被STM32L系列的芯片功耗所“誘惑”,所以決定使用STM32L051C8作為主控。當(dāng)初并沒有因?yàn)樾酒瑸椴虐l(fā)布不久而過多的擔(dān)心,反倒覺得是新發(fā)布的芯片肯定會(huì)更好用。但是在做項(xiàng)目的時(shí)候才發(fā)現(xiàn)在官網(wǎng)找不到標(biāo)準(zhǔn)庫,只有HAL庫。所以當(dāng)初就使用STMCube生成工程,但是RTC之中出現(xiàn)奇特問題,就是亞秒級(jí)在變化,但是秒不變,經(jīng)過長(zhǎng)期檢查而不得結(jié)果便開始決定直接操作寄存器,但是無意中又發(fā)現(xiàn)其標(biāo)準(zhǔn)庫。RTC最終正常,但是待機(jī)功耗400uA。因?yàn)榻回洷容^緊故改為STM32F103c8其待機(jī)功耗5uA。(最終項(xiàng)目完成后重新焊接L051為3uA,但是由于值差2uA就沒有重新修改項(xiàng)目)。
項(xiàng)目相關(guān)我就不上傳了。再次上傳電流照片和標(biāo)準(zhǔn)庫DEMO。
|
待機(jī)功耗
工作功耗(加傳感器)
- #include "stm32l0xx.h"
- int mainbn(void)
- {
- GPIO_InitTypeDef GPIOInitStructure;
- SystemInit();
- GPIOInitStructure.GPIO_Pin=GPIO_Pin_7;
- GPIOInitStructure.GPIO_Mode=GPIO_Mode_OUT;
- GPIOInitStructure.GPIO_OType=GPIO_OType_PP;
- GPIOInitStructure.GPIO_PuPd=GPIO_PuPd_UP;
- GPIOInitStructure.GPIO_Speed=GPIO_Speed_10MHz;
- GPIO_Init(GPIOB,&GPIOInitStructure);
- GPIOInitStructure.GPIO_Pin=GPIO_Pin_1;
- GPIO_Init(GPIOA,&GPIOInitStructure);
- GPIO_SetBits(GPIOB,GPIO_Pin_7);
- GPIO_ResetBits(GPIOA,GPIO_Pin_1);
-
- }
復(fù)制代碼
STM32L0xx-Code(SLEEP2Min-RUN2Min).zip
(4.89 MB, 下載次數(shù): 29)
2016-6-17 13:25 上傳
點(diǎn)擊文件名下載附件
|
|