Čudno ponašanje PIC-a 16F877A ?

Rasprava o PIC mikrokontrolerima, PIC projekti i drugo vezano za PIC-eve...

Moderators: pedja089, stojke369, [eDo], trax

Post Reply
vita
Posts: 10
Joined: 10-07-2010, 21:37
Location: Nis, Srbija
Contact:

Čudno ponašanje PIC-a 16F877A ?

Post by vita »

Pozdrav,

Radio sam jedan program u C-u za PIC16F877A koji upravlja sa dva DC motra (5-10A). Na PIC je konektovan i 7-segmentni displej. Nakon nekog vremena u radu desi se da mi nestane prikaz na displeju to se ne dešava uvek, nekad se i nešto drugo desi tipa samo se prikaže jedna cifra ili neki deo 7-segmentnog displeja, dok program radi dalje. Ispada kao da program delimično radi, a delimično ne.

Posle resetovanja sve radi ponovo kao da nije bilo problema. Štampana pločica je blizu trafo-a nije baš mnogo ali su u istoj kutiji, napajanja za motore i PIC su razdovjena optokaplerima. Takođe ima nekoliko žice koje povezuju glavnu štampanu pločicu sa dodatnom, na kojoj je klema za motore.

Da li može da se desi da PIC sam od sebe na neki način počne pogrešno da radi, a da nije do programa, jer sumnjam da sam nešto pogrešno isprogramirao. Primera radi imam while petlju u kojoj se pokrecu motori na osnovu nekog uslova i posle toga se prikazuje informacija na 7-seg displeju i to se uvek dešava ne postoji uslov da se prestane sa prikazivanjem.

Takođe koristim i globalni interrupt na RB0 i nekad se desi koliko sam ja primetio da udje u meni tako što se aktivira interrupt sam od sebe, što mi je takođe bilo mnogo čudno.

Da li ima neko ideju šta bi moglo da bude uzrok ovog problema?

Srdačan pozdrav!
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7877
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: Čudno ponašanje PIC-a 16F877A ?

Post by pedja089 »

Jako je bitno kako su vezani ti displeji da bi se moglo reci sta se desava. Isto tako moze da se desi RMW pizdarija, pa da zato displeji ne rade korektno. Ali da je to, onda bi isto tako proradili sami od sebe(najverovatnije)...
Pre ce biti da neko smece od induktivnog potrosaca uradi nesto necemo cime pokreces displej.
vita
Posts: 10
Joined: 10-07-2010, 21:37
Location: Nis, Srbija
Contact:

Re: Čudno ponašanje PIC-a 16F877A ?

Post by vita »

Port D je od RD0 na A do RD6 na G vezan na 7-seg direktno.
RE0 - brojka 1, RE1 - brojka 2, RE2 - brojka 3.
Image

Čitao sam ovo vezano za elektromagnetne smetnje. Jer je PIC MCU blizu transformatora i releja koji se stalno koriste.
http://en.wikipedia.org/wiki/Electromag ... terference

Da li mogu elektromatgnetne smetnje da nekako izmene program privremeno pa da delimično radi a delimično ne. Jer čim resetujem PIC sve radi normalno.

Hvala unapred!
Zez
Odlično uznapredovao
Odlično uznapredovao
Posts: 865
Joined: 21-11-2007, 01:04
Location: Osijek

Re: Čudno ponašanje PIC-a 16F877A ?

Post by Zez »

Neće mu izmjeniti program, ali mu mogu na ulaz(e) dovesti nekakvo smeće s kojima PIC ne zna što bi i kako bi pa se to odražava i na izlaze. Drugim riječima, pozabavi se poboljšanjem zaštite od smetnji.
Lijenost je iz raja izašla.
User avatar
Kukinjos
Pravi forumaš
Pravi forumaš
Posts: 1724
Joined: 28-03-2012, 18:01
Location: Split

Re: Čudno ponašanje PIC-a 16F877A ?

Post by Kukinjos »

EM smetnje mogu utjecat na rad kontrolera, i to obično na RAM. Ako npr. imaš neku varijablu koju definiraš na početku programa, a kasnije je ne ažuriraš, ili ju samo povećavaš i smanjuješ, postoji mogućnost da EM impuls promijeni njenu vrijednost pa izađe iz granica rada, npr. nešto definiraš kao max. 5, a u tijeku rada EM impuls promijeni tu lokaciju na npr.255, program ne zna što bi s tim, pa dolazi do čudesa u radu, prelijevanja stack-a i tko zna čega još. Dakle mrežni filter na napajanju, kondenzatori za blokadu Vcc, svi ulazi barem RC, a izlazi opto (vidim da ih koristiš) ili releji. Ako koristiš H - bridge, napajanje motora izvedi s posebnog ispravljača i stavi prigušnice u izlaze prema motoru, kao i kondenzatore za blokadi i ne zaboravi diode i varistore. Masu veži u jednu točku i ne vodi energetsku preko ploče kontrolera. Eto toliko mi pada sad na pamet.
Cezare, star sam i nemoćan, ali poslušaj moj savjet ....
Post Reply