Inkrementální enkodér - Hradlování indexu

QNX
Příspěvky: 3701
Registrován: 20. 12. 2006, 9:59
Kontaktovat uživatele:

19. 10. 2021, 3:21

Je tu nějaký šikula, který si ještě pamatuje, jak se navrhují digitální obvody z hradel? Vrtá mi hlavou, jak by se dal jednoduše poskládat obvod, který by dokázal z širokého index pulzu a A/B pulzů inkrementálního enkodéru vytvořit hradlovaný Z index. Pro upřesnění přikládám obrázek. Původní Z je potřeba oříznout podle pulzu A. Pokud je Z delší, tak ten hradlovaný výstup bude sepnutý jen na délku jednoho pulzu A. Také by to mělo počítat s možností, že někde v průběhu toho Z pulzu dojde ke změně směru otáčení. Už je to dost dávno, co jsem si z hradel skládal klopné obvody, nějaká rada by se mi hodila :idea: Díky
Encoder-Gated.jpg
Uživatelský avatar
Tukanekb8
Protřelý bazarník
Příspěvky: 906
Registrován: 19. 4. 2015, 8:05

19. 10. 2021, 7:09

Napsal jsem kamaradovi ktery je podstatne zdatnejsi nez ja a odpoved byla tato:

And hradlo na Z a vystup klopaku kde R a S jsou A a B
To by mělo stačit
Jo a podložit to enablem, Z kem tedy

Treba ti to pomuze :)
Soustruh Magdeburg D30, CNC frézka home-made, 3D tisk home-made,...
miv
Příspěvky: 777
Registrován: 17. 9. 2019, 11:55

19. 10. 2021, 7:20

QNX píše: 19. 10. 2021, 3:21 Je tu nějaký šikula, který si ještě pamatuje, jak se navrhují digitální obvody z hradel? Vrtá mi hlavou, jak by se dal jednoduše poskládat obvod, který by dokázal z širokého index pulzu a A/B pulzů inkrementálního enkodéru vytvořit hradlovaný Z index. Pro upřesnění přikládám obrázek. Původní Z je potřeba oříznout podle pulzu A. Pokud je Z delší, tak ten hradlovaný výstup bude sepnutý jen na délku jednoho pulzu A. Také by to mělo počítat s možností, že někde v průběhu toho Z pulzu dojde ke změně směru otáčení. Už je to dost dávno, co jsem si z hradel skládal klopné obvody, nějaká rada by se mi hodila :idea: DíkyEncoder-Gated.jpg
Ještě si to jakž takž pamatuji. Dělá se to pomocí pravdivstních tabulek pomocí boolovské logiky. V tvém případě potřebuješ reagovat na hrany signálů A, B, Z. Výstupem má být Ztvarované. Takže pracuješ se vstupní hodnotou signálů A,B,Z, což jsou přímo natvarované vstupy, pak potřebuješ předchozí hodnotu těchto signálů, kterou můžeš získat třeba tak, že za řadíš neinvertující (nebo dvě invertující hradla za tyto signály). Pak už jen napíšeš pravdivostní tabulku pro signál Ztvarovaný a máš to. Reaguje to tak rychle, jaké je zpoždění těch hradel. Ale abych řekl pravdu, jeden jednočip by to zvládnul také.
t256
Příspěvky: 2833
Registrován: 19. 1. 2012, 4:49

19. 10. 2021, 7:49

Teorie je to hezka, ale nez se do toho pustis podivej se nejprve osciloskopem jak v realu vypadaji pulzy z tveho encoderu. Ja kdyz jsem to zkoumal, tak u impulzu se menila strida se vzrustajicimi otackami a hodne chodil i ten fazovy posuv. Jako ze logika AB signalu byla zachovana takze snimani polohy fungovalo, ale je otazkou jestli budes spokojenej s tim co dostanes na vystupu po zkraceni indexu kdyz strida AB pulzu bude treba 1:10 a fazovy posuv 150°
QNX
Příspěvky: 3701
Registrován: 20. 12. 2006, 9:59
Kontaktovat uživatele:

19. 10. 2021, 8:12

Tukanekb8: Díky, to musím vyzkoušet, takže hned další dotaz :) V čem se to dá jednoduše odsimulovat?
Uživatelský avatar
packa
Příspěvky: 6944
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

19. 10. 2021, 8:25

mrkni -hradlo simulator - je jich celkem dost
třeba : https://janjaromirhorak.github.io/hradla/
lubbez
Příspěvky: 3159
Registrován: 21. 6. 2012, 9:26
Bydliště: Praha

19. 10. 2021, 8:31

Já jsem si hrál s IRC 1000 imp/ot docela dost dlouho a sa mozřejmě jsem se snažil modifikovat i to Zko, které je delší. Nakonec jsem to udělal jednou LS00 dvouvstupovej NAND a výstup invertoval jednou LS14, aby výstupní polarita byla totožná. Z na jeden vstup, A na druhej vstup a výstup invertovanej. Z/low + A/low out/low, Z/high + A/low out/low, Z/high + A/high out high a až A spadlo, šel dolů i Z. Nakonec jsem tu konstrukci zjednodušil a začal jsem brát pouze vzestupné hrany a pracoval jsem pouze s jedním směrem otáčení. I když tahle konstukce by asi měla makat v obou směrech.
Moje IRC dával Z pulz pouze přes A+B, ne přes 2A. Byla to ta nejobyčejnější čína s OK tranzistorem na výstupu. Nijak jsem se s tím nebabral, pulzy byly 15V a tak jsem je odporem 4k7 a zenerkou 4V7 převedl na TTL přes zenerku 560p kondík na zákmity a pulzíky byly docela pěkné. Pak jsem je doladil LS14 a výstup byl nyprosto precizní.
QNX
Příspěvky: 3701
Registrován: 20. 12. 2006, 9:59
Kontaktovat uživatele:

19. 10. 2021, 8:45

packa: Pár jsem jich taky našel, ale nějak mi tam nesedí to manuální přepínání stavů na vstupech. Nějakej chytřejší, kde bych mohl nastavit periodické průběhy (třeba i s tím fázovým posunem), to už bych chtěl moc?

lubbez: Jo, pokud by to Z bylo krátké, tak se to zjednoduší. Spíš mi šlo o hodně dlouhá Z, pokud bych chtěl Z doplnit ke snímači, který Z nemá a to dobastlené Z by bylo hodně dlouhé.
Uživatelský avatar
Thomeeque
Příspěvky: 8912
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

19. 10. 2021, 10:43

V čem to dlouhé Z vadi (myslel jsem, že jen potřebuješ, aby to "lícovalo" s AB)?
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
QNX
Příspěvky: 3701
Registrován: 20. 12. 2006, 9:59
Kontaktovat uživatele:

19. 10. 2021, 11:01

Thomeeque: Tak já nevím, jestli to vadí. Jen mám na stole servodriver (Parker Gemini GV6), který chce (no, to vlastně nevím, ale má pro to Z vstup) Z a k němu servomotor s enkodérem bez Z. V manuálu se o tom nic nepíše, tak vůbec netuším, jestli by scházející Z vadilo, nebo jestli by vadilo dlouhé Z. Ten dotaz vznikl hlavně ze zvědavosti. Jak jsem koukal na ty signály v manuálech, tak mi vrtalo hlavou, jak jednoduše to dlouhé Z oříznout. Prakticky by bylo rozumné to moc neřešit a sehnat k tomu driveru správné motory, ale zvědavost je potvora.
Uživatelský avatar
Thomeeque
Příspěvky: 8912
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

20. 10. 2021, 7:46

Já se také ptal ze zvědavosti :)

Pro obousměrný provoz u ABZ signálů, aby to bylo zcela košer, počítám potřebuješ, aby vzestupná hrana v jednom směru proběhla přesně ve stejném místě, ve kterém proběhne sestupná hrana ve druhém směru*. Takže pokud je to Zko roztaženo přes několik Áček, asi to bude muset být něco sofistikovanějšího (nějaké počítadlo). A pokud se tam ještě navíc bude dít to, co popisuje t256, tak je to úplně v háji :D

* Na druhou stranu zpracující systém to zrovna u Z teoreticky nemusí vyžadovat, může ho přečíst jednou a pak už jen počítat AB.

Tukanekb8 píše: 19. 10. 2021, 7:09 Napsal jsem kamaradovi ktery je podstatne zdatnejsi nez ja a odpoved byla tato:

And hradlo na Z a vystup klopaku kde R a S jsou A a B
To by mělo stačit
Jo a podložit to enablem, Z kem tedy

Treba ti to pomuze :)
To moc smysl nedává (AND hradlo s jedním vstupním signálem, použití B signálu), toto přesně napsal nebo jen tlumočíš, co ti řekl?

EDIT: Už jsem pochopil to AND hradlo, blbě jsem to četl (jeden vstup je Z, druhý výstup klopáku), ale stále nevím, proč B a řekl bych, že by to generovalo sérii pulzů. Klopák by měla nahazovat vzestupná hrana Z a shazovat sestupná hrana A, do AND hradla (na jehož výstupu by byl kýžený upravený Z signál) by mělo jít A a výstup klopáku, pak by to fungovalo (jen by neseděly hrany v druhém směru, viz výše).

T.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
Radhard
Příspěvky: 288
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

20. 10. 2021, 10:47

Všechny tyhle věci pracujou s hranama. Když úrověň A bude DIR, náběžná hrana B bude STEP a náběžná hrana Z bude vynulovat tak koukni co bude na počitadle. (zelená čísla jedním směrem a červená druhým)
Encoder-Gated copy.jpg
Uživatelský avatar
Thomeeque
Příspěvky: 8912
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

20. 10. 2021, 11:15

Nejsem si úplně jistý, co chceš říct (jestli navazuješ na to počítadlo, které jsem zmiňoval já). Pokud ano, tak bych to vzhledem k zadání otočil, A step, B dir a pak by kýžený výstup mohl být A AND (N == -1 OR N == 2). Teď už to jen sestavit z dostupných logických IO :)

EDIT: Nebo A AND Z AND (N == -1 OR N == 2), aby stačilo krátké počítadlo.

EDIT2: Možná 74HC193 a nějaká hradla kolem (pokud by obrázek přesně odpovídal reálným signálům, tak by se A AND Z AND (N == -1 OR N == 2) dalo zjednodušit na A AND Q1 :))..
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
Radhard
Příspěvky: 288
Registrován: 1. 7. 2020, 10:19
Bydliště: Praha
Kontaktovat uživatele:

20. 10. 2021, 11:14

Ne, já to komentoval obecně. Myslím si totiž, že signály jsou v pořádku a že není potřeba to řešit ;-)

No a pokud snad přeci jen, tak ideálně nějaké malé CPLD (xilinx) a udělat to v jejich prostředí (WebPack - IDE : má i simulátor)
Uživatelský avatar
Thomeeque
Příspěvky: 8912
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

21. 10. 2021, 9:05

Aha, ok. Přiznávám, že tvojí argumentaci úplně nerozumím. Nemám moc páru, co přesně od Z signálu očekává řídící systém (servo driver), tak asi proto.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Odpovědět

Zpět na „Ostatní elektronika“