PIC 12F629 - snížení spotřeby v režimu sleep
Napsal: 03 dub 2011, 21:16
Mám na bastldesce níže uvedné zapojení s 12F629. Je to zatím jen blikání LEDek k odladění programu. V režimu SLEEP to však má docela velkou spotřebu, kolem 100uA. Podle katalogu by maximum při 5V mělo být asi 8uA, typicky ale mnohem méně. Kde je chyba? Na co jsem zapomněl?
Podstatné části programu:
Podstatné části programu:
Kód: Vybrat vše
list p=12f629, R=DEC
include "p12f629.inc"
RAM equ 20h ; prvni adresa pameti RAM pro PIC12F629 - 224bajtu (20h-7Fh)
#define LED4 GPIO,0
#define tlacitko GPIO,1
#define LED3 GPIO,2
#define LED2 GPIO,4
#define LED1 GPIO,5
org 0x2007 ; adresa konfigurace PIC16F629 a 675
dw _BODEN_ON & _CP_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _CPD_OFF & _MCLRE_ON
;************************ Reset procesoru *************************
org 0x0000 ; zacatek programu
goto INIT ; skok na pocatecni inicializaci
;************************ Inicializace procesoru *************************
INIT bcf STATUS,RP0 ; banka registru 0
movlw B'00110010'
movwf GPIO ; prednastavit 0 na GP0 - GP5
movlw b'00000111' ; =07h, digitalni vstupy na GP0 - GP2 (comparator OFF)
movwf CMCON
; ------------------------
bsf STATUS,RP0 ; banka registru 1
movlw B'00001010'
movwf TRISIO ; GP0,2,4,5 vystup, GP1 vstup, GP3 vstup trvale
bcf STATUS,RP0 ; banka registru 0
; ------------------------
bsf LED2 ; vypnout všechny LED
bsf LED1
bcf LED3
bcf LED4
goto MAIN
;************************ Hlavní program *************************
MAIN hlavní program, blikání LED, snímání tlačítka na vstupu GP1, za určitých podmínek
volání podprogramu vypni
goto MAIN
;**************************************************************************
vypni bsf LED1 ; vypnout všechny LED
bsf LED2
bcf LED4
bcf LED3
sleep ; přejít do režimu sleep
goto vypni
;**************************************************************************
end