Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

problem sa PIC16F627A

[es] :: Elektronika :: Mikrokontroleri :: problem sa PIC16F627A

[ Pregleda: 1711 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Milanche85
Beograd

Član broj: 251830
Poruke: 14
95.180.90.*



Profil

icon problem sa PIC16F627A18.02.2010. u 00:41 - pre 172 meseci
Od skora radim sa mikrokontrolerima te sam se odlucio poceti sa PIC16F627A. Koristim AllPic programator i ICPROG 1.06b. Napravio sam mali programcic cisto da se upoznam kako sve to radi. Ideja programa je da kada stisnem taster ULAZ1 (+5V na pin RA0) na izlazu IZLAZ1 (pin RA3) na koji sam povezao led diodu i otpornik treba da dobijem +5V i da dioda zasvetli. Kada pritisnem taster ULAZ2 (+5V na pin RA1) treba da na pinu RA3 bude 0V i da dioda prestane da svetli.

Sve je to radilo dok nisam pokusao da postavim pin RB2 kao USART transmit pin (ideja je bila da kada mi u gornjem primeru programa zasvetli dioda tj bude +5V na RA3 pinu preko USART transmit pina RB2 posaljem 8bitova). Kada sam tako isprogramirani kontroler stavio u kolo sa kojim sam probavao prvobitni program nista vise nije radilo kako sam zamislio (pritiskom na taster ULAZ1 nije dolazilo do +5V na pinu RA3). Uporedjivao sam prvobitni program (samo sa 2 tastera) sa drugim (2 tastera i TX) i uocio da mi se gore navedeni problem javlja kad pokusam da upisem nesto u SPBRG. Koristim kristal na 20MHz i kondenzatore od 25pF (10pF paralelno sa 15pF) u oscilatoru. Pokusavao sam vise vrednosti iz tabela datasheet-a za SPBRG i kada je BRGH=0 i kada je BRGH=1 kod asinhronog moda i uvek mi se isto desava. Ispod se nalazi kod koji prestaje da radi kako ubacim neku vrednost u SPBRG.

Code:
    PROCESSOR    P=16F627A
        #INCLUDE    <p16f627A.inc>
        

    __CONFIG    _CP_OFF & _LVP_OFF & _BOREN_OFF & _MCLRE_ON & _HS_OSC & _PWRTE_OFF & _WDT_ON 

    ORG 0x00
    goto Main

    ORG 0x04
    goto Main
Main
    #DEFINE    ulaz1    PORTA,0
    #DEFINE    ulaz2    PORTA,1
    #DEFINE    izlaz1    PORTA,3

    banksel    OPTION_REG
    movlw    B'01011000'
    movwf    OPTION_REG

    banksel INTCON
    clrf    INTCON

    banksel PIE1
    clrf    PIE1 
    
    banksel PIR1
    movlw    B'00010000'
    movwf    PIR1     
    
    banksel    CMCON
    movlw    B'00000111' 
    movwf    CMCON
    
    banksel TRISA
    movlw    B'10100011' 
    movwf    TRISA

    banksel TRISB
    movlw    B'00000010' 
    movwf    TRISB

    banksel PORTA
    clrf    PORTA
    clrf    PORTB

    banksel    VRCON
    clrf    VRCON

    banksel    TXSTA
    movlw    B'00000010'
    movwf    TXSTA

    banksel    RCSTA
    movlw    B'00000000' 
    movwf    RCSTA

;SPBRG REGISTER - BAUD RATE GENERATOR REGISTER ******

    banksel    SPBRG
    movlw    B'00100000' 
    movwf    SPBRG 

provera1
        clrwdt    
        btfsc    ulaz1
        goto    obradaON
        goto    provera1
provera2
        clrwdt
        btfsc    ulaz2
        goto    obradaOFF
        goto    provera2
obradaON
        bsf        izlaz1
        goto     provera2
obradaOFF
        bcf        izlaz1
        goto    provera1

END


Da li mi neko moze pomoci i ukazati gde gresim?

Unapred Hvala
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
91.150.107.*



+321 Profil

icon Re: problem sa PIC16F627A18.02.2010. u 06:41 - pre 172 meseci
Daj i shemu da vidimo kako si to povezao.

Pozdrav.
Sinisha
 
Odgovor na temu

Milanche85
Beograd

Član broj: 251830
Poruke: 14
95.180.90.*



Profil

icon Re: problem sa PIC16F627A18.02.2010. u 12:24 - pre 172 meseci
Evo i linka sa slikom seme.
http://img404.imageshack.us/img404/8442/slika1k.jpg
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
91.150.107.*



+321 Profil

icon Re: problem sa PIC16F627A18.02.2010. u 13:09 - pre 172 meseci
Gadjaš pogrešnu banku. Više objašnjenja malo kasnije, sad nemam vremena.

Pozdrav.
Sinisha
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
91.150.107.*



+321 Profil

icon Re: problem sa PIC16F627A18.02.2010. u 15:21 - pre 172 meseci
Evo me. Zbog brzine nisam bio dovoljno jasan, ta jedna rečenica ti očigledno ništa ne znači.
Elem, poslednja makro naredba "banksel SPBRG" postavlja banku 1, a tebi se PORTA nalazi u banci 0, tako da ti u stvari čitaš TRISA registar. Znači, pre labele "provera1" treba da vratiš banku na 0.
E sad, par saveta vezano za program koji si napisao.
Ne bi trebalo pre svakog registra da stavljaš makro "banksel" jer on troši programsku memoriju, sem ako je kompajler pametan pa pazi na banku, ali čak i u tom slučaju ako ti ne paziš kako si rasporedio registre, može da se desi da se banka svaki čas menja i time trošiš prog. memoriju. Zato ti predlažem da pre pisanja programa sortiraš registre po bankama pa da selektuješ banku i onda podesiš sve registre koji su u njoj. Zatim selektuješ neku drugu banku i podesiš sve registre u toj banci i tako dok ne podesiš sve registre koje si hteo.
Drugi savet se sastoji u tome da nema potrebe da setuješ registre koje ne moraš, ako se radi o bloku u kome se to radi samo jednom (tzv. inicijalizacija).
Treći savet je da nema potrebe da registre inicijalizuješ vrednošću koja se već nalazi u njima u momentu uključenja, a te vrednosti možeš da vidiš u tehničkim podacima za odredjeni MCU.
U tvom programu su zastupljena oba slučaja.

Pozdrav.
Sinisha
 
Odgovor na temu

Milanche85
Beograd

Član broj: 251830
Poruke: 14
95.180.90.*



Profil

icon Re: problem sa PIC16F627A19.02.2010. u 10:30 - pre 172 meseci
Hvala puno na objasnjenju.
Koristicu od sada za izbor banki umesto banksel-a bcf i bsf na bit 5 i 6 STATUS registra.

Citat:
Elem, poslednja makro naredba "banksel SPBRG" postavlja banku 1, a tebi se PORTA nalazi u banci 0, tako da ti u stvari čitaš TRISA registar. Znači, pre labele "provera1" treba da vratiš banku na 0.


Ok, znaci pre labele ''provera 1'' treba da se vratim u bank 0. Na primer ako bih u okviru labele ''ObradaON" hteo da, pored toga sto postavljam RA3 na +5V, posaljem nekih 8 bitova preko RB2/TX pina, da li to znaci da onda moram da prvo selektujem banku 1, ukljucim TXEN (5i bit u TXSTA registru) pa da se vratim u banku 0 i ubacim tih 8 bitova sto zelim da saljem u TXREG?

Unapred Hvala

Milanche
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
91.150.107.*



+321 Profil

icon Re: problem sa PIC16F627A19.02.2010. u 14:29 - pre 172 meseci
Možeš ti ti dalje da koristiš makro "banksel registar" jer on radi isto to (prevede se u osnovne naredbe kojima podešava odgovarajuće bitove za banku), ali registre grupiši po bankama pa prvo npr. odradi sve koje nisu iz banke 0, pa na kraju one iz banke 0 jer su velike šanse da će odmah nakon inicijalizacije da se pristupi nekom registru u banci 0 (nije pravilo) pa ćeš da uštediš na memoriji. Npr.

banksel trisa
pa sad inicijalizuješ sve registre iz banke 1, a zatim

banksel porta
pa radiš sa registrima iz banke 0.

Što se tiče banki u toku programa, moraš UVEK da budeš siguran da ti je izabrana odgovarajuća banka pre nego što pristupiš nekom registru. Ne znači da moraš pri svakom pristupu da podešavaš banku već da budeš siguran u kojoj si banci bio do malo pre, pa menjaš samo ako nije odgovarajuća. Ako to nije moguće znati unapred (npr. ako se poziva neki potprogram) onda setuješ banku pre samog pristupa registru.
Konkretan odgovor na tvoje pitanje je DA.

Pozdrav.
Sinisha
 
Odgovor na temu

Milanche85
Beograd

Član broj: 251830
Poruke: 14
95.180.90.*



Profil

icon Re: problem sa PIC16F627A01.03.2010. u 16:10 - pre 172 meseci
Sinisa mnogo hvala na detaljnim objasnjenjima, bila su mi od velike pomoci. Vezbao sam dosta u proteklom periodu i koristeci se tvojim savetima sve mi je polazilo za rukom.
Trenutno pokusavam da ostvarim bezicnu komunikaciju 2 mikrokontrolera (oba su PIC16F627A), ideja je da prvi kontroler posto pritisnem taster posalje preko TX pina moj kod od 8 bitova i da to primi drugi mikrokontroler. Kada povezem zicno (kabl direktno od TX pina prvog mikrokontrolera ka pinu RX drugog mikrokontrolera) sve radi bez problema. Kada je tako povezano na oba pina (i TX prvog i RX drugog) imam napon +5V.

Kada pokusam da ostvarim komunikaciju bezicno nastaju problemi. Pokusao sam preko predajnika i prijemnika koji se prvenstveno koristi za prenos audia (AKG WMS 40 PRO FLEXX, set za gitaru) kao i pomocu prijemnika i predajnika kucne radinosti koji je takodje bio namenjen za prenos audio signala (radi na oko 250MHz) i nikako da proradi. Kada povezem bilo koji od gore navedenih uredjaja dobijem informaciju da je mikrokontroler poslao moj kod ali nikakvu informaciju na prijemu. Pokusavao sam da vidim signal preko osciloskopa ali isuvise brzo se prikaze i nestane signal tako da ne uspem nista da vidim. Takodje kad merim napon pri takvoj vezi na RX pinu prijemnika imam 0V (pri zicnoj vezi bilo je 5V ali moguce da je to zbog direktnog, zicnog vezivanja TX pina prvog na RX pin drugog).

Da li treba da obezbedim na prijemnoj strani stalni napon od +5V na RX pinu kontrolera koji ce kad posaljem poruku pasti na 0V i onda ici moja poruka tj kao sto je opisano u datasheet-u sa start bitom koji je 0V , nakon cega ide moja poruka od 8 bitova i zavrsava se sa stop bitom koji je +5V. Merio sam napon na ulazu u mikrokontroler i kad posaljem poruku u kratkom vremenskom intervalu napon poraste te se odmah vrati na 0V.

Da nije u tome greska jer i nakon slanja moje poruke napon na RX pinu je 0V a trebalo bi da bude +5V jer je poslednji primljen stop bit tj da li tih 0V kontroler ne shvata kao pocetak moje nove poruke iako je nisam poslao?

Na Sinisinom sajtu http://sinel.freehostia.com/ nasao sam module prijemnika i predajnika pa sam mislio da probam sa njima jer ako nije greska u onome sto sam gore naveo sa RX pinom onda je RF. Pise da ih nema na lageru pa me zanima jer se mogu nekako poruciti ili barem da se naruci sema pa cu plocicu odraditi sam. Da li je neko koristio te module prijemnika i predajnika u slicnu svrhu?


Unapred Hvala,

Milanovic Milan
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
91.150.107.*



+321 Profil

icon Re: problem sa PIC16F627A01.03.2010. u 22:14 - pre 172 meseci
Stvar sa RF-om nije tako jednostavna ako ne znaš šta radiš, a meni se čini da u ovom slučaju radiš malo na pamet. Nisam neki veliki poznavalac RF-a, ali imaš tu najpre vrstu modulacije, AM i FM, moraš prvo da znaš koju modulaciju zahtevaju TX i RX. Drugo, propusni opseg je mnogo manji od noseće frekvence, a i to donekle zavisi od modula (ovde sam veoma tanak, možda će to neko bolje da objasni).
U konkretnom slučaju ti moraš da modulišeš frekventno, a da li su ti moduli pogodni za prenos digitalnih siganala ne bih znao da ti kažem jer sam i tu tanak.
Za početak bih mogao da ti preporučim RF PIC-eve, sve je dobro dokumentovano i mislim da će da ti završi posao.

Pozdrav.
Sinisha
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: problem sa PIC16F627A

[ Pregleda: 1711 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.