Převod hran na pulzy
Dokáže mi někdo navést, kterak jednoduše na PS s pár IO vytvořit obvod, který převádí hrany jednoho signálu (pozitivní i negativní) na pulzy. Zkoušel jsem jako základ obvod LM555 s tím, že ten umí jen pulz na sestupné hrany a navíc musí jít vstupní signál z5 do HIGH dříve než je délka výstupního pulzu:-(
Funkce je prostá, nyní mám 3-osé řízení krokáčů přímých řízením zapínání vinutí dvěma výstupy z LPT. Pokud však budu chtít použít v budoucnu klasický výkonový stupeň (STEP/DIR), nejlepší by byl právě tento obvod.
Díky
P.
Funkce je prostá, nyní mám 3-osé řízení krokáčů přímých řízením zapínání vinutí dvěma výstupy z LPT. Pokud však budu chtít použít v budoucnu klasický výkonový stupeň (STEP/DIR), nejlepší by byl právě tento obvod.
Díky
P.
Neviem či som ťa dopre pochopil. Ty chceš riadiť vinutie priamo povelom z LPT? Teba dva bity = 4 stavy = sekvencia 4 krokov? Alebo riadiš krok vpred a krok vzad? Ak som to dobre pochopil tak sa to dá prevodníkom BCD/1 z N. Neviem presne ale tuším je to 7442? Je to TTL takže priama kompatib. na úrovne LPT. Skús upresniť presne tvoj problém a ak to neutiahnu štandardné komponenty tak niečo usmolíme s PIC alebo ATMELom.
EDIT: Možno som to pochopil až teraz. Potrebuješ pri nábežnej hrane vygenerovať pulz o určitej dĺžke a pri dobežnej hrane chceš vygenerovať ďalší pulz? Ľudovo povedané násobičku kmitočtu? Teda trochu viac než násobičku? Teoreticky: potrebuješ 2x MKO napr. s 556. Vstupný signál privedieš na oba ale jeden neguješ, a na výstupe MKO prevedieš logický súčet oboch MKO a máš monostabilnú násobičku kmitočtu
EDIT: Možno som to pochopil až teraz. Potrebuješ pri nábežnej hrane vygenerovať pulz o určitej dĺžke a pri dobežnej hrane chceš vygenerovať ďalší pulz? Ľudovo povedané násobičku kmitočtu? Teda trochu viac než násobičku? Teoreticky: potrebuješ 2x MKO napr. s 556. Vstupný signál privedieš na oba ale jeden neguješ, a na výstupe MKO prevedieš logický súčet oboch MKO a máš monostabilnú násobičku kmitočtu

Ja sem to taky pochopil jako nasobicku frekvence. Jenlip kdyz sem hodis nakresleny vstupni a vystupni prubehy. A kcemu to presne ma slouzit?
Kdo nic nedela ,nic nesku...
Popíšu to raději podrobněji.
Nyní mi dva bity z LPT řídí unipolár (dva bity dají 4 stavy .. 0,1,2,3). Ty bity převádím v IO (demultiplexer) na čtyři výstupy, které budí koncové darlingtony. To mám pro všechny osy. navíc tam je bit Enable - ten je pro vše stejný. Mám vlastní plošňák.
LPT výstupy řídím vlastním softem z Windowsů (celkem jednoduchý fígl, program počítá absolutní polohu v krocích - synchonně pro všechny tři osy, a na LPT se posílají pouze první dva bity polohy. Jen se musí zabezpečit, aby se každý průchod změnila hodnota jen o max. jedna. Problém je trochu s rychlostí Woken, ale 100% dokážu udělat smyčku 1 ms, což mi zatím pro moje rychlosti pohybů dostačuje. Abych upřesnil můj cíl, dělám páličku na trubky (výpaly tvarů trubka na trubku apod.). Nyní testují přípravek (miniverze, místo hořáku popisovač
, ale až to bude naostro, musím použít silnější motory a silnější výkonový stupeň. Ten bych raději koupil, ale proto potřebuji konvertovat signál na pulzy - ze dvou stávajících bitů bude jeden překonvertován na DIRECTION a ten druhý bych chtěl každý požadovaný krok nahodit popř. shodit dle předchozího stavu. Teoreticky bych mohl mít pulz dlouhý 1 ms (dáno periodou smyčky) a shazovat ho v další smyčce, ale tím prakticky skončím na poloviční frekvenci 
Hledal jsem nějaké levné drivery, které by uměly synchronně ovládat víc os, ale ty, co jsem našel, umí "jezdit" jen po čáře nebo oblouku, ale ne po mnou definované parametrické křivce. Proto to řeším softwarově včetně vlastního průběhu zrychlení. Nebo někdo o něčem použitelném ví?
Varianta z PIC mne taky napadla, ale tak daleko zase nejsem, aby se do toho pustil.
Díky za radu.
P.
Nyní mi dva bity z LPT řídí unipolár (dva bity dají 4 stavy .. 0,1,2,3). Ty bity převádím v IO (demultiplexer) na čtyři výstupy, které budí koncové darlingtony. To mám pro všechny osy. navíc tam je bit Enable - ten je pro vše stejný. Mám vlastní plošňák.
LPT výstupy řídím vlastním softem z Windowsů (celkem jednoduchý fígl, program počítá absolutní polohu v krocích - synchonně pro všechny tři osy, a na LPT se posílají pouze první dva bity polohy. Jen se musí zabezpečit, aby se každý průchod změnila hodnota jen o max. jedna. Problém je trochu s rychlostí Woken, ale 100% dokážu udělat smyčku 1 ms, což mi zatím pro moje rychlosti pohybů dostačuje. Abych upřesnil můj cíl, dělám páličku na trubky (výpaly tvarů trubka na trubku apod.). Nyní testují přípravek (miniverze, místo hořáku popisovač


Hledal jsem nějaké levné drivery, které by uměly synchronně ovládat víc os, ale ty, co jsem našel, umí "jezdit" jen po čáře nebo oblouku, ale ne po mnou definované parametrické křivce. Proto to řeším softwarově včetně vlastního průběhu zrychlení. Nebo někdo o něčem použitelném ví?
Varianta z PIC mne taky napadla, ale tak daleko zase nejsem, aby se do toho pustil.
Díky za radu.
P.
- RadekCX
- Příspěvky: 622
- Registrován: 14. 7. 2006, 10:12
- Bydliště: Č.Budějovice
- Kontaktovat uživatele:
Nechapu jak driver muze resit nejake krivky - pokud myslite nejake chytre zarizeni s vice vystupy pro osy tak to asi nenajdete. Je to totiz neefektivni - proc mit specializovane zarizeni - kdyz se to da resit jednim univerzlnim driverem a nadrizenym interpolatorem.PavelZ píše: Hledal jsem nějaké levné drivery, které by uměly synchronně ovládat víc os, ale ty, co jsem našel, umí "jezdit" jen po čáře nebo oblouku, ale ne po mnou definované parametrické křivce. Proto to řeším softwarově včetně vlastního průběhu zrychlení. Nebo někdo o něčem použitelném ví?
Mimochodem co to je levne? Pokud neni cena za Profistep moc dalo by se mluvit se mnou o specialni verzi rizenou ne signalem STEP/DIR, ale tim vasim binarnim kodem - jestli chapu dobre tak se binarne pocita od 0 do 3 bud doprava nebo doleva. Podle toho se krokuje.
RadekCX
======================================================================
http://www.cncnet.info - problematika CNC a automatizace
http://www.jakjevenku.info - webová meteostanice
======================================================================
http://www.cncnet.info - problematika CNC a automatizace
http://www.jakjevenku.info - webová meteostanice
Ještě dotaz na tu S556. Nenašel jsem to teda v datasheetu k tomuto IO, ale pro LM555 bylo vyžadováno, aby vstupní signál šel zpět do HIGH dříve než dočasuje výstupní pulz. A to mě právě zastavilo, protože já potřebuju délku pulzu nějakých pár mikrosekund (nevím, kolik běžně výkonový stupně mají), zatímco délka mého OBD signálu bude 1ms, takže řešení rozdělit signál na dva MKO (jeden s invert vstupem) a pak jejich výstupy dát ORem k sobě mi přijde ne dost spolehlivá ???? Nevím, možná S556 je v tomto jiný.
P.
P.
-
- Příspěvky: 93
- Registrován: 21. 7. 2006, 1:53
- Bydliště: Praha 4
- Kontaktovat uživatele:
1. vy potrebujete vystupni impuls z LPT zkratit, jak se to dela je popsano zde:
fei1.vsb.cz/kat448/Studium/Materialy/MRS1/zkraceni.doc
2. Asi doslo k nepochopeni textu, kolega "data m" psal jen o obvodu 556, to "s" je uvedeno ve smyslu "s (obvodem)".
3. 556 je dvojita 555, datasheet naleznete treba zde:
http://www.fairchildsemi.com/ds/LM/LM556.pdf
4. generovani impulzu od kazde hrany obdelnikoveho signalu se bezne pouziva pri zpracovani signalu z IRC cidel, takze zkuste hledat timto smerem.
--
jrt
fei1.vsb.cz/kat448/Studium/Materialy/MRS1/zkraceni.doc
2. Asi doslo k nepochopeni textu, kolega "data m" psal jen o obvodu 556, to "s" je uvedeno ve smyslu "s (obvodem)".
3. 556 je dvojita 555, datasheet naleznete treba zde:
http://www.fairchildsemi.com/ds/LM/LM556.pdf
4. generovani impulzu od kazde hrany obdelnikoveho signalu se bezne pouziva pri zpracovani signalu z IRC cidel, takze zkuste hledat timto smerem.
--
jrt
S obvodom MH74123 som už tú česť mal ale neviem či sa ti to podarí zladiť. Inak čo som podľa toho popisu pochopil nebolo by lepšie urobiť niečo na spôsob ALU s CASH ktorá ti je schopná generovať priamo signál DIR a signál STEP (ako si už hore písal) máš, takže nieje čo riešit.PavelZ píše:Tak to je prima, obvod 74123 dělá přesně to, co potřebuju
Dík za navigaci. P.
PS: Nieje najjednoduchšie urobiť zásah do SW na PC a na LPT posielať priamo STEP a DIR? Nechápem prečo vlastne posielaš spodné 2bit LSB na LPT. Ak sa povznesiem nad hranicu reálneho sveta tak nachádzam uplatnenie iba v tom že ak ti driver stratí krok tak ho je schopný následne korigovať. Ale skôr sa ti stratí krok na motore ako na komunikačnej linke.
No, zásah do SW je možný, ale ne na současné úrovni, kdy LPT ovládám z user levelu (pod Windows), protože tam to již časově nevychází. Jak jsem zmiňoval, max. rozlišení je 1ms, což je pro generování pulzů type STEP katastrofálně málo (délky půlzů jsou řádově mikrosekundy).
Tzn. řešení jsou tři: a) stávající signál zpracovat hardwarově b) řízení I/O na LPT zpracovávat na úrovni kernelu (tím se teď zabývám, stáhnul jsem si DDK a učím se architekturu ovladačů) nebo c) to udělat v jiném OS než Wokna (buď LINUX nebo přejít do platformu PIC).
A ještě dotaz na spodní 2bit ... v mém softu nadřazený modul počítá absolutní polohu všech čtyř os v dané chvíli, takže nejjednodušší způsob, jak tuto abs. hodnotu převést na výstup je použití spodních 2bitů (tedy hodnoty 0, 1, 2 a 3 - ty pak přímo zapínají vinutí unipoláru) - nemá to souvislost s obavou o ztrátu kroku.
P.
Tzn. řešení jsou tři: a) stávající signál zpracovat hardwarově b) řízení I/O na LPT zpracovávat na úrovni kernelu (tím se teď zabývám, stáhnul jsem si DDK a učím se architekturu ovladačů) nebo c) to udělat v jiném OS než Wokna (buď LINUX nebo přejít do platformu PIC).
A ještě dotaz na spodní 2bit ... v mém softu nadřazený modul počítá absolutní polohu všech čtyř os v dané chvíli, takže nejjednodušší způsob, jak tuto abs. hodnotu převést na výstup je použití spodních 2bitů (tedy hodnoty 0, 1, 2 a 3 - ty pak přímo zapínají vinutí unipoláru) - nemá to souvislost s obavou o ztrátu kroku.
P.
Covece to te obdivuju, pustit se do laborovani s ovladaci ve woknech. Neni jednodussi a efektivnejsi se naucit se programovat PIC,C51,AVR nebo ATmega? A udelat svuj driver kdyz si program v PC delas sam? Jestli delas v C++ tak treba Atmega zvladnes rychle.
Kdo nic nedela ,nic nesku...
Jak jsem už před časem na podobné téma jednou napsal ... nic nenahradí vlastnoručně udělaný GUI. Bohužel v LINUXu to zatím neumím. Dělat do PIC a podobně mne moc neláká, zatím jsem si vždycky se "šnečí" rychlostí Woken poradil (nebo se na to vybodl, když to nešlo, a dělal to kolega v PLC).
Keď už budeš rezignovať tak ti urobím prevodník z nového štandardu (DRIVE2bitLBS)
na DIR. V praxi urobím prevodník (schéma a návrh DPS, naprogramujem ti atmela). Inak AT89C2051 bezí na 24MHz (0,5mkS inštrukcia) takže rýchlosť tam je dostatočná. Keď by si poslúchal tak by to možno vošlo do redukcie DSUB25/25.
Skúmal som to urobiť pomocou ALU (MH74688 a CASH HM7474). Moc zložité.

Skúmal som to urobiť pomocou ALU (MH74688 a CASH HM7474). Moc zložité.
Možná by to patřilo do sekce k MACH3 nebo na úplně jiné fórum, ale dám to k tomuto vláknu.
Prohrabal jsem se dokumentací DDK (Device Driver Kit) pro Wokna a nepřišel jsem na to, jak ovladač Machu dokáže frekvence 45KHz a 65kHz (frekvence pulzů). Na internetu zatím také nic.
Kernelové časovače sice dovolují časové jednotky 100ns, ale pouze jako jednorázové časovače, pro periodické (KeSetTimerEx) je min. možná perioda 1 ms (což jsem v podstatě tam, kde jsem skončil v user-modu).
Neví někdo, jak by to šlo vyřešit.
Dát natvrdo nějakou smyčku do kernelovýho driveru se mi nechce, aby mi nezamrznul OS.
Vůbec se mi nechce reverzně studovat ovladač od Machu, který vypadá, že je postavenej na nějakém driver kitu od Numegy, a ne klasicky DDK.
Začínám vážně uvažovat, že dám na rady Robokopa a verhnu se na EMC.
Prohrabal jsem se dokumentací DDK (Device Driver Kit) pro Wokna a nepřišel jsem na to, jak ovladač Machu dokáže frekvence 45KHz a 65kHz (frekvence pulzů). Na internetu zatím také nic.
Kernelové časovače sice dovolují časové jednotky 100ns, ale pouze jako jednorázové časovače, pro periodické (KeSetTimerEx) je min. možná perioda 1 ms (což jsem v podstatě tam, kde jsem skončil v user-modu).
Neví někdo, jak by to šlo vyřešit.
Dát natvrdo nějakou smyčku do kernelovýho driveru se mi nechce, aby mi nezamrznul OS.
Vůbec se mi nechce reverzně studovat ovladač od Machu, který vypadá, že je postavenej na nějakém driver kitu od Numegy, a ne klasicky DDK.
Začínám vážně uvažovat, že dám na rady Robokopa a verhnu se na EMC.