Sari la conținut
ELFORUM - Forumul electronistilor

consum in SLEEP la 12F629


XAN77

Postări Recomandate

Lucrez la un montaj cu un 12F629 alimentat de la o baterie CR2032 de 3V (220mA). Softul e o bucla care la inceput pune procesoru in sleep cu trezire pe schimbarea starii la anumiti pini (4 butoane) cand face ce are de facut si intra iara in sleep. Problema e ca fara sa apas butoanele, deci in sleep, consumul este de putin peste 0,5mA. Mentionez :-oscilatorul este setat cel intern la 4mhz-wdt este off, CMCON=7 deci All digital-butoanele au setati pullup intern (3 din ele) unul are 10k extern ca e pinu de MCLR setat ca intrare. pinii de intrari sunt mereu setati ca intrari.Am deconectat tranzistorul care-l comanda la apasarea butoanelor si sarcina care e un led IR si tot 0,5mA e consumul. Softul de functionat functioneaza perfect, dar datorita acelui consum in standby nu poate fi alimentat din bateria de 3v CR2032.Ceva idei de ce consuma asa de mult ? In datasheet zice la Stand by curent 1nA@2V typical ...

Link spre comentariu
  • Răspunsuri 16
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • XAN77

    6

  • fratello

    6

  • francezu

    4

  • sofian

    1

Top autori în acest subiect

pai de ce, sa inteleg si eu. MCLR e setat intern, pinul respectiv este folosit ca pin de date, ca intrare ca numai asa poate fi folosit. Pullup-ul extern e musai la acel pin pentru ca nu are intern. Dar acel pin fiind intrare, de ce spui ca datorita acelei rezistente exista consum de 300uA, ca ea nu se afla intre plus si masa...

Link spre comentariu

prin rezistorul de 10k ptr MCLR circula un curent de 3V/10k=300uA

De ce? Rezistorul nu este legat la bornele bateriei,ci intre V+ si MCLR. In catalog scrie Input Leakage Curret typ. +/- 0,1uA pt MCLR.@ XAN77 ai Vref sau T1osc active pe perioada sleep?
Link spre comentariu

BOD e activ intradevar. Asa voi face, intai voi dezactiva BOD si porma un programel simplu cu sleep forever.L.E. am dezactivat BOD si a scazut consumu cu vreo 60uA cam la fix 500.Am programat cu urmatoru program si consumu e undeva la 60uA, tot mult. Am pus toti pinii ca iesiri.list P=12F629#include __config _WDT_OFF & _INTRC_OSC_NOCLKOUT & _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_ON & _PWRTE_OFFCNT1 EQU 20HCNT2 EQU 21HCNT3 EQU 22HCNT4 EQU 23H ORG 000 BCF GPIO,2 BSF STATUS,RP0 CALL 0X3FF MOVWF OSCCAL BCF STATUS,RP0 CALL DELAY_OFF MOVLW 0X07 MOVWF CMCON ; MAKE ALL GPIO TO DIGITAL I/O MOVLW B'00000000' ; GPIO<0,1,3,4> = INPUT , GPIO 2 = OUTPUT MOVWF TRISIO MAIN: SLEEP ; GOTO SLEEP MODE(I a sleepy! and need to save my energy) NOP NOP GOTO MAIN DELAY_OFF: MOVLW 5 ; 1 MOVWF CNT3 ; 1 MOVLW .57 ; 1 '54 MOVWF CNT4 ; 1 DECFSZ CNT4,F ; 1/2 GOTO $-1 ; 2 DECFSZ CNT3,F ; 1/2 GOTO $-5 ; 2 RETURN ; 2 END

Link spre comentariu

se pare ca e din vina mea dar nu gasesc buba. In bucla MAIN care incepe cu SLEEP si verifica ce tasta a fost apasata am introdus un puls pe un pin ramas liber. Am observat ca am tren de pulsuri pe acel pin cand nu apas nicio tasta, deci pic-ul nu sta in sleep. Cu ce am gresit in soft...L.E. am descoperit buba, eu nu stergeam flagul GPIF ca s-a produs pin change. Asa imi trebuie daca am preluat un soft de pe net, evident PROST facut si l-am luat de bun. Pana am redescoperit apa calda m-am chinuit un pic. Acum multimetrul pus pe scala de 2mA indica un frumos 000 de neclintit. Va doresc tuturor un Craciun Fericit :101

Link spre comentariu

In primul rand multumiri pentru urari !!! Toate cele bune, tie si tuturor ! LA MULTI ANI !

...am facut montajul de aici http://www.picbasic.nl/frameload_uk.htm ... ote_uk.htm

Am citit valorile unei telecomenzi (Stdby=12, Mute=13, vol+=16, vol-=17, source=56, progr+=32, progr-=33) si as vrea sa fac o telecomanda, cu PIC 12F675, cu 4 functii (stdby, source, vol+, vol-, mute). Ma gandesc sa folosesc partea hardware de aici : http://www.picbasic.nl/frameload_uk.htm ... ote_uk.htm.

Este cumva disponibil codul sursa al programului facut de tine ? Partea cu "sleep" este super bine gandita :aplauze ... Din pacate, codul original al emitatorului mentionat este in PicBasic ; ma pricep un pic la PicBasicPro. "Tranzitia" programului probabil as putea-o face...dar "implementarea" functiei sleep...cred ca ma depaseste...Asa ca, te rog, daca se poate, posteaza codul tau, poate reusesc sa finalizez si eu acest proiect. Multumesc ! Numai bine !

Link spre comentariu

vad ca softu de acolo e o combinatie basic-asambler. Softul meu il atasez, este numai in asambler, se asambleaza ok cu mplab. La inceput sunt facute configurarile necesare, apoi bucla principala a programului este MAIN, care incepe cu SLEEP si apoi, in caz ca se trezeste, verifica ce tasta a fost apasata, trimite codul ir respectiv si inapoi la SLEEP. In bucla MAIN (momentan cu ";" in fata deci inactive) am pus un toggle pe un pin ca sa verific daca sta in sleep, dar acum e ok nu mai e nevoie de el.

Link spre comentariu

:multumescAici :#DEFINE CH1_CMD .42 ; CHANNEL 1 COMMAND - DOWN dimmer#DEFINE CH2_CMD .45 ; CHANNEL 2 COMMAND - ON/UP dimmer#DEFINE CH3_CMD .43 ; CHANNEL 3 COMMAND - OFF dimmer#DEFINE CH4_CMD 0X04 ; CHANNEL 4 COMMANDpot inlocui asa :CH1_CMD .12 ; ON/OFFCH2_CMD .16 ; VOL +CH3_CMD .17 ; VOL -CH4_CMD .56 ; SOURCE?!?.

Link spre comentariu
  • 2 săptămâni mai târziu...

Am inlocuit aici : list P=12F629#include asa :list P=12F675#include si am compilat din nou asm-ul. Dar nu imi merge de nici un fel. Mai trebuie intervenit undeva ? Multumesc !

Link spre comentariu

Am pus in cod#define ANSEL 0.Nu am avut nici o eroare la compilare, dar... nici nu merge !Daca pun doar "clrf ANSEL" imi apare eroare "symbol previous not defined"...Deja ma cam streseaza telecomanda asta :( ...

Link spre comentariu

Banuiesc ca folosesti MPLAB IDE. Ai selectat PIC12F675 din meniul Configure-> Select Device?

Registrul ANSEL se afla la adresa 0x9F din SRAM deci ar trebui

ANSEL equ 0x9F
in loc de
#define ANSEL 0.
dar daca este selectat procul corespunzator ar trebui sa mearga doar cu clrf ANSEL
Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări