mega 16 u industriji

Rasprava o AVR mikrokontrolerima, AVR projekti i drugo vezano za AVR...

Moderators: pedja089, stojke369, trax, InTheStillOfTheNight

kikici1
Penjem se :)
Penjem se :)
Posts: 91
Joined: 14-03-2010, 09:27

mega 16 u industriji

Post by kikici1 »

Pozdrav ljudi. Imam problem sa jednim upravljanjem za hidraulicnu prešu na poslu. Naime složio sam stvar sa lcd displejem i inim šminkama na prešu i radi ok dok je pumpa raspuštena na minimalni pritisak. Čim povečam pritisak i opteretim el motor (trofazni 5,5 kw) kontroler se nekontrolirano resetira i radi kojekakve ludorije. Kompletni u/i portovi su ograđeni optocouplerima, napajanje za kontroler je od punjača za mobitel stabilizirano sa 7805 i elektrolitima od 3300 uf. Ostatak napajanja 12v, i 24v imam preko trafoa. prije trafa ja mrežni filter sa dva blok kondenzatora i prigušnicom. Sve tipke su u metalnoj kutiji odvojene od mreže, i spojene oklopljenim kablovima preko optocouplera na kotroler. Hidraulične venile uključujem mosfetima koji su opet pogonjeni preko optocouplera sa svojim napajanjem i i odvojeni na drugoj pločici. pločica sa kontrolerom je dvostrana sa power plane-om spojeni na gnd. Mislim da sam poduzeo sve mjere koje su moguče u samogradnji, za teške uvjete rada u nepovoljnom okruženju, ali izgleda da sam propustio nešto. Program je pisan u bascomu, koristio sam naveliko debounce, ne koristi vanjske interupte da izbjegnem probleme sa debouncingom na interupt ulazu. Ima netko da sreo sa sličnim probemom. E da motor uključuje veliki sklopnik koji je odvojen daleko u svojoj kutiji zajedno sa zaštitiom motora. Sklopnik se uključuje sa malim relejom koji je također odvojen daleko od glavne pločice.
Svaki savjet je dobrodošao.
Source nebih ovako javno jer je to ipak stvar koju sam naplatio i opet ču, i namučio sam se s tim. Molim za razumijevanje oko toga.
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: mega 16 u industriji

Post by InTheStillOfTheNight »

da, poznato, nauka. Imao sam isto sranje sa nekim uređajima koju si bili na istoj sabirnici, a njih 100 je istovremeno palilo nekih par kW motora... Kad to upališ zajedno pola procesora poludi, 485 sabirnica postane neprotočna za komunikaciju, neki moduli uopće ne prime komande, a neki rade čudne i neshvatljive stvari...

Postoje samo 3 stvari zbog kojih se procesor može resetirati ili poluditi.

1. Nestabilna reset linija. Ako ti reset linija nije dovoljno povučena na +5V, ili ju probiju opaki špicevi procesor se resetira.. Ako nemaš, obavezno probaj staviti 100nF na tu reset liniju, da ti pokupi sve šiljke koji idu prema masi. Obavezno stavi manji pull-up reset linije prema VCC nekih 4k7.

2.
Nestabilan napon na procesoru.
Ovo je malo teži dio jer ne znaš odakle ti točno dolaze smetnje koje izazivaju nestabilan napon. Najbolje što u ovom smijeru možeš napraviti je da imaš osciloskop i snimiš, uslikaš VCC liniju u situaciji kada ti se zablokira procesor. Ako vidiš da ti napon padne drastično u periodu paljenja tog motora to je onda razlog.

3.
Nestabilan i krivo proračunat oscilator
Ako recimo ne staviš dobar kapacitet na externi kristal procesor može raditi, no kad kad malo cimneš sa smetnjom program poludi. Linije kristala trebale bi biti paralelne tj jedna kraj druge, te oko njih GND i to sve što bliže procesoru. Ona dva kapaciteta pogledaj u datasheetu, možda si zabunom umjesto 22pF stavio recimo 100nF. Eventualno provjeri FUSE postavke za oscilator i BOD FUSE.
Ono što si već napisao izgleda kao dobra zaštita, no nešto je očito krenulo loše.

Naravno, postoji i ta 4 stvar koja sigurno nije tvoj problem. Program bi trebao biti dobar, jer da nije vjerojatno ne bi uopće radilo. Program ne može raspoznati što ti pališ i kako, pa stoga ako radi sa malom potrošnjom mora raditi i sa velikom. tako da nemoj uzaludno tražiti grešku po programu jer ona nije tamo...

Osciloskop ti je u toj situaciji dobro došao, jer sve što ti trebaš je provjeriti ove 3 točke koje sam napisao, i odmah ćeš znati točan razlog, a tek tada možemo razmišljati o metodama kojima se to može izbjeći.
InTheStillOfTheNight
kikici1
Penjem se :)
Penjem se :)
Posts: 91
Joined: 14-03-2010, 09:27

Re: mega 16 u industriji

Post by kikici1 »

Kondenzatori su 22pf, isprobao sam sam sa 27, 18, i još neke kombinacije. Fuse za oscilator je high frequency quartz oscilator, bod level je isključen, prvo sam na to sumnjao. Ovo na pcb-u sa quartzom znam i tako je izvedeno s tim da je gornji layer ugavnom powerplane na gnd-u. Nisam stavio kondenzator na reset, pullup je 4k7. Našao sam maloprije na jednom pdf-u od atmela da je dobro staviti zener diodu u smjeru reset-vcc jer interna nije ugrađena radi programiranja, kad je reset na 12v. Mislim da moram sutra nositi osciloskop na posao. Probat ču napajati procesor sa baterijom da vidim dal radi na taj način, pa onda potraga za nekim zdravim napajanjem. Imam fluke 117 koji može mjeriti donju, gornju ili prosječnu vrijednost nekog napona, ali nije uspio zabilježiti pomak od 0.01v ni jednom. Mislim da me tuku špicevi od sklopnika. Čitao sam da je na skopu animirani film kad sklopnik isključuje motor. Sutra ču vidjeti i u stvarnosti da li je tako. Znam da nisam ni prvi ni zadnji s ovim problemom, pa da nađemo neko univerzalno riješenje. Ja bih konkretno imao jako puno posla kad bi sa sigurnošću mogao tvrditi da mogu riješiti ovakav problem.
User avatar
pedja089
Administrator sajta
Administrator sajta
Posts: 7878
Joined: 20-02-2007, 14:50
Location: Beočin -Srbija

Re: mega 16 u industriji

Post by pedja089 »

Obavezno kondezator na reset. Nisam radio sa mega, ali sa pic-em ista prica.
Ja cak idem na picu u 1K pullup i 100nF blok. Zener diodu nemas potrebe, ne verujem da su smetnje bas tolike da ga oteraju u mod za programiranje. Sutra ponsi lemilicu i 100nF, pa prvo to prilemi.
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: mega 16 u industriji

Post by InTheStillOfTheNight »

Dakle zaključeno je kako su ostale samo 2 stvari.

Vidim, poznaješ mikrokontroler, i dobro si napravio sve na oscilatoru, tako da mogu sa sigurnošću zaključiti kako greška nije u tome.

Ono što je ostalo ->
1. Reset linija
2. Napon!!!

Provjeri tu reset liniju, da slučajno ne zapliva ili ju probiju špicevi, no ti mi isto ne drži baš vodu, jer ako špicevi mogu drastično probiti RESET liniju, onda se bojim pomisliti koliko mogu probiti VCC liniju.

Obavezno probati 100nF na reset, no ako to ne pomogne, čitaj dalje :)

Odvojeno baterijsko napajanje je savršena ideja. Tako će vjerojatno sve raditi, ali problem je i dalje tu...
Ono što može rještiti tvoj problem je Varistor nekih 15 V na ulazu prije stabilizacije i TVS dioda na 5V.

Poslikaj znači X1, X2, GND i VCC u trenutku najgorih uvjeta rada. Vidjeti ćeš bolesno probijene špiceve, no oni ne morau biti problem. Ti špicevi jednostavno su neizbježni. Samo je pitanje koliko traju i kojeg su napona. Ako prelaze nekih 60V onda su totalna ubojica. No sve ispod toga što traje kratko je normalna stvar... Zato kažem da to možeš jesti sa Varistorom i dobrom TVS diodom... Zapravo se nadam kako problem dolazi sa napajanja, a ne preko portova...

Eh sjetih se još jedne stvari koja ti može pomoći.... Kada radiš sa tolikim potrošačima obavezno spuštaj frekvenciju procesora... Ako ti nije bitna brzina stavi je na 1 MHz. Što manja brzina to je rad sigurniji, a samim time MCU je više otporan na smetnje... I ovo bi ti moglo rješiti problem...
InTheStillOfTheNight
User avatar
Kizo
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 387
Joined: 01-11-2009, 22:40
Location: Hrvatska

Re: mega 16 u industriji

Post by Kizo »

kikici1 wrote:Našao sam maloprije na jednom pdf-u od atmela da je dobro staviti zener diodu u smjeru reset-vcc jer interna nije ugrađena radi programiranja, kad je reset na 12v.
Dobro si to našao, međutim ne zener diodu, nego neku brzu diodu, npr. 1N4937.
kikici1 wrote:napajanje za kontroler je od punjača za mobitel stabilizirano sa 7805 i elektrolitima od 3300 uf
Neznam koliko ti pločica sa kontolerom troši no tih 3300uF mi se čini ko debeli overkill. To bez problema filtrira 100Hz poslje greca pri 1.5A potrošnji, te nemoj misliti da više znači bolje. Kondenzator manjeg kapaciteta će bolje popiti kratkotrajne špiceve od ovog velikog, tako da si to pravilno dimenzioniraj.
User avatar
bob4
Stariji član
Stariji član
Posts: 2572
Joined: 31-01-2010, 16:12
Location: Kutina

Re: mega 16 u industriji

Post by bob4 »

Čim povečam pritisak i opteretim el motor (trofazni 5,5 kw) kontroler se nekontrolirano resetira
Dali se u tim trenucima izvršava naredba debounce?
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: mega 16 u industriji

Post by InTheStillOfTheNight »

Kizo wrote: Neznam koliko ti pločica sa kontolerom troši no tih 3300uF mi se čini ko debeli overkill. To bez problema filtrira 100Hz poslje greca pri 1.5A potrošnji, te nemoj misliti da više znači bolje. Kondenzator manjeg kapaciteta će bolje popiti kratkotrajne špiceve od ovog velikog, tako da si to pravilno dimenzioniraj.
hahahaha, kizo i ti ga baš lupiš odnikud... no tocno.
Mozda nekima dimenzija nije toliko vazna? Taj kondenzator je tu zbog izgleda uređaja. Mora izgledati moćno, nabrijano i korisno, no prava elektrotehnička svrha toga ne postoji...

U smislu o šiljcima više je zlo nego dobro... Manji kapacitet brže reagira na promjenu napona, stoga mi ne ubijamo konstantu sturuju, nego ponekad špiceve. Po tome, trebali bi uzeti mali kapacitet, a ne veliki...
InTheStillOfTheNight
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: mega 16 u industriji

Post by InTheStillOfTheNight »

bob4 wrote:
Čim povečam pritisak i opteretim el motor (trofazni 5,5 kw) kontroler se nekontrolirano resetira
Dali se u tim trenucima izvršava naredba debounce?
Pročitaj moj prvi post, i 4 razlog...
InTheStillOfTheNight
User avatar
bob4
Stariji član
Stariji član
Posts: 2572
Joined: 31-01-2010, 16:12
Location: Kutina

Re: mega 16 u industriji

Post by bob4 »

Pročitaj moj prvi post, i 4 razlog...
Zašto sam to pitao?. Zato što imam slučaj u jednom projektu sa malim atmelom; ako predugo držim tipku, dok traje povečavanje jednog broja, program ode u reset i sve ispočetka.
Inače program je ispravan i funkcionira kako treba (termostat za centralno)
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: mega 16 u industriji

Post by InTheStillOfTheNight »

@bob->Program nije ispravan...

Bascom je loš jezik, slab i najgore nedorečen. Kad to uzme compiler, pa iz baskoma napravi program takve stvari me uopće ne čude. Kad već nešto ne radi, mogu biti 2 razloga:
Hardware ili Sotware. U ovom slučaju problema odmah sam odbacio software i napisao 3 glavna razloga zbog kojih nesto ne radi.

U tvom slucaju sve mi se cini na software, tamo je greška. Ili te zeznuo bascom, ili si mu na krvi način rekao što da napravi... Treće solucije nema...
InTheStillOfTheNight
User avatar
Kizo
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 387
Joined: 01-11-2009, 22:40
Location: Hrvatska

Re: mega 16 u industriji

Post by Kizo »

InTheStillOfTheNight wrote:Taj kondenzator je tu zbog izgleda uređaja. Mora izgledati moćno, nabrijano i korisno, no prava elektrotehnička svrha toga ne postoji...
Ne razumijem se baš u marketing i to, no to što ti kažeš mi ima smisla. Ako je uređaj veći nekom logikom možeš i više naplatiti. :D
bob4 wrote:...imam slučaj u jednom projektu sa malim atmelom; ako predugo držim tipku, dok traje povečavanje jednog broja, program ode u reset i sve ispočetka.
Softverski reset ti se može desiti iz više razloga.
Zbog odbjeglog pointera usljed upisa na pogrešnu adresu pa na kraju završi na reset vektoru.
Ili stack overflow usljed početničke greške; vračanja iz podprograma sa GOTO naredbom.
Ako u podprogramu za čitanje tipke imaš nešto tipa:
IF tipka_stusnuta=true THEN GOTO uvećaj_varijablu
onda ti je to stack overflow 100% ili u žargonu windowsi su ti se srušili. :D
kikici1
Penjem se :)
Penjem se :)
Posts: 91
Joined: 14-03-2010, 09:27

Re: mega 16 u industriji

Post by kikici1 »

Softver i ja ne bih miješao u to jer kad je punpa rasterečena stvar radi u dlaku kako sam zamislio. Bascomom sam odradio mnoge stvari i nikad me nije iznevjerio. U Bascomu pišem programe a debugiranje na AVR studio4.
Možda izgleda smiješno al eto, tako radim. Na AVR studiu mogu pratiti ama svaku stvar step by step.
Kondenzatori su 3300 uf u zbroju, a radi se o kombinaciji od 5 vrijednosti od 100uf do 1000uf gdje svaki tuće svoj dio spektra smetnji. Svaki od njih ima 100nf u paraleli. Nisu jedan pored drugog. Imam dva na ploči ispravljača i 3 na glavnoj ploči. Nema određenog momenta kad se program resetira, nikad u isto vrijeme ili na istom mjestu, ali uvijek prilikom uključenja (rijeđe) ili isključenja motora (češće). Nisam zaradio bogatstvo u firmi, to mi je razvojna platforma, imam gazde koji imaju razumijevanje za neke stvari, pa mi plačaju sate koje provodim na takvim "istraživanjima" , a njima ostane moj uradak. Moć reklame je tu nepobitna. Radi se o ovoj firmi: http://www.youtube.com/watch?v=NUWPpOGj4mI" onclick="window.open(this.href);return false;
A kad se gazde pohvale svojim kooperantima, e tu ja uletim i zgrabim, i uvijek dobro. Cijena ovakvog upravljanja je 30 posto kupovnog plc uređaja, koji nikad ne radi sam. Uvijek treba još ispravljač, ponekad neko IO proširenje, pa si na 300 eura samo tako, samo za materijal. a mene moj materijal izađe 50 maximalno. A ostalo...
User avatar
Kizo
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 387
Joined: 01-11-2009, 22:40
Location: Hrvatska

Re: mega 16 u industriji

Post by Kizo »

Postoji način da saznaš što ti radi reset.
Što prije u programu ubaci:

Code: Select all

Dim reset_source As Byte
Reset_source=MCUCSR
MCUCSR=&H1F	
I onda kasnije u programu, prikažeš reset_source na LCD-u i prema datasheetu vidiš što je izazvalo reset, a onda si već korak bliže rješenju.
kikici1
Penjem se :)
Penjem se :)
Posts: 91
Joined: 14-03-2010, 09:27

Re: mega 16 u industriji

Post by kikici1 »

Hvala Kizi, Pedji, i In the still... na čvrstim i konkretnim odgovovorima, u takvom obliku bi i ja vama volio odgovoriti ako ustreba.
User avatar
Kizo
Pravo uznapredovao :)
Pravo uznapredovao :)
Posts: 387
Joined: 01-11-2009, 22:40
Location: Hrvatska

Re: mega 16 u industriji

Post by Kizo »

Ma nema na čemu, bitno samo da riješiš problem. :wink:

Pošto nemogu editirati, pobjego mi typo jer sam samo c/p iz jednog prošlog projekta. Treba resetirati MCUCSR da bi znao dali se dogodio možda softverski reset.
Dakle ide:

Code: Select all

Dim reset_source As Byte
Reset_source=MCUCSR
MCUCSR=0
I to staviš odmah poslije:

Code: Select all

$regfile = ...
$crystal = ...
$stackovi = ...
A prije glavnog programa, poslije inicijalizacije staviš:

Code: Select all

Lcd Reset_source
Wait 1
Cls
Ako na LCD-u piše:
0 – softverski reset
1 – power-on reset; dakle to će pisati normalno pri uključenju uređaja
2 – vanjski reset; "0" na reset pinu
4 - Brown-out Reset
8 - Watchdog Reset
16 - JTAG Reset

Upravo sam sve testirao na ATmegi8 osim JTAG reseta i sve pravilno detektira.
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: mega 16 u industriji

Post by InTheStillOfTheNight »

Još jednu stvar nitko nije naveo...

Ne znam kako točno pališ taj motor, no čisto sumljam da si stavio VARISTOR na sklopnik. I to isto probaj među prvim stvarima.

Varistor ti je tu obavezan, jer ako ga nema u trenutku gašenja induktivnog potrošača na sklopniku dobiješ bolesno visok potencijal. Stavi recimo 275V varistor na špulnu sklopke. I bilo bi dobro ako bi mogao staviti varistore na kontakte sklopke, jedan varistor na radni kontakt prema nuli, a jedan varistor na mirni kontakt (ako postoji) prema nuli i tako za svaku liniju trofazne struje.

Ovo ti može biti opako dobro rješenje, jer time sam često riješio probleme tvog tipa...

Varistor 275V bi trebao postaviti na svaku liniju koja zbog prebacivanja sklopnika ostane nedefinirana točka na kojoj postoji napon.
Primjer, ako odvojiš motor, nije problem direktno sa mrežnim naponom, nego sa naponom koji se još uvijek nalazi na motoru. Zato je puno lakše uključiti motor, nego ga isključiti... Taj napon sa motora nekamo mora otići, a to često voli preko zraka u špulnu pa na elektroniku... Čisto da znaš okvirno ono što bi se trebalo štititi...
InTheStillOfTheNight
lab1722tec
Napredujem
Napredujem
Posts: 123
Joined: 26-12-2010, 12:12
Location: sad_tu_sad_tamo

Re: mega 16 u industriji

Post by lab1722tec »

Raditi u tako "bučnom okružju za procesor" sa obiljem "smeća" u mreži i koristiti obično napajanje je prilično smion poduhvat. Za zahtjevne konstrukcije tipa induktivna opterećenja preporuka je koristiti switch napajanje a ne mrežni trafo. K tome posebnu pažnju posvetiti filterima i umašavanju - svemu onome što si i sam naveo. Program za osvježavanje displaya prilagoditi tome da proguta brlje od pulseva smetnji (osvježavanje).Ako koristiš EEprom vidi da li se pravilno upisuje ,odnosno što je upisano nakon restarta (ne reseta),to je dobar indikator ponašanja napajanja.

pozdrav!
kikici1
Penjem se :)
Penjem se :)
Posts: 91
Joined: 14-03-2010, 09:27

Re: mega 16 u industriji

Post by kikici1 »

Kontroler napajam svičerom (punjač od mobitela), eprom se ne koristi. Danas popodne ču isprobati, najprije ovo od Kize sa ispisom na lcd, pa obavezno Pedjin savjet sa 100nf na resetu, i stavljam varistore na sve tri faze i u paralelu sklopniku. Mislim da me i sklopnik zeza cijelo vrijeme, do reseta dolazi uvijek kad sklopnik prebacuje, a napaja se preko malog releja sa 220v koji napajaju i trafo i svičer od mobitela. Trafo mi daje 12v za proximiti senzore i 24v za elektropneumatske ventile. Proximitije sam isto mogao napajati sa 24v ali sam namjerno spustio napon na 12v preko 7812, baš radi smirivanja raznih gluposti. Razdvojit ču i napajanje sklopnika preko druge faze, pa vam javim rezultate. Imam vremena pa ču step by step tak da točno lociram smetnju, ili više njih, čisto da ubuduće budem spreman
User avatar
InTheStillOfTheNight
Odlično uznapredovao
Odlično uznapredovao
Posts: 938
Joined: 01-06-2006, 17:54
Location: Zagreb

Re: mega 16 u industriji

Post by InTheStillOfTheNight »

Uf, koji propust... Opet nisam sve napisao... Još jedna stvar je jaaaaako bitna, i ako ti to nije uključeno onda si baš meta za sve smetnje. CKOPT FUSE mora biti uključen, to sam te zaboravio pitati.. . Taj fuse ti služi kod AVR-a da oscilator oscilira sa 5V naponom i uvijek se obavezno uključuje kad si u takvom bučnom okruženju. Ako ga ne uključiš onda ti oscilator oscilira sa nekih 100-200mV a ne 5V, i tada je mogućnost blokiranja zbog šiljaka užasno velika.

Osobno taj fuse uključujem uvijek, jer procesor samo malo više troši, a oscilator radi 100 puta bolje i ljepše. Pogledaj osciloskop bez tog fuse-a i sa njim i sve će ti biti jasno...

Pozdrav
InTheStillOfTheNight
Post Reply