Mesa 7i76 a MPG
- robokop
- Site Admin
- Příspěvky: 22396
- Registrován: 10. 7. 2006, 12:12
- Bydliště: Praha
- Kontaktovat uživatele:
jeste jsem dohledaval na netu:
loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=0XXX"
loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=2XXX"
rozdil je v te 2 pred XXX
loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=0XXX"
loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=2XXX"
rozdil je v te 2 pred XXX
Vsechna prava na chyby vyhrazena (E)
Dík za reakci.
Inkrementy jsem (jak píšeš ty) měl nastavené na začátku pokusů.
Bohužel se stroj hýbal neskutečně pomalu. Při rychlejším otáčení kolečkem přestal pohyb osy a začala se třást na místě.
Proto jsem potom změřil osciloskopem pulsy na vstupu do Mesy 7i76 pin 16,17 a zjistil že kolečko pulsy generuje, ale Mesa je nepřebírá.
Podezření padlo na SW/HW řešení enkodéru na Mese.
Toto je začátek HALu:
loadrt hostmot2
#loadrt hm2_pci config=" num_encoders=1 num_pwmgens=0 num_stepgens=4 sserial_port_0=00xxxx"
loadrt hm2_pci config=" num_pwmgens=0 num_stepgens=4 sserial_port_0=00xxxx"
Rád bych použil HW enkodér, ale v rozdrobené dokumentaci k Mese a potažmo LinuxCnc jsem se ztratil nadobro. Je tam určitě vše, ale asi nějak jinak popsáno, nebo nerozumím jazyku tohoto kmene... )
Kdybys mi mohl doporučit kde hledat, já už si to projdu, ale nějak jsem zatím v lese.
Díky
Inkrementy jsem (jak píšeš ty) měl nastavené na začátku pokusů.
Bohužel se stroj hýbal neskutečně pomalu. Při rychlejším otáčení kolečkem přestal pohyb osy a začala se třást na místě.
Proto jsem potom změřil osciloskopem pulsy na vstupu do Mesy 7i76 pin 16,17 a zjistil že kolečko pulsy generuje, ale Mesa je nepřebírá.
Podezření padlo na SW/HW řešení enkodéru na Mese.
Toto je začátek HALu:
loadrt hostmot2
#loadrt hm2_pci config=" num_encoders=1 num_pwmgens=0 num_stepgens=4 sserial_port_0=00xxxx"
loadrt hm2_pci config=" num_pwmgens=0 num_stepgens=4 sserial_port_0=00xxxx"
Rád bych použil HW enkodér, ale v rozdrobené dokumentaci k Mese a potažmo LinuxCnc jsem se ztratil nadobro. Je tam určitě vše, ale asi nějak jinak popsáno, nebo nerozumím jazyku tohoto kmene... )
Kdybys mi mohl doporučit kde hledat, já už si to projdu, ale nějak jsem zatím v lese.
Díky
Ten lowpass filtr krásně uklidní pojezd. Nefiltruje hrany signálu , ale rozloží pulsy v čase při točení dle nastaveného parametru . prostě ty trsy pulsů při inkrementu kolečka prožene tím filtrem.
Prametrem filtru se dá nastavit jak měkce to bude jezdit.Odpoledne se podívám jak to mám nakofigurované a dám to sem.
Prametrem filtru se dá nastavit jak měkce to bude jezdit.Odpoledne se podívám jak to mám nakofigurované a dám to sem.
Dnes zápasím s MPG zapojeným do MESA karty 7i76, problém je s napětím. Když měřím výstup z MPG (signál A a B) tak je jejich napětí pouze 3.2V a to mesa nezaznamená. Pokud jesem dobře pochopil návod, mesu napájím 12V (napájecí napětí VIN a VFIELD mám propojené, totožné) tak prahová hodnota mezi HIGH a LOW je 6V, jenže MPG je stavěné na 5V
Jak se to teda řeší? nenašel jsem o tomto problému ani zmínku, uniká mi něco? MPG které by zmáklo 12V jsem ještě neviděl a že by někdo vyráběl "posilovač napětí" o tom taky nevím.
Na zahraničním foru jsem viděl že maník dal dva rezistory vždy mezi signál a VIN, ale nevadí tomu MPG když se bude boostovat tím rezistorem a z 3.2V najdenou bude mít na výstupu třeba 8V?
Já jsem to zkoušel posílit s MOSFETy 2N700 (jeden pro signál A a druhý pro signál B) a funguje, jenže je to pomalé a když točím rychleji tak to nestíhá (nevím sice jestli je to problém MOSFETu nebo mesy a možná by stálo za to kdybych to prověřil osciloskopem, ale hledám sofistikovanější řešení) potom mne ještě napadá kdybych místo MOSFETu použil optrony, ale je třeba něco bastlit? nepůjde to jen s mesou 7i76?
Také jsem úplně nepochopil jak funguje VIN a VFIELD, z návodů mi vyplývá že VIN potřebuje napětí 8-32 a na VFIELD stačí 5-32V (pokud je separuju jumprem W1), takže následoval další pokus: jumper W1 jsem přehodil na VIN SEP, na VIN jsem ponechal těch 12V ale na VFIELD jsem přivedl 5V, předpokládám že v tomto případě je VIN jen napájení obvodů v mese a VFIELD je referenční napětí, takže pro stav HIGH by mi nyní mělo stačit napětí 2.5V až 5V ale v HALSHOW se mi v tomto případě vůbec neukazuje změna stavu, ani když přivedu 5V, kde dělám chybu
Jak se to teda řeší? nenašel jsem o tomto problému ani zmínku, uniká mi něco? MPG které by zmáklo 12V jsem ještě neviděl a že by někdo vyráběl "posilovač napětí" o tom taky nevím.
Na zahraničním foru jsem viděl že maník dal dva rezistory vždy mezi signál a VIN, ale nevadí tomu MPG když se bude boostovat tím rezistorem a z 3.2V najdenou bude mít na výstupu třeba 8V?
Já jsem to zkoušel posílit s MOSFETy 2N700 (jeden pro signál A a druhý pro signál B) a funguje, jenže je to pomalé a když točím rychleji tak to nestíhá (nevím sice jestli je to problém MOSFETu nebo mesy a možná by stálo za to kdybych to prověřil osciloskopem, ale hledám sofistikovanější řešení) potom mne ještě napadá kdybych místo MOSFETu použil optrony, ale je třeba něco bastlit? nepůjde to jen s mesou 7i76?
Také jsem úplně nepochopil jak funguje VIN a VFIELD, z návodů mi vyplývá že VIN potřebuje napětí 8-32 a na VFIELD stačí 5-32V (pokud je separuju jumprem W1), takže následoval další pokus: jumper W1 jsem přehodil na VIN SEP, na VIN jsem ponechal těch 12V ale na VFIELD jsem přivedl 5V, předpokládám že v tomto případě je VIN jen napájení obvodů v mese a VFIELD je referenční napětí, takže pro stav HIGH by mi nyní mělo stačit napětí 2.5V až 5V ale v HALSHOW se mi v tomto případě vůbec neukazuje změna stavu, ani když přivedu 5V, kde dělám chybu
- robokop
- Site Admin
- Příspěvky: 22396
- Registrován: 10. 7. 2006, 12:12
- Bydliště: Praha
- Kontaktovat uživatele:
Ta mesa ma specialni piny tusim.ze to jsou io 16 17 1i a 19 ktery se daji prepnout do modu encoderu. Jsou stavene na 5V logiku mpg
Tvoje mpg ma dost nestandardni napetove urovne. Da se resit treba optakem nebo mosfetem. Ten encoderovy vstup je pak dostatecne rychly. Jestli jedes prez softwarovy encoder a bezne piny tak ano to je pomale. Je to limitovane rychlosti sserial a obnovovanim stavu pinu do linuxu. S tim hw encoderem se uz obnovuje cela poloha encoderu z hw citace. Na ty mese je na to myslim PIC mcu.
Tvoje mpg ma dost nestandardni napetove urovne. Da se resit treba optakem nebo mosfetem. Ten encoderovy vstup je pak dostatecne rychly. Jestli jedes prez softwarovy encoder a bezne piny tak ano to je pomale. Je to limitovane rychlosti sserial a obnovovanim stavu pinu do linuxu. S tim hw encoderem se uz obnovuje cela poloha encoderu z hw citace. Na ty mese je na to myslim PIC mcu.
Vsechna prava na chyby vyhrazena (E)
zapomněl jsem upřesnit že MPG které používám je ten nejzákladnější číňan který má jen přepínač os, rozlišení a enkoder. piny pro A a B používám 16 a 17 a kod mám v custom.hal stejný, jako je na tomto vlákně v druhém příspěvku.
Je možné že mám vadné MPG ale to nemám jak ověřit. Zítra asi ještě vyzkouším ty optrony
Abych definoval co pro mě znamená pomalé, tak je to 800mm/min (při rozlišení 10mm/ot, 0,1mm/dílek ma MPG) víc jsem z toho nevyždímal, představoval bych alespoň 2000mm/min
Je možné že mám vadné MPG ale to nemám jak ověřit. Zítra asi ještě vyzkouším ty optrony
běžné piny myslíš všechny IN piny a nebo IN piny mimo ty 16, 17, 18 a 19 které jsi jmenoval pro enkodéry?
moc tomuto nerozumí, šlo by to trochu rozvést? s linuxcnc začínám a tak s některými pojmy trochu zápasím.
Abych definoval co pro mě znamená pomalé, tak je to 800mm/min (při rozlišení 10mm/ot, 0,1mm/dílek ma MPG) víc jsem z toho nevyždímal, představoval bych alespoň 2000mm/min
Tuhle Mesu nemám. Ale podle manuálu má vstup pro enkodér na konektoru TB3, piny 7/8 a 10/11.
Ten už máš obsazený nebo proč ho nepoužiješ?
Jsou to vstupy pro standardní signály line-driver, tj. RS422, tj. to, co máš na svém kroutítku. Napětí 3.2V je tam naprosto správně.
Pokud používáš pro enkodér běžné I/O vstupy, tak ty prostě mají běžné I/O napěťové úrovně. Tedy předpokládají např. běžné průmyslové napětí 24V.
Pak by to chtělo enkodér s otevřeným kolektorem a vysokonapěťovým výstupem.
Samozřejmě by se takový převodník z line-driver na vysokonapěťové výstupy dal velmi snadno postavit, nebo použít rovnou hotový.
Třeba něco takového: https://www.aliexpress.com/item/1005001620605200.html
Ten už máš obsazený nebo proč ho nepoužiješ?
Jsou to vstupy pro standardní signály line-driver, tj. RS422, tj. to, co máš na svém kroutítku. Napětí 3.2V je tam naprosto správně.
Pokud používáš pro enkodér běžné I/O vstupy, tak ty prostě mají běžné I/O napěťové úrovně. Tedy předpokládají např. běžné průmyslové napětí 24V.
Pak by to chtělo enkodér s otevřeným kolektorem a vysokonapěťovým výstupem.
Samozřejmě by se takový převodník z line-driver na vysokonapěťové výstupy dal velmi snadno postavit, nebo použít rovnou hotový.
Třeba něco takového: https://www.aliexpress.com/item/1005001620605200.html
nemám ho sice zatím obsazený, ale šetřím si ho do budoucna až budu přidávat enkodér na vřeteno. I tak to asi není jednoduché obsloužit, už to zde někdo zkoušel o pár příspěvků dřív:
zatím všichni to zapojovali na piny 16 a 17 takže předpokládám že to bude funkční řešení.
Myslel jsem že to půjde bez dalších součástek jako např. u mesy 7i96, jenže u 7i96 je napájecí napětí stejné jako napájecí napětí MPG, čili 5V. Toho by mělo jít dosáhnout i u mesy 7i76 když oddělím VIN (8-32V) a VFIELD (kterému by mělo stačit 5V a mělo by být referenčním napětím pro vstupy pokud to dobře chápu), ale to nefunguje (viz popis výše), asi dělám někde chybu.Mex píše: ↑1. 4. 2022, 11:44 Pokud používáš pro enkodér běžné I/O vstupy, tak ty prostě mají běžné I/O napěťové úrovně. Tedy předpokládají např. běžné průmyslové napětí 24V.
Pak by to chtělo enkodér s otevřeným kolektorem a vysokonapěťovým výstupem.
Samozřejmě by se takový převodník z line-driver na vysokonapěťové výstupy dal velmi snadno postavit, nebo použít rovnou hotový.
Třeba něco takového: https://www.aliexpress.com/item/1005001620605200.html
No - dělej jak myslíš.
Že něco nějak dělají "všichni" ještě není zárukou, že je to tak dobře.
A co s tím enkodérem na vřeteni budeš dělat? To budeš mít vřeteno řízené v polohovém režimu?
Pokud si nastavíš rozhodovací úroveň na všech běžných vstupech tak nízko, aby to správně bralo TTL signály z line-driver enkodéru, tak to (podle mě) nebude to pravé pro ostatní signály.
I když tam v tom MODE 2 píšou, že by to mělo mít na enkodérových vstupech rozhodovací úroveň 2.5V. A nepíšou tam o závislosti na napájecím napětí. Tak třeba ta karta umí přepnout některé vstupní linky do jiného režimu.
Nic tam ale nepíšou jak jsou ty signály zpracovávané. Jestli čítačem ve FPGA, nebo nějakým šidítkem. Aby to bylo dostatečně rychlé, tak by to jednak muselo vést přímo na piny FPGA, a pak by to muselo mít i obsluhu ve firmware.
No ale třeba to tak je. Kartu nemám, takže zkoumat se mi to nechce.
Ta karta má strašně málo I/O linek pro připojení k FPGA na řídící kartě. Takže s nimi museli šetřit a spousta signálů musí být zřejmě honěná nějakým šidítkem. Asi nějaký procesorem na té desce. Další FPGA tam myslím není.
Že něco nějak dělají "všichni" ještě není zárukou, že je to tak dobře.
A co s tím enkodérem na vřeteni budeš dělat? To budeš mít vřeteno řízené v polohovém režimu?
Pokud si nastavíš rozhodovací úroveň na všech běžných vstupech tak nízko, aby to správně bralo TTL signály z line-driver enkodéru, tak to (podle mě) nebude to pravé pro ostatní signály.
I když tam v tom MODE 2 píšou, že by to mělo mít na enkodérových vstupech rozhodovací úroveň 2.5V. A nepíšou tam o závislosti na napájecím napětí. Tak třeba ta karta umí přepnout některé vstupní linky do jiného režimu.
Nic tam ale nepíšou jak jsou ty signály zpracovávané. Jestli čítačem ve FPGA, nebo nějakým šidítkem. Aby to bylo dostatečně rychlé, tak by to jednak muselo vést přímo na piny FPGA, a pak by to muselo mít i obsluhu ve firmware.
No ale třeba to tak je. Kartu nemám, takže zkoumat se mi to nechce.
Ta karta má strašně málo I/O linek pro připojení k FPGA na řídící kartě. Takže s nimi museli šetřit a spousta signálů musí být zřejmě honěná nějakým šidítkem. Asi nějaký procesorem na té desce. Další FPGA tam myslím není.
- robokop
- Site Admin
- Příspěvky: 22396
- Registrován: 10. 7. 2006, 12:12
- Bydliště: Praha
- Kontaktovat uživatele:
tak jsem otevrel manual abychom to tu meli presne bez domenek
MODE 2 I/O plus analog input and field voltage and MPG mode (32 bits of input data,
16 bits of output data, 4 analog input channels, field voltage analog in, and
2 MPG encoders on inputs 16..19). Default encoder count mode is 1X to
match normal 100 PPR MPGs. Encoder input threshold is fixed at 2.5V for
compatibility with 5V encoder outputs.
tzn. ty 4 svorky se zmeni tak abys na ne rovnou dal encoder a ostatni zustane normalni
je to vylozene pro mpg kolecka viz ten odstavec manualu
nedbej na mexe ten to bude delat vzdy uplne jinak a klidne i v rozporu s manualem
nastav si mode 2 a na input pinu 16 a 17 pripoj tvuj encoder (TB5 piny 1 - 4 jsou pro dva encodery a jejich A a B signaly)
z loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=0XXX"
to prepis na loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=2XXX"
treshold je 2.5 takze by ses mel vejit i s tvym neTTL encoder
priste se ujisti aby jsi koupil spravny
cinani radi vymetou ze skladu kde co
treba onehda open collector mpg kolecko
je to hodne atyp, standard je 5V TTL
v tom mode 2 to pak funguje hardwarove
encoder si cita pulzy z kolecka, cas bezi a poloha se jedno za cas vycte do linuxu
podle tveho chovani tam mas asi loardt encoder a pak obecne IO piny pouzite jako vstupy toho softwaroveho encoderu a to je nesmirne pomale
kdyz to prepnes do toho mode 2 tak ti ve stromu pinu hm2.7i76.0.... pribudou dva encodery kde si proste jen prectes position pripadne velocity toho encoderu
k tomu encoderu vretene a jeho vstupum
proste to tam zapojis a funguje to
MODE 2 I/O plus analog input and field voltage and MPG mode (32 bits of input data,
16 bits of output data, 4 analog input channels, field voltage analog in, and
2 MPG encoders on inputs 16..19). Default encoder count mode is 1X to
match normal 100 PPR MPGs. Encoder input threshold is fixed at 2.5V for
compatibility with 5V encoder outputs.
tzn. ty 4 svorky se zmeni tak abys na ne rovnou dal encoder a ostatni zustane normalni
je to vylozene pro mpg kolecka viz ten odstavec manualu
nedbej na mexe ten to bude delat vzdy uplne jinak a klidne i v rozporu s manualem
nastav si mode 2 a na input pinu 16 a 17 pripoj tvuj encoder (TB5 piny 1 - 4 jsou pro dva encodery a jejich A a B signaly)
z loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=0XXX"
to prepis na loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=2XXX"
treshold je 2.5 takze by ses mel vejit i s tvym neTTL encoder
priste se ujisti aby jsi koupil spravny
cinani radi vymetou ze skladu kde co
treba onehda open collector mpg kolecko
je to hodne atyp, standard je 5V TTL
v tom mode 2 to pak funguje hardwarove
encoder si cita pulzy z kolecka, cas bezi a poloha se jedno za cas vycte do linuxu
podle tveho chovani tam mas asi loardt encoder a pak obecne IO piny pouzite jako vstupy toho softwaroveho encoderu a to je nesmirne pomale
kdyz to prepnes do toho mode 2 tak ti ve stromu pinu hm2.7i76.0.... pribudou dva encodery kde si proste jen prectes position pripadne velocity toho encoderu
k tomu encoderu vretene a jeho vstupum
proste to tam zapojis a funguje to
Vsechna prava na chyby vyhrazena (E)
tá karta má vstupy na 3 enkodéry.Meki píše: ↑2. 4. 2022, 12:24 nemám ho sice zatím obsazený, ale šetřím si ho do budoucna až budu přidávat enkodér na vřeteno. I tak to asi není jednoduché obsloužit, už to zde někdo zkoušel o pár příspěvků dřív:zatím všichni to zapojovali na piny 16 a 17 takže předpokládám že to bude funkční řešení.
na vreteno na TB3
na 2 kolečká na TB5, vstupy IN16-IN19
mám zapojené vreteno aj MPG a funguje to bez problémov.
Paráda, funguje děkuji. Přepnul jsem to teda na sserial_port_0=2XXX, nic jsem v HALu neměnil a MPG fungovalo do 1500mm/min. Ale vrtalo mi v hlavě asi to nepůjde ještě zrychlit tak jsem otevřel halshow a opravdu jak píšeš, našel jsem tam enc0 a enc1.robokop píše: ↑2. 4. 2022, 8:19 MODE 2 I/O plus analog input and field voltage and MPG mode (32 bits of input data,
16 bits of output data, 4 analog input channels, field voltage analog in, and
2 MPG encoders on inputs 16..19). Default encoder count mode is 1X to
match normal 100 PPR MPGs. Encoder input threshold is fixed at 2.5V for
compatibility with 5V encoder outputs.
tzn. ty 4 svorky se zmeni tak abys na ne rovnou dal encoder a ostatni zustane normalni
je to vylozene pro mpg kolecka viz ten odstavec manualu
nastav si mode 2 a na input pinu 16 a 17 pripoj tvuj encoder (TB5 piny 1 - 4 jsou pro dva encodery a jejich A a B signaly)
z loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=0XXX"
to prepis na loadrt hm2_pci config="num_encoders=1 num_stepgens=5 sserial_port_0=2XXX"
treshold je 2.5 takze by ses mel vejit i s tvym neTTL encoder
priste se ujisti aby jsi koupil spravny
cinani radi vymetou ze skladu kde co
treba onehda open collector mpg kolecko
je to hodne atyp, standard je 5V TTL
v tom mode 2 to pak funguje hardwarove
encoder si cita pulzy z kolecka, cas bezi a poloha se jedno za cas vycte do linuxu
podle tveho chovani tam mas asi loardt encoder a pak obecne IO piny pouzite jako vstupy toho softwaroveho encoderu a to je nesmirne pomale
kdyz to prepnes do toho mode 2 tak ti ve stromu pinu hm2.7i76.0.... pribudou dva encodery kde si proste jen prectes position pripadne velocity toho encoderu
tak jsem v custom.hal zrušil:
net mpg-a encoder.0.phase-A <= hm2_5i25.0.7i76.0.0.input-16
net mpg-b encoder.0.phase-B <= hm2_5i25.0.7i76.0.0.input-17
a
net encoder-counts <= encoder.0.counts
jsem nahradil
net encoder-counts <= hm2_5i25.0.7i76.0.0.enc0.count
a už jezdím i na 2600mm/min
Mohl bys prosím rozvést tuto svoji ostrovtipnou myšlenku?
Jen pro připomenutí, co jsem napsal:
A pak tohle:
Která z těch informací byla "úplně jinak a klidně v rozporu s manuálem" ?
A kdybys věděl, jaká je standardní napěťová úroveň na i jen jednostranně zakončených (nebo dokonce i na nezakončených) výstupech RS422, tak bys asi nepsal spekulace o tom, jak Číňan něco vymetal ze skladu.