EMC a počet paralelních portů
myslím, že díky modulární koncepci a HAL je to u EMC téměř neomezeno, resp. dříve dosáhneš hardwarových limitů. Momentálně si hraju se sestavou s 1 onboard paralelním portem a 2 paralelníma portama přes USB.
V dokumentaci pisou 8. Ja pouzivam 3. Jeden v out modu, dva v in. Z pribyvajicimi porty klesa vykon hardware, pokud neni potreba je vhodne nehonit nezbytne vsechno base-frekvenci, pak je vse v pohode.
to gnat: co jsou to za USB->LPT usb->centronix? Jake mas s nimi zkusenosti? Je to plnohodnotne LPT? Fungujou vsechny piny?
Diky
to gnat: co jsou to za USB->LPT usb->centronix? Jake mas s nimi zkusenosti? Je to plnohodnotne LPT? Fungujou vsechny piny?
Diky
Nevím, zatím si jen hraju a mám pinů dost
Používám jen DATA registr na HW portu pro OUT do driverů a jeden USB parport jako IN pro koncové spínače a na druhém bastlím ovládání os přes encoder. Všechno zatím jen nasucho na stole, stroj ještě nemám, teď řeším elektroniku.
Je to tohle: http://www.alza.cz/redukce-usb-lpt-d47765.htm

Používám jen DATA registr na HW portu pro OUT do driverů a jeden USB parport jako IN pro koncové spínače a na druhém bastlím ovládání os přes encoder. Všechno zatím jen nasucho na stole, stroj ještě nemám, teď řeším elektroniku.
Je to tohle: http://www.alza.cz/redukce-usb-lpt-d47765.htm
Ja chtel jen vedet jestli fungujou vsechny piny na USB portu (vsechny, tim myslim i jinez nez 2-9) a jestli max-frekvence USB-portu je stejna jako HW port. Kdyz napr. prohodis na rizeni tveho driveru HW port za USB port, jestli se neco zmeni.
na USB zabudnite na presne casovanie. URBS (USB request block) ma velmi rozdielne casovanie podla toho ako je cely USB system zatazeny. To uz nepotrebujete ani RT kernel .. tak nepresne to moze byt. Samozrejme pri 1kHz alebo na spinace vretena to stacit bude.
Pocet portov je limitovany jadrom linuxu na 8 .. ale pocas kompilacie vlastneho jadra nie je problem to rozsirit aj na viac. EMC podobne .. staci ked budete vediet na akych adresach s aprislusne porty mapli.
osobne sa domnievam, ze viac ako 3 porty uz nemaju zmysel a je potom vyhodnejsie pouvazovat o nejakom speciallizovanom HW .. pozrite doc EMC cast HAL pre podporu hardware.
(BTW, ked ste preberali ako pripojit potak k EMC . toto sa da velmi jednoducho riesit kartami s AD prevodnikmi.. linux ich pozna niekolko. ja som testoval CSE-8225, linux ju pozna, EMC nema problem citat cokolvek co ma cli interface alebo dava svoje info cez linux /dev/input t.j. ci uz joystick alebo lubovolne HID. Vacsina hernych gamepadov a joystickov je teda tiez pouzitelna. Pre tych co si to planuju odlaborovat .. staci pozriet /dev/input/ adresar a ci sa tam pri beziacom systeme po zasunuti USB konektoru zjavi js0 device link .. pripadne cez prikaz jstest /dev/input/js0 overit ci sa aj mapuje ovladanie. Linkovanie do EMC cez hal-input a hal-joystick je uz popisane na strankach linuxcnc.org. Upozornim ale zaujemcov ze niektore zariadenia sposobuju neprijemne "skubanie" EMC-cka .. vdaka nevhodemu HW. Napr. touchcreen s evtouch driverom mi uplne zablokoval EMC, pritom evtouch driver s inym panelom siel bez probs. Vopred sa neda povedat co pobezi a co nie.)
Pocet portov je limitovany jadrom linuxu na 8 .. ale pocas kompilacie vlastneho jadra nie je problem to rozsirit aj na viac. EMC podobne .. staci ked budete vediet na akych adresach s aprislusne porty mapli.
osobne sa domnievam, ze viac ako 3 porty uz nemaju zmysel a je potom vyhodnejsie pouvazovat o nejakom speciallizovanom HW .. pozrite doc EMC cast HAL pre podporu hardware.
(BTW, ked ste preberali ako pripojit potak k EMC . toto sa da velmi jednoducho riesit kartami s AD prevodnikmi.. linux ich pozna niekolko. ja som testoval CSE-8225, linux ju pozna, EMC nema problem citat cokolvek co ma cli interface alebo dava svoje info cez linux /dev/input t.j. ci uz joystick alebo lubovolne HID. Vacsina hernych gamepadov a joystickov je teda tiez pouzitelna. Pre tych co si to planuju odlaborovat .. staci pozriet /dev/input/ adresar a ci sa tam pri beziacom systeme po zasunuti USB konektoru zjavi js0 device link .. pripadne cez prikaz jstest /dev/input/js0 overit ci sa aj mapuje ovladanie. Linkovanie do EMC cez hal-input a hal-joystick je uz popisane na strankach linuxcnc.org. Upozornim ale zaujemcov ze niektore zariadenia sposobuju neprijemne "skubanie" EMC-cka .. vdaka nevhodemu HW. Napr. touchcreen s evtouch driverom mi uplne zablokoval EMC, pritom evtouch driver s inym panelom siel bez probs. Vopred sa neda povedat co pobezi a co nie.)
Tak to jsem rád, počítám, že se 3mi parporty bohatě vystačím a ještě s rezervou. Použiju http://www.intel.com/products/desktop/m ... erview.htm a do něj jednu http://www.alza.cz/kouwell-220n-2-i-d39540.htm a snad to bude OK.
akurat v piatok mi kamos z Cz tu kouwell 220-ku stamadial doniesol. je to moschip ktory je v linuxe podporovany. Karta chodi v EMC ale .. nepodporuje iqr sharing a mne sa ani nepodarilo ju s irq rozbehat ( zial pouzivam iqr pri spindle sync, komutoto netreba tak mu to bude sluzit bez akychkolvek problemov). nema niekto link na nejaku inu kartu s nie moschip integracom ?
to k: To jsem chtel slyset k USB-LPT. Diky 
to Avenger: Tuhle kombinaci provozuju, ta deska neni vykonove nic moc, ale je za hubicku a s EMC stiha krokovani 50kHz na 4 osach s 3x LPT
Pokud bys potreboval signaly vsech tri LPT 50kHz, tak je to uz ale citit na odezvach. Ja mam nastaveny 50kHz pouze ten integrovany LPT na boardu ostatni 1kHz (prevazne tlacitka)

to Avenger: Tuhle kombinaci provozuju, ta deska neni vykonove nic moc, ale je za hubicku a s EMC stiha krokovani 50kHz na 4 osach s 3x LPT

Pokud bys potreboval signaly vsech tri LPT 50kHz, tak je to uz ale citit na odezvach. Ja mam nastaveny 50kHz pouze ten integrovany LPT na boardu ostatni 1kHz (prevazne tlacitka)
Muzes prosim trochu rozebrat ten problem s IRQ a spindl sync a jak to mas pripojene?k píše:akurat v piatok mi kamos z Cz tu kouwell 220-ku stamadial doniesol. je to moschip ktory je v linuxe podporovany. Karta chodi v EMC ale .. nepodporuje iqr sharing a mne sa ani nepodarilo ju s irq rozbehat ( zial pouzivam iqr pri spindle sync, komutoto netreba tak mu to bude sluzit bez akychkolvek problemov). nema niekto link na nejaku inu kartu s nie moschip integracom ?
Popisem to cele ako to vzniklo a ake su ine moznosti a co je ciel.
Na spindi mam kotucik, ma 2x track s dierkami a optozavorky. Na track 1 je akurat jeden otvor, ten dava index. Track 2 ma 128 otvorov.
spindel dava max cca 50kHz .. a toto samplovat cez HAL je problem. Lietalo to hore dole. Preddelic som tam nechcel davat, tak som sa rozhodol to zapojit priamo na parport.
Parport na pine 10 vie generovat na hranu prerusenie. Tu beriem to co prichadza z track 2. Prerusenie je vlastne hardwarovo zavolany podprogram. Toto nie je teda treba samplovat a staci velmi kratucky kod ktory sa zavola v obsluhe prerusenia a inkrementuje citace. citac1 potom nulujem cca 10X za sekundu, ale jeho hodnotu si nakopirujem do ineho miesta skadial to EMC cita. Podla otacok tam mam cislo 0 az cca 5000 zodpovedajuce otackam spindla.
Zaroven viem aj pribliznu polohu spindla, pretoze ked dostanem prerusenie od track 2 pozriem aj na track 1.. a v case ak je tam otvor nulujem citac2.. tym padom viem okamzitu polohu spindla v 128 poziciach. (na tomto spindli som taku presnost nikdy nepotreboval . max som pouzil orientacne poziciu spindlu +-10 stupnov ked som rezal zapustenia na odvratenej strane spindla).
Toto zodpoveda funkcii HAL-encodera resp. citaca, lenze tieto pin len sampluju a ak xeme merat frekvenciu musime samplovat aspon 2x vyssou frekvenciou ako je merana (pre prax 3x vyssou).
K tomuto rieseniu som dosiel len z lenivosti, lahsie bolo napisat kus kodu ako vrazit do HW preddelic a naviac preddelicom by som stratil presnost pozicie. Kedze som z jednej tlaciane vyhrabal koliesko s este vacsim poctom dielikov, spekulujem ako sa vratit k tomuto rieseniu. Aktualne to nepouzivam, kedze na mojom kompe je parport bez IRQ. Kod bol pisany este pre EMC1 resp. zaciatkoch EMC2.
Mozno by dnes bolo podstatne jednoduchsie riesenie zapojit do cesty preddelic ktory by sa dal vypnut.. pri vyssich otackach kde nie je treba presnu poziciu by zaradenie preddelica nevadilo a pri nizsich otackach uz EMC spolahlivo nasampluje presnu polohu.
Cielom je A os stroja ktora bude sluzit aj ako delicka aj ako vreteno sustruhu. (pohon asynchro motorom, menic, 2 prevody .. pomaly na delenie povedzme 1:40 a 1:1 alebo podobne pre sustruzenie max cca do 5000 otacok + brzda pre frezovaci rezim, prevody aj brzda ovladane z EMC podla nastavenych otacok; otacky = 0 aktivuju brzdu, preradenie prevodu zrejme nejakym privatnym prikazom v G-kode alebo od nejakej heuristiky - pocas upichovania ked zacinam na 100 otackach a koncim na povedzme 1500 by bolo totiz blbe automaticky preradit prevod
).
Na spindi mam kotucik, ma 2x track s dierkami a optozavorky. Na track 1 je akurat jeden otvor, ten dava index. Track 2 ma 128 otvorov.
spindel dava max cca 50kHz .. a toto samplovat cez HAL je problem. Lietalo to hore dole. Preddelic som tam nechcel davat, tak som sa rozhodol to zapojit priamo na parport.
Parport na pine 10 vie generovat na hranu prerusenie. Tu beriem to co prichadza z track 2. Prerusenie je vlastne hardwarovo zavolany podprogram. Toto nie je teda treba samplovat a staci velmi kratucky kod ktory sa zavola v obsluhe prerusenia a inkrementuje citace. citac1 potom nulujem cca 10X za sekundu, ale jeho hodnotu si nakopirujem do ineho miesta skadial to EMC cita. Podla otacok tam mam cislo 0 az cca 5000 zodpovedajuce otackam spindla.
Zaroven viem aj pribliznu polohu spindla, pretoze ked dostanem prerusenie od track 2 pozriem aj na track 1.. a v case ak je tam otvor nulujem citac2.. tym padom viem okamzitu polohu spindla v 128 poziciach. (na tomto spindli som taku presnost nikdy nepotreboval . max som pouzil orientacne poziciu spindlu +-10 stupnov ked som rezal zapustenia na odvratenej strane spindla).
Toto zodpoveda funkcii HAL-encodera resp. citaca, lenze tieto pin len sampluju a ak xeme merat frekvenciu musime samplovat aspon 2x vyssou frekvenciou ako je merana (pre prax 3x vyssou).
K tomuto rieseniu som dosiel len z lenivosti, lahsie bolo napisat kus kodu ako vrazit do HW preddelic a naviac preddelicom by som stratil presnost pozicie. Kedze som z jednej tlaciane vyhrabal koliesko s este vacsim poctom dielikov, spekulujem ako sa vratit k tomuto rieseniu. Aktualne to nepouzivam, kedze na mojom kompe je parport bez IRQ. Kod bol pisany este pre EMC1 resp. zaciatkoch EMC2.
Mozno by dnes bolo podstatne jednoduchsie riesenie zapojit do cesty preddelic ktory by sa dal vypnut.. pri vyssich otackach kde nie je treba presnu poziciu by zaradenie preddelica nevadilo a pri nizsich otackach uz EMC spolahlivo nasampluje presnu polohu.
Cielom je A os stroja ktora bude sluzit aj ako delicka aj ako vreteno sustruhu. (pohon asynchro motorom, menic, 2 prevody .. pomaly na delenie povedzme 1:40 a 1:1 alebo podobne pre sustruzenie max cca do 5000 otacok + brzda pre frezovaci rezim, prevody aj brzda ovladane z EMC podla nastavenych otacok; otacky = 0 aktivuju brzdu, preradenie prevodu zrejme nejakym privatnym prikazom v G-kode alebo od nejakej heuristiky - pocas upichovania ked zacinam na 100 otackach a koncim na povedzme 1500 by bolo totiz blbe automaticky preradit prevod

Zajimalo by me to s tim pinem 10 a IRQ, vsemu dalsimu rozumim. Nebyl by zdrojacek (alespon samplik)? 
Jinak diky za vycerpavajici odpoved.

Jinak diky za vycerpavajici odpoved.
ja mam dielnu od prace 4km
.. takze napochytro nejadem zdrojak ..
Odporucam ale pozriet princip ako sa to programuje priamo do jadra linuxu, prikladom je kratucky kod pre pripojenie klasickej klavesnice cez parport v jadre priamo subor drivers/input/serio/parkbd.c. pozrite napr tuna:
http://git.kernel.org/?p=linux/kernel/g ... bd;hb=HEAD
Pozor, RT jadro EMC bude potrebovat mierne pozmenit .. nakolo hal_parport.c je tak trochu "prasa".

Odporucam ale pozriet princip ako sa to programuje priamo do jadra linuxu, prikladom je kratucky kod pre pripojenie klasickej klavesnice cez parport v jadre priamo subor drivers/input/serio/parkbd.c. pozrite napr tuna:
http://git.kernel.org/?p=linux/kernel/g ... bd;hb=HEAD
Pozor, RT jadro EMC bude potrebovat mierne pozmenit .. nakolo hal_parport.c je tak trochu "prasa".
koupil jsem tuhle kartu http://www.alza.cz/kouwell-220n-2-i-d39540.htm, ale nemuzu v linuxu zjistit jakou ma adresu a jak ji nainstalovat...mela by mit dva LPT. Jak ji dopsat do HALu chapu ale nevim jeji adresu. Jak se to da zjistit?
Martin