Aktivacni hrana preruseni INT0 u PIC18F4520

HW CNCnet.info hwnews@cncnet.info
Pondělí Prosinec 28 22:08:38 CET 2009


Je to delsi povidani.

Prevadim svoje CNCcko na rizeni pomoci linuxoveho EMC2 beziciho na 
Ubuntu a jako HW interpolator mam pouzitou PCI kartu od MESA (5i20), ve 
ktere je Spartan, ktery zajistuje HW generovani veskerych signalu pro 
rizeni os a dalsich prislusenstvi - k dispozici je 72 I/O, ktere umi 
prakticky az 1.5MHz.

Chodi to vsechno krasne az na jednu vec. Zjistil jsem, ze mi odjizdi osa 
Z pri obrabeni (mozna ze vsechny, ale zatim resim tu co jsem overil). 
Drivery jsou rizeny signaly STEP a DIR. Driver funguje tak, ze ceka na 
preruseni od signalu STEP a hned na zacatku preruseni si zjistim stav 
DIR a podle toho pricitam nebo odcitam krok. Driveru je vyrobeno 
realtivne dost a zatim zadna reklamace.

Tedy kdyz nekolikrat popojedu a vratim se na Z0 tak jsem jinde.
Ted indicie - kdyz jezdim sem tam tak se chyba neobjevi. Musim jet po 
kruckach jednim smerem a pak se vratit na jeden krok na vychozi polohu 
(ktera ovsem nesedi). Jelikoz jsem se domnival, ze jsem vzal nejaky 
spatny driver (co jsem radeji nedal do prodeje) tak jsem si napsal 
testovaci pripravek, ktery popojede s pauzama 0.5s 12x 1000 kroku jednim 
smerem a pak najednou o 12.000 kroku zpet - oznacil si polohy na motoru 
a nechal to bezet temer 24h. Vse bez problemu - takze driver a motor 
mohu vyloucit.

Nekdo vyslovil domenku, ze zustava "viset" DIR a pri beznem pohybu 
semtam se tato chyba rusi a nelze ji poznat. Objevi se az pri nestejnem 
poctu pohybu jednim nebo druhym smerem. Myslel jsem ze by to mohlo byt 
zpusobeno tim, ze mam v driveru nastaveno preruseni na nabeznou hranu 
signalu RB0, ktery je ovsem na vstupu invertovan optoclenem. Takze 
vlastne preruseni aktivuje sestupna hrana na vstupu - tedy konec signalu 
STEP. To by opravdu mohl byt problem v okamziku kdy je kratsi signal DIR 
nez STEP - mohu nastavit predsazeni pred STEPem a jeho delku a mohu 
nastavit delku signalu STEP a minimalni delku "diry".
Bohuzel at jsem menil jak menil nic se nezmenilo. Zkousel jsem 
invertovat i signaly lezouci ze Spartana, ale na inverzni signal driver 
nereaguje. Bohuzel nemam si ted kde pujcit pametovy osciloskop a starym 
teslackym se mi nechce na drahou kartu smatrat.

Bohuzel ani zmena aktivacni hrany nic nezmenila - tedy aby nabihalo 
preruseni pri nabehu signalu na vstupu.

Nezbyde mi nez si napsat nejaky pripravek s displejem a pocitat si pocty 
pulzu a spocitat si to.

-- 
S pozdravem
======================================================================
Radek Vicek
======================================================================
http://www.cncnet.info - problematika CNC a automatizace
http://www.jakjevenku.info - webová meteostanice

Dne 28.12.2009 21:41, Lukáš Grepl napsal(a):
>> Zminene preruseni od RB0 se aktivuje hranou podle nastaveni bitu
>> INTEDG0 v registru INTCON2?
>
> Ano, mělo by to tak být.
>
> REGISTER 9-2: INTCON2: INTERRUPT CONTROL REGISTER 2
> bit 6 INTEDG0: External Interrupt 0 Edge Select bit
> 1 = Interrupt on rising edge
> 0 = Interrupt on falling edge
>
>> Hledam jeden problem, ktery se teoreticky mel/mohl vyresit zminenou
>> zmenou aktivacni hrany, ale nevyresil, at menim tento bit jak chci.
>> Tak mi jde o to zda jsem neco neprehledl v DS.
>
> Střelím od boku - nemá signál zákmity na hranách, takže se přerušení
> vyvolá i když by jakoby nemělo? Kdyžtak zkuste popsat co Vám nejde...
>
> Lukáš Grepl
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
>


More information about the Hw-list mailing list