Uspávání KM driveru vs. dynamika

jaké jsou rozdíly z pohledu řízení
Uživatelský avatar
Thomeeque
Příspěvky: 8870
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

20. 3. 2014, 1:30

Ahoj,

dobastlil jsem k driveru pro soustruh (2x TB6560AHQ, viz. uDriver) vstupní obvody, mimo jiné se měly postarat i o generování signálu SLEEP, tj. signálu, který přepne driver na nižší výkon (u mne 20% nominálního proudu), pokud se na vstupu STEP delší čas nic neděje (šetří energii a motory se tolik nezahřívají) a pak samozřejmě zase zpět na plný výkon, pokud má driver opět začít stepovat. Inspiroval jsem se GMANovo řešením, akorát jsem se z nějakých důvodů pokusil nahradit tranzistory hradly 7414ky:
Na vstupech TB6560AHQ jsou ještě pull-down odpory 3k3..
Na vstupech TB6560AHQ jsou ještě pull-down odpory 3k3..
Detekce jako taková funguje, shození SLEEP na nula při příchodu prvního probouzecího STEP pulzu je ale asi příliš pomalé, při akceleraci nastavené v systému původně pro drivery bez uspávání se motor neroztočí (ztratí první kroky a jen to piští, klasika). Např. na ose Z (podélný posuv) můžu bez uspávání spolehlivě akcelerovat 125mm/s2, s uspáváním jsem musel jít na 50 (a stejně to nebylo úplně spolehlivý). Obvod jsem vyřadil a snažím se vymyslet něco ultrarychlýho (možná retriggering monostable klopák?). Vím, že GMANův obvod je asi trochu rychlejší (asi bude ten kondík umět vybít z principu rychlejc), možná ho taky testnu 1:1, ale imho to asi nebude úplně zásadní (GMAN uspává jen na 50% proudu, takže tam to nemusí být tak markantní, já bych to rád zkusil poladit pro těch 20%)..? Jak je toto řešeno u profi driverů, neví někdo?

Díky, T.

PS: Pokud by měl někdo chuť provádět nějakou vyšší matematiku, tak systém má (na obou osách) 3200 pulzů/mm. Zkoušel jsem si hrát i s Driver Timing Settings, zejména delší step time, zásadní vliv jsem nepozoroval (ale moc jsem tomu nedal, to už jsem byl rozhodnutej, že tudy cesta nevede, nechci se kvůli uspávání připravit o výkon).
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
CZ_Pascal
Příspěvky: 870
Registrován: 14. 1. 2008, 8:24
Bydliště: Brno

20. 3. 2014, 4:30

Co takhle použít nejaký malý mikrokontroler za pár šupů s jednoduše definovaným a snadno upravitelným časováním v přesnosti a rychosti několika mikorsekund :twisted: ?
třeba ATtiny13 :D ?
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

20. 3. 2014, 5:39

Díval ses na to na osciloskopu?
A co to udělá, když tam dáš menší kondenzátor?
Pokud to z hlavy dobře počítám, tak bez té diody by to mělo hradlo vybít za nějaké 0.1ms (výstupní proud hradla řekněme 20mA). Trochu bordel tam bude dělat ta dioda, dal jsi tam běžnou Si a ne Schottky, takže na ní bude při tom dost velkém vybíjecím proudu docela velký úbytek, který to vybíjení asi dost natáhne.
Vzhledem k tomu, že jsi tam stejně spotřeboval 1/2 pouzdra, tak to tam můžeš rovnou použít 1/2 74HC123, kde se ti bude časování dělat mnohem lépe.
Nebo pokud je to skutečně zpožděním při vybíjení, tak tam použít nějaké dvouvstupové hradlo, které se příchodem aktivní úrovně signálu STEP okamžitě překlopí, a mezitím doplave ten kondenzátor dolů.
Uživatelský avatar
Thomeeque
Příspěvky: 8870
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

20. 3. 2014, 6:59

No jo, 20mA, já si nevim proč myslel, že k zemi to dá to hradlo zhruba na úrovni GMANovy KC327ky, která to dá asi řádově líp, když tak nad tím teď přemýšlím.. 0.1ms je strašně moc, klidně i čtyři kroky.. a navíc tam mám tu diodu.. tak asi první, co zkusim, bude tranzistor místo prvního hradla s diodou alá GMAN (ještě si to zkusim nasimulovat), pak případně nějakej ten klopák, to by se mi asi stejně líbilo víc (reagovalo by to na hranu, nikoliv na stav), po 74HC123 už jsem taky pokukoval..

Díky moc, dám pak vědět, T.

PS: Mikrokontroler mi tu přijde trochu overkill, navíc klopák by měl být rychlejší (čímž neřikám, že by 20MHz uC byl na tento účel pomalej), přesto díky za tip.

EDIT: osciloskop mám jen divnej jednokanál, to by asi bylo dost trápení se to tim pokoušet diagnostikovat a menší kondík jsem nezkoušel, chci tam zpoždění kolem 1s a s hodnoutou nabíjecího odporu už by se mi moc vejš nechtělo.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

20. 3. 2014, 7:26

Čtyři kroky ... není to nějak moc, Antone Pavloviči?

TB6560 má myslím maximální microstepping 16, takže to asi odpovídá 3200 mikrokroků na otáčku. Takže při té inzerované rychlosti (4 kroky za 0.1ms, tj. nějakých 40 kHz) to odpovídá rychlosti otáčení nejmíň 12.5 RPS. A to mi teda přijde jako rozjezdová rychlost při startu z nuly (protože po prodlevě minimálně 1 sec) docela dost.

PS. Pokud jsem se někde sekl o řád, tak se omlouvám předem. Přece jen to na Amperu jako obvykle skončilo pár panáky...
Uživatelský avatar
Hades
Příspěvky: 1206
Registrován: 11. 10. 2012, 10:59
Bydliště: Praha; Mimoň

20. 3. 2014, 7:44

už ti to tu psal Mex, ta dioda má úbytek jak kráva, takže se ti nedaří ten kond rychle vybít pod hranici překlopení hradla
ledvinap
Příspěvky: 793
Registrován: 8. 11. 2009, 4:40
Bydliště: Plzen

20. 3. 2014, 8:27

Mex píše:Čtyři kroky ... není to nějak moc, Antone Pavloviči?

TB6560 má myslím maximální microstepping 16, takže to asi odpovídá 3200 mikrokroků na otáčku. Takže při té inzerované rychlosti (4 kroky za 0.1ms, tj. nějakých 40 kHz) to odpovídá rychlosti otáčení nejmíň 12.5 RPS. A to mi teda přijde jako rozjezdová rychlost při startu z nuly (protože po prodlevě minimálně 1 sec) docela dost.

PS. Pokud jsem se někde sekl o řád, tak se omlouvám předem. Přece jen to na Amperu jako obvykle skončilo pár panáky...
Problem je, ze delka step pulzu je porad stejna nezavisle na otackach. A 30us je minimalni delka spet pulzu..
Asi nejsnazsi bude tam dat ten tranzistor ...
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

20. 3. 2014, 9:12

ledvinap píše:Problem je, ze delka step pulzu je porad stejna nezavisle na otackach. A 30us je minimalni delka spet pulzu..
Proti tomu nic. Já jsem reagoval jen na to, že za 0.1ms zmiznou 4 mikrokroky.
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

20. 3. 2014, 10:37

Ještě drobná poznámka: kdyby ses rozhodl pro ten 74xx123, a pokud bys to použil na jednoosém driveru (tj. zbyla by ti nevyužitá polovina obvodu), tak já bych ho použil na tvarování pulzu STEP. Pak bys to krásně naladil na přesnou optimální délku pulzu, a ty pulzy by potom byly ukázkové, nezávisle na tom, jak zahnojený signál by ti tam chodil z PC.
Uživatelský avatar
Thomeeque
Příspěvky: 8870
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

20. 3. 2014, 11:03

Mex píše:Čtyři kroky ... není to nějak moc, Antone Pavloviči?
Sakra moc, to byla aproximace nejhrubšího zrna (zhruba 40kHz bylo maximum mého konzervativně nastaveného LinuxCNC), samozřejmě úplně mimo. S rampou 125mm/s² se to za 0.1ms dostane z nuly na rychlost 40kroků/s, tj. v čase 0.1ms se plácám někde v počátečních fázích prvního kroku.. jestli to neni zase nějaký nesmysl, dneska se mi fakt daří a navíc jsem shodou okolností taky něco málo požil :)
Mex píše:Ještě drobná poznámka: kdyby ses rozhodl pro ten 74xx123, a pokud bys to použil na jednoosém driveru (tj. zbyla by ti nevyužitá polovina obvodu), tak já bych ho použil na tvarování pulzu STEP. Pak bys to krásně naladil na přesnou optimální délku pulzu, a ty pulzy by potom byly ukázkové, nezávisle na tom, jak zahnojený signál by ti tam chodil z PC.
S tím, co leze z PC, jsem byl zatím naprosto spokojen a drivery tam mám akorát dva, tak to bych asi udělal spíš dvojitý uspávadlo, ale můžu o tom popřemýšlet. Btw. jak by se to zapojilo, aby to na jedné půlce jen tvarovalo, ale zachovalo frekvenci? Jako monostabil s pevnou šířkou pulzu? (no asi jo, podle toho, jak to píšeš :))

Díky (i ledvinapovi a Hadesovi), T.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

20. 3. 2014, 11:21

Jasně, monostabil, který reaguje na hranu. Kdybys to chtěl mít úplně dokonalé a chtěl odfiltrovat případné zákmity (které by jinak natáhly délku pulzu, protože 74xx123 je retriggerable), tak by to chtělo ještě jedno hradlo a po dobu trvání pulzu zakázat příchod dalších hran.

Jinak k tomu počtu kroků, které ti to teď případně udělá se sníženým proudem: nenašel jsem v Datasheetu ani v Appnote kdy se ty signály čtou. Skoro to vypadá, jako by se používaly asynchronně a tedy nezávisle na signálu STEP. Takže to skutečně ovlivní snad jen část prvního kroku, a to by snad nemělo dělat problémy. Není tam zrada ještě někde jinde? Skoro bych řekl, že by stálo zato ten kondenzátor na zkoušku vypájet a zkusit to bez něho, pak druhý pokus třeba s kondíkem M1.
Uživatelský avatar
Thomeeque
Příspěvky: 8870
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

21. 3. 2014, 9:21

Mex píše:Jasně, monostabil, který reaguje na hranu. Kdybys to chtěl mít úplně dokonalé a chtěl odfiltrovat případné zákmity (které by jinak natáhly délku pulzu, protože 74xx123 je retriggerable), tak by to chtělo ještě jedno hradlo a po dobu trvání pulzu zakázat příchod dalších hran.
Tak to by pak asi bylo jednodušší použít na to "obyč" (neretriggerable) monostabil, ale já myslím, že se bez toho obejdu - uvidim, co se bude dít, pokud bych se trošku osmělil a nastavil LinuxCNC méně konzervativně (možná bych se mohl dostat až na 80kHz). Ale u toho soustruhu není moc důvod, větší rychlosti už to stejně nedá (akorát bych mohl zvýšit mikrokrok, jedu teď na 1/8, ale nic moc mě k tomu nemotivuje). A u portálky mám half-step drivery, takže opět neni důvod :)
Mex píše:Jinak k tomu počtu kroků, které ti to teď případně udělá se sníženým proudem: nenašel jsem v Datasheetu ani v Appnote kdy se ty signály čtou. Skoro to vypadá, jako by se používaly asynchronně a tedy nezávisle na signálu STEP.
Myslíš torque signály TQ1 a TQ2, počítám? Jestli synchnronně, tak leda s vnitřními hodinami, které mi jednou na 400kHz, rozhodně ne s krokem (po vteřině bez kroků naběhne SLEEP signál a proud se prokazatelně sníží). Podle toho blokového obrázku by to klidně mohlo být úplně asynchronní, jen ovládání nějakého interního děliče referenčního napětí (ale to je jen dohad, samozřejmě).

Ten 74xx123 je tedy retriggerable sám od sebe, bez potřeby nějaké konfigurace? Úplně jsem zatím ten datasheet nepobral, se přiznám..

Dík, T.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
ledvinap
Příspěvky: 793
Registrován: 8. 11. 2009, 4:40
Bydliště: Plzen

21. 3. 2014, 9:49

Jeste jednou pripomenu, ze kondenzator se vybiji jen v prubehu STEP pulzu a v EMC je delka pulzu konstantni nezavisle na frekvenci. Takze pokud je cas potrebny na vybiti kondenzatoru delsi nez delka step pulzu, tak se proud zvysi az v kroku, ktery dostatecne vybije kondenzator. Nezavisle na rychlosti.

Ten 74xx123 je rozumne reseni. Retrigger potrebujes, od kazdeho pulzu spustis 1s interval, kdy jsou motory povolene, kazdy dalsi STEP ten interval prodlouzi ...
Uživatelský avatar
Thomeeque
Příspěvky: 8870
Registrován: 30. 1. 2012, 10:20
Bydliště: Mimo ČR

21. 3. 2014, 9:57

ledvinap píše:Jeste jednou pripomenu, ze kondenzator se vybiji jen v prubehu STEP pulzu a v EMC je delka pulzu konstantni nezavisle na frekvenci. Takze pokud je cas potrebny na vybiti kondenzatoru delsi nez delka step pulzu, tak se proud zvysi az v kroku, ktery dostatecne vybije kondenzator. Nezavisle na rychlosti.
Jasně, čili on se nám ten čerchmant vybíjí přerušovaně třeba i několik kroků, co? :) No jó, pak to dává krásně smysl!
ledvinap píše:Ten 74xx123 je rozumne reseni. Retrigger potrebujes, od kazdeho pulzu spustis 1s interval, kdy jsou motory povolene, kazdy dalsi STEP ten interval prodlouzi ...
Jj, to je mi jasný, už se jen snažim dopracovat k tomu, jak správně 74xx123 zapojit (nikdy jsem s nim nepracoval), aby se tak choval :)

EDIT: Tím "neretriggerable" jsem řešili tvarování STEP signálu, SLEEP se to netýkalo (vedlejší produkt diskuse :))..

Dík, T.
Naposledy upravil(a) Thomeeque dne 21. 3. 2014, 10:05, celkem upraveno 2 x.
mimooborová naplavenina • kolowratský zázrak™ • NPS • GCU • HirthCalc • ncDP.ino
Uživatelský avatar
Hades
Příspěvky: 1206
Registrován: 11. 10. 2012, 10:59
Bydliště: Praha; Mimoň

21. 3. 2014, 10:02

XX123 je takovej, no hodně laicky řečeno lepší X555-ka ve funkci klopáku. Vnějšíma součástkama si nastavíš reakci výstupu na vstup. rozhodně koukni po rychlejch typech, protože jak to tak čtu, tak to tlačíš do obrátek
Možná vybereš i z LS or ALS, tedy pokud je máš po "šuflatech" :D jinak asi nějaký HC, or jak je to dneska značený... ty bejvaly rychlý
BTW bych ten kond vybíjel nějakým rychlým tranzistorem s malým napěťovým přechodem a zapoměl na diody

njn, pozdě :D

jdu kuknout, zda tu neco mám
Odpovědět

Zpět na „krokove unipolarni bipolarni a servomotory“