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