PIC 16F877 Problematika

U ovom delu korisnici mogu postavljati pitanja vezana za Hardver uopšte

PIC 16F877 Problematika

Postod misha » Pet Avg 11, 2006 2:20 pm

Vec neko vreme imam problem sa ovim uC-om. Nikako da mu postavim cak ni osnovna stanja, kao sto su setovanja portaD,...
Inace desavalo mi se i da cak na priblizavanje prsta cipu (ne dodirivanja) on pocinje da ludi-osciluje, tj. neprekidnoi bez pravila menja stanja svih izlaza.
Misterija je ustvari sto mi na Mikroelektronikinom razvojnom sistemu EPIC3 sve radi kako treba. Ne znam jos sta da pokusam.
Elem na izlazima su mi releji, na 24VDC, napajanje je stabilisano, optokaplerisani i izlazi i ulazi.
Cak i kada otkacim sve periferije, a umasim nekoriscene-isti problemi. Ne znam sta jos da probam???
Ako neko ima neku ideju, bio bih jako zahvalan za istu.
Da li je moguce da je cip falican ili da pravim neku gresku koju nisam primetio-verovatnije. Mislim da mi je softver ok, jer radi na EPIC-u. Gledao sam i na osciloskopu i ne primecujem uzrok otkaza?
Izlozena problematika je uopstena, ali nadam se resiva.
misha
 
Postovi: 12
Pridružio se: Pet Avg 11, 2006 8:14 am
Lokacija: Despotovac,Nish,Mladenovac

Postod npejcic » Pet Avg 11, 2006 2:44 pm

Ok, idemo redom :)

PIC16F877 se u praksi pokazao kao prilično stabilan i "industrijski spreman". Znači, rešenje ćemo sigurno naći. Iz mog ličnog iskustva najčešći problem sa PORT-om D je njegova dvostruka funkcija. On može biti standardni I/O port il i "Parallel Slave Port". Zanimljivo je da su podešavanje funkcije PORT-a D smestili u TRISE registar (bit 4 - PSPMODE). Za početak obavezno osiguraj da je PORTD standardni I/O port, upisom "0" u 4bit TRISE.
Recimo TRISE = 0b00000111

Ukoliko ovo ne reši problem, definitivno je greška negde u hardveru. Onda definitivno proveriti da li je reset mikrokontrolera urađen kako treba. Ukoliko projekat ne predstavlja tajnu, možda ne bi bilo loše da pogledamo zajedno električnu šemu, kao i izvorni kod.

Proveri podešavanje TRISE registra, pa ako ovo ne reši problem idemo dalje.
Nebojša Pejčić
ePraktikum workgroup
npejcic
Site Admin
 
Postovi: 129
Pridružio se: Čet Sep 23, 2004 3:27 pm
Lokacija: Nis

Postod misha » Uto Avg 22, 2006 9:56 am

Evo me posle izvesnog glavo-lomljenja. Odustao sam od 16F877 za sada, jer mi je cini mi se previse slozen, sa obzirom na moje iskustvo.
Inace projekat nije tajna, osim sto jos nisam definisao krajnju f-ju.
Trebam uredjaj sa 5 ulaza(optokaplerisanih), brojackim ulazom-enkoder, tastaturom, 5 izlaza(relejnih), 4 7-segmentnih displeja, ...
Uredjaj je upravljacka jedinica za jednu od industrijskih masina, cija f-ja se menja od masine i trenutne primene. Mozda zvuci konfuzno, ali u principu:
Enkoder-za merenje duzine
Digitalni uazi- sa induktivnih prekidaca
Releji-na motore,hidraulicne i pneumatske ventile...
Tastatura- za unos parametara....
Displej-razna stanja
Za sada ispitujem i eksperimentisem sa pojedinim celinama buduceg sistema.
Presao sam na 16F627 odn, 628 posto sam prvi sprzio. Znam da je mali za gore navedene f-je, ali mi je potreban jednostavniji radi probe.
Elem, stavio sam 4 optokaplerisana ulaza na <RB7:RB4>, a izlaze na <RB3:RB0>, sa prostim zadrzavanjem setovanja pri interaptu. Ali...
Primetio sam da mi pravi probleme RB4 ulaz. I to tako da kada sam ga otkacio radio mi je sve poslusno, dok se ne priblizim prstom ka tom pinu i onda mi resetuje stanja izlaza. Tek kada sam iskljucio LVP opciju u programatoru prestao je da mi pravi problem.
Pitanja:
-Da li je LVP opciju potrebno u uvek iskljuciti ili ne:
-Ima li RB4 neke specijalne namene i kako da ga iskoristim kao jednostavni ulaz
-Potrbna mi je rutina u asembleru za anuliranja problema odskakivanja tastera-debouncing, ili bar ideja.
misha
 
Postovi: 12
Pridružio se: Pet Avg 11, 2006 8:14 am
Lokacija: Despotovac,Nish,Mladenovac

Postod npejcic » Uto Avg 22, 2006 10:27 am

Razumem sta je ideja..... Ok, odmah cu ti reci da ces morati prilicno truda da ulozis kako bi sve funkcije implementirao u jedan mikrokontroler. Narocito ti skrecem paznju na enkoder koji je prilicno nezgodan za implementaciju u praksi. Ovu problematiku su i i ljudi iz Microchipa primetili pa je tako nastala
posebna grupa "motor-controll" PIC-eva, (PIC18F2431, dsPIC30F4011 itd...) koji imaju hardverski enkoder interfejs.

Ok, vratimo se problemu. Ideja da pokusas sa jednostavnijim mikrokontrolerom je svakako dobra.
-Da li je LVP opciju potrebno u uvek iskljuciti ili ne:

Obavezno iskljucuj LVP, on nije potreban ukoliko ne koristis programiranje mikrokontrolera na niskom naponu! Ako je ukljucen LVP, RB4 vise nema funkciju I/O pina.
-Ima li RB4 neke specijalne namene i kako da ga iskoristim kao jednostavni ulaz


Osim za LovVoltageProgramming (LVP) nema nikakvu drugu funkciju

-Potrbna mi je rutina u asembleru za anuliranja problema odskakivanja tastera-debouncing, ili bar ideja.


Ok, evo jedne od ideja:
Detektujes jednom promenu stanja, zatim sacekas neko vreme, recimo 50-100ms i onda proveris ponovo taj pin. Ukoliko je zadrzao promenu stanja (znaci neko je zaista pritisnuo taster) onda je podatak o pritisnutom tasteru validan. U suprotnom na ulazu se javio neki parazitan impuls, i njega ignorises.
Nebojša Pejčić
ePraktikum workgroup
npejcic
Site Admin
 
Postovi: 129
Pridružio se: Čet Sep 23, 2004 3:27 pm
Lokacija: Nis

Postod misha » Uto Avg 22, 2006 10:42 am

Hvala na brzom odgovoru, bacam se na posao.
misha
 
Postovi: 12
Pridružio se: Pet Avg 11, 2006 8:14 am
Lokacija: Despotovac,Nish,Mladenovac


Povratak na Hardware

Ko je OnLine

Korisnici koji su trenutno na forumu: Nema registrovanih korisnika i 6 gostiju

cron