Vlastni driver

goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

27. 3. 2010, 1:41

Dodelal jsem driver na bazi FPGA, testoval jsem a byl jsem spokojen a tak nastala fáze optimalizace. Celé řešení jsem převedl na CPLD XC9536 a ATMEGA8.

Tím jsem dostal cenu bez koncových stupňů pod 200Kč. To CPLD bylo opravdu nutné, protože 300000imp/1s proste pomoci MCU všetně kvalitního PID, sledování enkoderu a step+dir nebylo prostě možné. I na AT91SAM7S128, které se ukázalo z hlediska kvalitního časování téměř nepoužitelné.

Vysledek mě velmi uspokojil jenže moje řešení ma bugu. Muj test jsem prováděl na maličkém DC motorku s inkoustovky CANON a plastovém kolečku s čárkami a fototraniztory co u toho byly bundlované (1024x4 imp/ot).

Nyní bych rád provedl test na normálním motoru, který si teprve musím sehnat a moje otázky zní.

1) Kde vzít ten motor za přijatelný peníz, včetně enkoderu nejlepe aspon 200W
2) Kde vzit k tomu motoru patricny zdroj taktez za prijatelny peniz

Az celou vec dokoncim, chtel bych se o svoji radost podelit a tudiz dat celou vec jako stavebnici za cenu soucastek na Web. DPS necham udelat v Pragoboardu. Cela stavebnice vyjde vyjde asi na 600Kc, protoze za vyvoj si nic brat nebudu, neb to delam pro radost. Nic mene nasel by se pak nejaky tester (cca. do mesice), ktery by mi tento driver otestoval? Z toho plynou nasledujici otazky.

1) Jak je spatne kdyz jsem se na dip vykaslal, ale konfigurace driveru se provadi VIA RS232 a prilozenou Win aplikaci. Odmenou je, ze tou samou cestou lze upgradovat firmware MCU.
2) step/dir privest primo na diodu optoclenu, nebo je tam nutne udelat diferencni zesilovac pro smyetricke vedeni step/dir, nebo oboje? (tak aby to bylo univerzalne pouzitelne)

Nez prejdu na velky motor, jedna vec me preci jen trapi a to brzdeni a nedejboze reverzace. Pac u toho maleho motoru jsem mohl klidne prejit ze zkratu do reverzace polarity. Otazka zni co by udelal s koncovymi stupni takovej 500W motor (je to mozne analogicky delat stejne i utakto silnych motoru, nebo uz je nezbytne dodelat podporu elektromagneticke brzdy?

Proud protekajici motorem merim, nic mene napeti vlastne reguluji pouze pomoci toho PWM. Tak aby max stredova hodnota nepresahla nastavene napeti. Nic mene je mozne pro rozjezd i brzeni tento limit prekrocit? U toho maleho motoru se to obeslo bez ztrat. Pri privedeni 270Khz signalu natvrdo na step se mi touto technikou povedlo udrezet do 46diff v at enc, od zadane polohy v rozbehu, ale v nabehu jsem motor drasticky pretizil. Po odpojeni signalu natvrdo (bez brzdeni) jsem tuto chybu udrzel do 37dif (kam se pod 100ms vratil), ale za cenu zkratu vynuti a nasledneho prechodu do obracene polarity, coz mi na zdroji delalo nehezke veci a nevim nakolik to vadi tomu motoru. Ten malinkej to v pohode preziva, ale co to udela s tim velkym. Napeti jsem prekrocil 2x. Proud protekajici obvodem mi stoupl proti doporucenym hodnotam kratkodobe 9x. Coz jsou skareda cisla, nic mene to jelo presne.
pavel-gravos
Příspěvky: 318
Registrován: 27. 1. 2008, 4:30

27. 3. 2010, 5:48

Na clk a dir dej rychle optocleny, treba 6N137. K diode optoclenu pridej
antiparalelni diodu s malym trr, treba 1N4148. Do serie odpor, ktery
zaruci, ze pri 5V potece zvoleny proud jednou z diod (podle momentalni
polarity) a oba poly vyved samostatne ven. Pak lze pouzit sdruzit
signaly se spolecnym + nebo -, a da se pouzit i diferencialni vedeni,
ktere z hlediska spolehlivosti a imunity vyrazne doporucuji.
Budit se to da budici 422, nebo s pridanym odporem z vyssiho napeti.

DIP jsou fajn, neb i bez PC je videt, jak je nakonfigurovano. Bez nich
bude dobre nalepit stitek s aktualni konfiguraci.

Pavel
Přílohy
Clipboard.png
Clipboard.png (2.75 KiB) Zobrazeno 10713 x
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

27. 3. 2010, 6:11

Budu o tech DIP premyslet, ale bylo by jich tam zbytecne moc, protoze potrebuji nastavit 3, nebo 4 16tibitove hodnoty (pro rizeni frekvence PWM a PID) a 6 logickych On/Off, coz na DIP moc nevypada. Tvoje reseni s optoclenem se moc libi, protoze pravdudiz ze to pojede i s blbym TTL, tak symetrickym vedenim 5V. S tvym dovoleni pouziji.

Jinak koncove IGBT nebudim budicem, ale jen tranzistory, ktere ovlada to CPLD. Snazim se tim usetrit za zbytecne drahe budice a zatim to vypada ze to funguje spolehlive. Cas rozevredi mam nekde kolem 670ns a zavreni pod 500ns, coz by melo stacit. Jednim operakem si pres odpor v zaporne vetvi napajeni hlidam protekajici proud a druhym to mam jisteny primo na tom CPLD (kdyby treba zkrat) + tam mam pouzdro na dratovou pojistku kdyby....kdyby. Pojistu se mi zatim nepovedlo pretavit ani zkratem, ale zatim stestovano pouze na 40V/5A.

Ten motorek s CANON je 24V/0,5A ale veme si spickove klidne hrde i 7A kdyz ho zatizim, tak se trochu bojim tech proudu u 200W motoru a rad bych to nejprve zkusil na nejakem slabsim motorku. Dival jsem se ze tu vetsinou mate pouze 200imp/otacku. To se nedelaji motory treba s 4096imp/ot?
pavel-gravos
Příspěvky: 318
Registrován: 27. 1. 2008, 4:30

27. 3. 2010, 6:21

Jeste ja.
S temi motory je to asi tak: kazdy ma nejakou schopnost rozjezdu
z nuly, rika se tomu StartStopova rychlost, nebyva velka, a zavisi taky
na hmote, ktera je pripojena k motoru. Pres tuto rychlost se uz musi
pouzit rampa, jinak by se: krokovy motor utrhl ze synchronizace,
servo vetsinou prekroci povoleny proud, driver rozsviti led fault,
a stoji taky. Proto s tim musi pocitat ridici jednotka, a pulsy posilat
rozumne, zadny burst. Obrazek napovi, jak typicky vypada clk.
Zastaveni na fleku, natoz reverzace neni mozne, taky by se toporila
mechanika, sleduj proud motorem furt a s rychlou odezvou.
Jeste je rozumne, kdyz driver ma ten signal fault taky na nejake svorce,
aby se to dalo pripojit k ridici jednotce, aby se o tom dozvedela,
a neobrabela dal.
Pavel
Přílohy
Clipboard.png
Clipboard.png (1.72 KiB) Zobrazeno 10687 x
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

27. 3. 2010, 6:34

Chapu ze v realu to asi tak hrozne nebude, ale i tak bych byl rad pripraven. Kazdopadne brzdit zkratem vinutni neni proti nicemu ne? I u tech velkych motoru :). Zatim jsem to zkousel na motorku ve sveraku a i ta mala mrcha s nim dokazala pekne zkubnout. Pokud asi bude na motoru nejaka zatez, asi by to brzdeni nebylo tak idealni a jeste by asi doslo ke ztrate pozice, protoze DIFF counter v tom CPLD je 8bit. Vetsi by se mi tam nevlezl.

Snazil jsem se najit komrpomis cena/vykon. Proste v realu budu doufat ze BURST nebude. Nic mene bych byl rad na nej pripraven a vedel jak se mam k nemu chovat a kam az mohu nechat motor kratkodobe pretizit a jak hruzne proudy se tam mohou v takovem pripade obevit treba na 120W motoru?
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

27. 3. 2010, 6:47

Nepochopil jsem jak pomoci 8 dip pozic lze nastavit max proud motorem, napeti na motoru, povolene pretizeni, minimalni stridu PWM, pri ktere se motor uvede do pohybu (aby to nezacinalo od nuly), max. dobu proudoveho pretizeni atd. Nebo se to u tech dip neresi ? To mam DIP pouzit pouze k nastaveni proudu a zbytek doplnit tabulkove? To se mi zda jako dost silne omezeni.
pavel-gravos
Příspěvky: 318
Registrován: 27. 1. 2008, 4:30

27. 3. 2010, 7:00

Jeste ja:
Ja bych tam dal drivery se schopnosti dat 1A, a vycucnout 2A, (IR2184)
ale kdyz setris, tak tam dej aspon emit.sledovace, tak asi nejak - obrazek. Ale vyjde to velke.

S temi dipy mas pravdu, normalne servo drivery mivaji displej
a par tlacitek, pracuji hlavne s krok.motory, tam je toho mene,
nejak me to zrovna nedoslo.

Spickovy proud muze byt desitky amper, kratkodobe.
Pavel
Přílohy
Clipboard.png
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

27. 3. 2010, 7:24

To buzeni N mam vice mene shodne, ale to buzeni P mam trosicku jinak a funguje to velmi spolehlive. Ten driver zacina od 60kc. Cena tech tranzistoru je par kacek, jsou dostupnejsi a funguji stejne dobre.
Přílohy
buzeniP.jpg
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

27. 3. 2010, 7:45

Mno důvod šetření není kuli mě, ale kuli tomu aby to mělo šanci na úspěch jako stavebnice. Popravdě jsem měl limit 500Kč, ale tam jsem se prostě nedostal kuli DPS a chladiči. Zatím předpokládám těch 600Kč jako stavebnice. Já mam verzi SMD, ale chci pak udělat verzi v dil s patici na ten XILINX, pač ten se v dil nedělá, ale ta patice ANO. Většinu lidí by totiž odradilo osazování SMD. Nedej bože moje verze s XC3S50, který je VQ100 a z toho moji přátelé zvraceli a vzhledem k ceně a mému volnému času se nechci uvrtat do osazování. :)))

Nic méně chci aby za tyto peníze mohl konkurovat profesionalním driverům a proto jsem absolovoval mraky simulací a testů a průběžně jěště dolaďuji maličkosti.. Stejně tak jsem dělal už několik konstrukcí a těšímě, když je lidé spokojeně používají a chválímí je (trošičku mi to jitří me ego a dělám to opravdu pro radost).

Abych nevypadal jako takovy dobrodinec, tak muj cil je i soukromy. Potkal jsem člověka co děla v servisu CANON a ten mě zásobuje konstrukčními díly z vyřazeného HW (plotry, tiskarny atd.) a finale bude, že on mi pomůže mechanicky zkonstruovat CNC vrtacku a frezku (na plast a drevo) na dělání panelů, vrtání DPS atd.

Teď mi dodal krásný barevný dotykový display (za to, že jsem k němu udělal na FPGA řadič) a už vidím, jak se bude na tom CNC vyjímat :))))
pavel-gravos
Příspěvky: 318
Registrován: 27. 1. 2008, 4:30

27. 3. 2010, 7:50

No ja nevim, kdyz zatahne Q7, tak vycucne pres D25 rychle Gate,
a Q5 se vypne, ale kdyz bude napeti Vpow vetsi nez 20V, tak Ugs
bude vetsi nez povolenych katalogovych 20V. Asi by mel byt v kolektoru
nejaky odpor a na Gate-Source 15V zenerka.
Pavel
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

27. 3. 2010, 7:59

pavel-gravos píše:No ja nevim, kdyz zatahne Q7, tak vycucne pres D25 rychle Gate,
a Q5 se vypne, ale kdyz bude napeti Vpow vetsi nez 20V, tak Ugs
bude vetsi nez povolenych katalogovych 20V. Asi by mel byt v kolektoru
nejaky odpor a na Gate-Source 15V zenerka.
Pavel
Toto buzeni bylo s impulsniho založního zdroje, ale to samé je analogicky použíté v buzení toho driveru, nic méně na gate příjde 12V, ze separátní větve 12V :)) Jen jsem nedavno kamaradovi posilal screenshot, tak jsem ho pouzil pro ilustraci :)


V teto scheme tam bylo 15V a mereni proudu se provadelo v kladne vetvi :) Na tom driveru merim proud v zaporne vetvi a odpory jsou vyrazne mensi jak 2R2 :)))
pavel-gravos
Příspěvky: 318
Registrován: 27. 1. 2008, 4:30

27. 3. 2010, 8:03

Tady osazuji kvalitne za rozumne ceny, da se domluvit i mala serie.
http://www.kvark-elektronika.cz/kontakty.php
Pak by ve stavebnici mohl byt predosazeny smd brouk.

Ja si ted hraju s Army (gve64,gve66 =lpc2138). ty by to mely zvladat,
vzdyt se PID nemusi snad pocitat pro kazdy z tech 300tis.pulsu.
Docela levne LPC2101, nebo lpc1313.
pavel
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

27. 3. 2010, 8:17

pavel-gravos píše:Tady osazuji kvalitne za rozumne ceny, da se domluvit i mala serie.
http://www.kvark-elektronika.cz/kontakty.php
Pak by ve stavebnici mohl byt predosazeny smd brouk.

Ja si ted hraju s Army (gve64,gve66 =lpc2138). ty by to mely zvladat,
vzdyt se PID nemusi snad pocitat pro kazdy z tech 300tis.pulsu.
Docela levne LPC2101, nebo lpc1313.
pavel
Heh. Mas pravdu, ale je potreba na ipluls presne sledovat encoder a step/dir. Zbytecne narocne na casovani a nikdy nedosahnu hranovou presnost klasicke logiky. Uvedom si ze musis zachytit nabeznou hranu step i pri frekvenci 500Khz a zaregistrovat stav dir v tom okamziku. K tomu zapocitej jeste sledovani encoderu, pocitani rozdilu pozice. Proste CPLD/Atmega8 vidim jako nevice LowCost reseni, ktere jeste dovoli kvalitne sledovat signaly a pocitat PID.

Mimo to PID plnim 10000x/s z toho CPLD :)) Abych mel presnou progresi chyby. Pac krome rozdilu ktery tam je, je pro me jeste velmi dulezite jakou ma ten rozsdil progresi, nebo bych pak byl jak na houppacce a nikdy bych nedostal stavu 0 :))))

Puvodni verze v FPGA sledovala s kazdou zmenou rozdilu a plnila PID, coz z CPU neni mozne a ukazalo se to jako prehnany pozadavek a jiz se ta kriticky neprojevil v kvalite.

Ihmo ARM7 pouzivam, ale stejne bych tam prismazil ten CPLD :)) Pac zachitit kvalitne step se muze nekdy ukazat jako problem :))
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

27. 3. 2010, 8:25

Proste se mi to CPLD stara o to nejzakladnejsi a kuli nedostatku pinu na tom Atmega mi seriove posila informace do MCU :))) Snad pouze pro pochopeni symbol.
Přílohy
obvod.png
goody
Příspěvky: 71
Registrován: 3. 12. 2009, 2:08
Kontaktovat uživatele:

27. 3. 2010, 8:37

Navrhl jsem si na tom FPGA velmi kvalitni algoritmus a potreboval jsem ho dostat do CPU. Na ARMiku to byla pohoda. Na te Atmega uz tak ne a preruseni zpolkne strasne strojoveho casu (ukladani zasobniku a navrat spet). Proste to bylo nerealizovatelne, protoze diff chyba mi u jednoho motoru nevadi, ale u vice uz ano, protoze pokud jedou ty motory synchonizovane, tak se tato chyba scita a na CNC s presnosti na 50uM je to neprijatelne.

Uvedom si ze to je blbej DC motor a jeho presne polohovani je fakt slozity. Vic nez jsem si myslel na zacatku. To uz pak radeji pouzit krokace. To zvladne kazdy brko. A popravde co se mi dostali do rukou steepery made by home, ta chyba byla tragicka. Opravdu se chci vyrovnat proff steperum.
Odpovědět

Zpět na „Servomotory“