Stránka 1 z 1

PIC 12F629 - snížení spotřeby v režimu sleep

Napsal: 03 dub 2011, 21:16
od Jirka
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:

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

Napsal: 03 dub 2011, 21:58
od Chenzee
Jde o to, jakým napětím to taky napájíš. 5uA je možná pouze pro 3V, pro 5V to bude jinak (co jsem tak letmo vykoukal z datasheetu). Jinak nic špatného nevidím.

Napsal: 03 dub 2011, 22:14
od Jirka
Napájím to 5V, údaj 8uA by taky měl být pro 5V.

Napsal: 03 dub 2011, 22:19
od Davidus
nemáš tam nějaký filtrační kond?

Napsal: 03 dub 2011, 22:22
od procesor
Čím sa to prebúdza zo sleep?

Napsal: 03 dub 2011, 23:29
od Jirka
Kondík tam nemám, je to teď zapojený přesně jako na schématu. Ze sleep se to probouzí přerušením a znovu připojením k napájení.

Napsal: 04 dub 2011, 15:36
od Jirka
Už jsem na to přišel. BODEN OFF. A bere to podle měřáku 0,1uA.
To mám z toho, že do toho koukám, když se mi chce spát. :roll:

A zrovna funkci BODEN bych potřeboval mít aktivovanou ...

Napsal: 05 dub 2011, 10:52
od abcdef
čo je BODEN_OFF , a na čo je dobrý keď ho potrebuješ ?

Napsal: 05 dub 2011, 12:51
od Jirka
Detekce poklesu napájecího napětí.
Při poklesu pod určitou úroveň dojde k resetu.

Napsal: 05 dub 2011, 18:10
od abcdef
aha, takže tá detekcia je aktívna aj keď MCU spí, preto viac žerie však ? Ale pri takejto jednoduchej aplikáci BODEN_ON nie je potrebné. Či ?

Napsal: 05 dub 2011, 22:07
od Jirka
Obvod detekce odebírá proud, ikdyž procesor spí. Tohle zapojení je jen pro odladění jednotlivých částí programu, takže tady detekce není potřeba. Ve finální aplikaci bych ji však potřeboval ...

Napsal: 06 dub 2011, 20:42
od jankop
Dávej pozor na jednu věc. U 12f629 je u některých revizí známá chyba, kdy se procesor při poklesu napětí kousne BODEN ne BODEN. Já na to narazil při konstrukci zařízení s nízkou spotřebou téměř okamžitě. Nějak moc nevěřím erratům, že nové revize těchto PIC už tím netrpí.

Napsal: 08 dub 2011, 22:29
od Jirka
Hmm, tohle ani nevím. Mám tu funkci spolehlivě odzkoušenou na 16F628, tak přepokládám, že je stejně funkční i 12F629.