|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
為什么PIC12F629在sleep模式下工作電流這么大,如何降低? |
| 作者:qiang 欄目:單片機(jī) |
資料上寫PIC12F629在sleep模式下電流小于1ua,可是不論我如何設(shè)置,包括關(guān)閉BOD、關(guān)閉WDT、關(guān)閉弱上拉、用32k晶體、斷開所有外圍電路、把所有引腳都設(shè)置為輸入并且接10k上拉電阻等等方法,工作電流還是在300ua左右,請問如何正確設(shè)置才能降低功耗? 我是用JDM來燒寫的。 |
| 2樓: | >>參與討論 |
| 作者: imwangyi 于 2004/9/7 11:26:00 發(fā)布:
比較器關(guān)了么? |
|
| 3樓: | >>參與討論 |
| 作者: xieyuanbin 于 2004/9/7 11:36:00 發(fā)布:
AD模塊和它的振蕩器關(guān)了嗎? TMR1的時鐘驅(qū)動關(guān)了? |
|
| 4樓: | >>參與討論 |
| 作者: qiang 于 2004/9/7 13:18:00 發(fā)布:
比較器關(guān)了,能夠關(guān)的基本都關(guān)了,程序如下 __CONFIG _LP_OSC & _MCLRE_OFF & _WDT_ON & _PWRTE_ON & _BODEN_OFF & _CP_OFF & _CPD_OFF ;復(fù)位入口,關(guān)閉time0、time1、比較器、中斷等,置WDT為1S, INIT BCF STATUS,RP0 ; bank 0 CLRF PCLATH ; clear upper PC bits for jumps MOVLW B'00000111' ; CLOSE CM MOVWF CMCON BSF STATUS,RP0 ; bank 1 MOVLW B'11111111' MOVWF TRISIO MOVLW B'10001110' ; set WDT 1:64, 18ms*64=1s MOVWF OPTION_REG CLRF PIE1 CLRF IOC CLRF VRCON BCF STATUS,RP0 ; bank 0 CLRF INTCON ; No interrupts CLRF T1CON MOVLW 0xFF MOVWF GPIO wait sleep goto wait END |
|
| 5樓: | >>參與討論 |
| 作者: xieyuanbin 于 2004/9/7 14:35:00 發(fā)布:
您的WDT還開著。 |
|
| 6樓: | >>參與討論 |
| 作者: qiang 于 2004/9/7 15:25:00 發(fā)布:
呵,沒注意到,貼出來的程序是開WDT的,但是開不開WDT結(jié)果差不多 開不開WDT結(jié)果差不多,電流還是那么大 |
|
| 7樓: | >>參與討論 |
| 作者: imwangyi 于 2004/9/7 17:10:00 發(fā)布:
沒仔細(xì)看資料——WPU設(shè)置看了么? bsf status,rp0 movlw 0x00 movwf wpu bcf status,rp0 |
|
| 8樓: | >>參與討論 |
| 作者: qiang 于 2004/9/7 17:28:00 發(fā)布:
OPTION_REG 的GPPU=1,應(yīng)該就關(guān)閉了Pull_up,我晚上再調(diào)試看看 |
|
| 9樓: | >>參與討論 |
| 作者: imwangyi 于 2004/9/7 17:33:00 發(fā)布:
OPTION_REG與WPU控制的是不同的上拉。 錯了,老大。 兩個不同的,我都是以前做過類似的項目才知道的。 WPU控制的上拉只有在sleep的時候才工作,不信可以用示波器看看哦。 |
|
| 10樓: | >>參與討論 |
| 作者: qiang 于 2004/9/8 9:58:00 發(fā)布:
謝謝各位,問題找到了,是芯片有問題 由于芯片寫程序后能正常工作,所以一直沒有懷疑芯片有問題,可是不管怎么調(diào)整程序電流還是那么大,昨天換了一片貼片的12F629,結(jié)果同樣的程序電流卻完全不一樣,如果把所有都關(guān)閉了,sleep時電流就基本量不出來;打開WDT后,在sleep時電流<10ua,wake up時電流15ua左右。以下是部分程序: include "E:\MPLAB IDE\MCHIP_Tools\P12F629.INC" RADIX DEC ; default radix is decimal! ;系統(tǒng)參數(shù)定義 SIA EQU 0 RTCC EQU 1 PC EQU 2 STATUS EQU 3 C EQU 0 Same EQU 1 W EQU 0 __CONFIG _LP_OSC & _MCLRE_OFF & _WDT_ON & _PWRTE_ON & _BODEN_OFF & _CP_OFF & _CPD_OFF ;上電入口 ORG 0x000 GOTO INIT ORG 0x004 GOTO interrupt ORG 0x008 GOTO INIT ;復(fù)位入口,關(guān)閉time0、time1、比較器、中斷等,置WDT為1S, INIT BCF STATUS,RP0 ; bank 0 CLRF PCLATH ; clear upper PC bits for jumps MOVLW B'00000111' ; CLOSE CM MOVWF CMCON CLRF PIR1 CLRF INTCON ; No interrupts CLRF T1CON BSF STATUS,RP0 ; bank 1 MOVLW B'00001000' MOVWF TRISIO MOVLW B'10001110' ; set WDT 1:64, 18ms*64=1s MOVWF OPTION_REG CLRF PIE1 CLRF IOC CLRF VRCON CLRF WPU MOVLW 0x02 MOVWF PCON BCF STATUS,RP0 ; bank 0 MOVLW 0xFF MOVWF GPIO |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |