會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





[PIC16F690] 問省電
資深會員
註冊日期:
2006/02/10 09:49
所屬群組:
註冊會員
文章: 298
等級: 16; EXP: 14
HP : 0 / 378
MP : 99 / 14686
離線
各位先進:
小弟最近需要做省電的產品。
需要5V 驅動,選用的是PIC16F690,內部震盪。
每固定時間去完成某件事,做完就去睡覺。
每個Port 我都設定為輸出,並且空接(除了RA0),

我發現31K 的耗電量是 4M 的8-10 倍。

Why?


main()
{
char bCount=0;
OSCCON =0b01100001; // 4M Hz
PORTA =0b00000000;
PORTB =0b00000000;
PORTC =0b00000000;
ANSEL =0b00000000; // AN2,AN1
ANSELH =0b0000; // AN11~AN8
TRISA =0b00000001;
TRISB =0b00000000;
TRISC =0b00000000;

for(;;)
{
bCount++;
UltraLowPowerSleep();
// About 1s WakeUp Once
}
}

2016/10/18 16:49
轉換PDF檔 列印


Re: [PIC16F690] 問省電
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14733
等級: 73; EXP: 42
HP : 1086 / 1810
MP : 4911 / 79635
離線
說實在看 Data Sheet 還是無法正確指出原因。

我在想是不是自睡眠模式醒來以後因頻率的部銅導致執行的時間也不同所言生出來的耗電。

請確認一下睡醒後到下一次睡覺,這段期間需執行多少指令? 舉例說 4MHz 的執行只要一秒,但再 31KHz 就需要 待 129 秒的時間。再將兩個耗電量乘上時間後就會有差異出來。

2016/10/20 10:03
轉換PDF檔 列印


Re: [PIC16F690] 問省電
資深會員
註冊日期:
2007/06/05 21:45
所屬群組:
註冊會員
文章: 1026
等級: 28; EXP: 30
HP : 0 / 682
MP : 342 / 23845
離線
4M/31K = 約129倍
相同的工作指令,在頻率4M及31K上,兩者相差129倍的時間.

你的週期時間(工作+休眠)是固定的嗎?
||||_______||||_______
|||| ==> 表示工作時間
||||_______ ==> 工作+休眠 = 週期時間

例: 週期時間固定為1000ms(1秒)
||||______||||_______|||||______ ...

註: MCU工作時間,簡化為 取決於 頻率快慢
假設: 頻率4M 工作時間為 1ms
週期時間(固定1000ms) = 工作(1ms) + 休眠(999ms)
則 休眠/週期時間 = 999/1000 = 99.9%
相同的工作(指令)換成 頻率31K 工作時間為 約為129ms (= 1ms*129)
週期時間(固定1000ms) = 工作(129ms) + 休眠(871ms)
則 休眠/週期時間 = 871/1000 = 87.1%

假設: 4M 工作時間為 2ms
週期時間(固定1000ms) = 工作(2ms) + 休眠(998ms)
則 休眠/週期時間 = 998/1000 = 99.8%
換成 31K 工作時間為 約為258ms (= 2ms*129)
週期時間(固定1000ms) = 工作(258ms) + 休眠(742ms)
則 休眠/週期時間 = 742/1000 = 74.2%

假設: 4M 工作時間為 4ms
週期時間(固定1000ms) = 工作(4ms) + 休眠(996ms)
則 休眠/週期時間 = 996/1000 = 99.6%
換成 31K 工作時間為 約為516ms (= 4ms*129)
週期時間(固定1000ms) = 工作(512ms) + 休眠(488ms)
則 休眠/週期時間 = 488/1000 = 48.8%


休眠的學問大,休的好,省電又達到即時回應效果...
休不好,不是沒省電,就是得不到效果(反應過慢)...

休的好
例: 固定週期時間...
||||____________||||__________ 1ms(工作) + 999ms(休眠)
反應周期(最長)為1秒
若 1秒的反應時間太長(反應太慢),則可縮短為0.1秒(100ms,快10倍)
或0.2秒(200ms,快5倍),...
反應變快 休眠比率改變(耗電增加)
1000ms , 休眠比 = 999/1000 = 99.9%
100ms , 休眠比 = 99/100 = 99%
200ms , 休眠比 = 199/200 = 99.5%
都有99%以上

休不好
例: 固定週期時間...
||||____________||||__________ 129ms(工作) + 871ms(休眠)
反應周期(最長)為1秒
若 1秒的反應時間太長(反應太慢),則可縮短為0.1秒(100ms,快10倍)
或0.2秒(200ms,快5倍),...
反應變快 休眠比率改變(耗電增加)
1000ms , 休眠比 = 871/1000 = 87.1%
100ms , 休眠比 = 工作時間(129ms)比週期時間(100ms)還長(沒休眠)
200ms , 休眠比 = 71/200 = 35.5%
反應是加快了,但沒有省電效果...

註: 沒討論的事項...
1. 相同時間工作時間,不同頻率的功耗不同,
2. 不是固定週期時間(ex:外部事件觸發...)

2016/10/20 13:09

jason680 於 2016年10月20日 14:02:45
轉換PDF檔 列印


Re: [PIC16F690] 問省電
資深會員
註冊日期:
2006/02/10 09:49
所屬群組:
註冊會員
文章: 298
等級: 16; EXP: 14
HP : 0 / 378
MP : 99 / 14686
離線
感謝版主及傑森精彩的回覆
我身旁沒有微電流可以量測 31K 及 4M 對於每一MC 所耗用的功耗。
我只是用一低漏電電容,充飽電後到MCU完全不能動來觀察。
原先以為 31K 可以做完後睡覺,應該會比 4M 解省功耗。
但31K 在我的電路中撐不到1分鐘,4M 卻可以撐到5分鐘以上。
我沒時間去研究為什麼(被追殺了)。
只是顛覆我的舊思維。

2016/10/20 13:41
轉換PDF檔 列印


Re: [PIC16F690] 問省電
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14733
等級: 73; EXP: 42
HP : 1086 / 1810
MP : 4911 / 79635
離線
測量小電流可以用串電阻量壓降的方式測量。
以串1K歐姆為例,壓降0·01V則電流為10uA。

配合示波器更可測量到耗電的變化。

2016/10/20 14:27

Ryang 於 2016年10月20日 18:02:49
轉換PDF檔 列印


Re: [PIC16F690] 問省電
資深會員
註冊日期:
2012/05/04 19:18
所屬群組:
註冊會員
文章: 222
等級: 13; EXP: 91
HP : 0 / 322
MP : 74 / 6644
離線
想問一個問題,不管你用31k or 4M,睡覺之後如何叫醒?
你可以簡單用點燈來表示WORK跟SLEEP的DUTY CYCLE先看一下如何,
就能知道工作多久睡多久了,有一點要注意的是用速度快的頻率不見得平均耗電會比較大,因為工作時間比較短;而用低頻也不見得比較省電,原因是工作時間長,取得速度跟耗電之間的平衡就是你要去取捨的.

2016/10/24 09:02
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project