XAN77 Postat Decembrie 22, 2009 Partajează Postat Decembrie 22, 2009 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
sofian Postat Decembrie 22, 2009 Partajează Postat Decembrie 22, 2009 deci daca alimentezi picul cu 3Vprin rezistorul de 10k ptr MCLR circula un curent de 3V/10k=300uA, restul curentului cred ca vine de la pullup intern Link spre comentariu
XAN77 Postat Decembrie 22, 2009 Autor Partajează Postat Decembrie 22, 2009 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
francezu Postat Decembrie 22, 2009 Partajează Postat Decembrie 22, 2009 prin rezistorul de 10k ptr MCLR circula un curent de 3V/10k=300uADe 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
XAN77 Postat Decembrie 22, 2009 Autor Partajează Postat Decembrie 22, 2009 am setat CMCON = 7 in rest nu folosesc comparatoare sau timere, nimic. Montajul este o simpla telecomanda IR cu 4 butoane. Link spre comentariu
francezu Postat Decembrie 22, 2009 Partajează Postat Decembrie 22, 2009 Tare ciudat. Ar mai fi BOD care ar lua maxim 70uA la 3V. Incearca un programel simplu doar initializare porturi apoi sleep si vezi cum se comporta asa. Link spre comentariu
XAN77 Postat Decembrie 22, 2009 Autor Partajează Postat Decembrie 22, 2009 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
XAN77 Postat Decembrie 23, 2009 Autor Partajează Postat Decembrie 23, 2009 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 Link spre comentariu
fratello Postat Decembrie 26, 2009 Partajează Postat Decembrie 26, 2009 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 ... 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
XAN77 Postat Decembrie 27, 2009 Autor Partajează Postat Decembrie 27, 2009 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
fratello Postat Decembrie 27, 2009 Partajează Postat Decembrie 27, 2009 :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
fratello Postat Ianuarie 7, 2010 Partajează Postat Ianuarie 7, 2010 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
francezu Postat Ianuarie 7, 2010 Partajează Postat Ianuarie 7, 2010 Daca vrei sa inlocuiesti PIC12F629 cu PIC12F675 mai trebuie si: clrf ANSEL pentru a dezactiva intrarile analogice; 12F675 are si ADC in plus. Link spre comentariu
fratello Postat Ianuarie 8, 2010 Partajează Postat Ianuarie 8, 2010 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
francezu Postat Ianuarie 8, 2010 Partajează Postat Ianuarie 8, 2010 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
Postări Recomandate
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 contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum