====== Budič krokových motorů HBSTEP01A ====== [[http://www.mlab.cz/Modules/H_Bridge/HBSTEP01A/DOC/HBSTEP01A.cs.pdf|PDF dokumentace MLAB]]. Je modul určený pro buzení [[http://cs.wikipedia.org/wiki/Krokov%C3%BD_motor|krokových motorů]]. Vzhledem k tomu, že moment krokového motoru je závislý na proudu tekoucím vinutím (magnetické napětí), tak je třeba pro zachování momentu motoru i ve vysokých otáčkách budit vinutí motoru zdrojem proudu. Který působí proti indukčnosti vinutí změnou efektivního napájecího napětí. Což umožní rychle dosáhnout nominálního napájecího proudu i při rychlém přepínání vinutí (minimalizuje se tím vliv indukčnosti). Existují dvě hlavní konstrukce motorů z hlediska způsobu jejich řízení. ===== Unipolární motory ===== Jejich vinutí je konstruováno tak, že obsahuje napájecí odbočky, které umožňují měnit polaritu magnetického pole na pólech motoru bez přepólování napájecího napětí. To umožňuje elektronicky jednodušší ovládání motoru protože k řízení pak není potřeba plný spínačový most. Ale pouze spínače, které uzemňují jednotlivá vinutí proti napájecímu napětí. Nevýhodou je že každý pól motoru musí obsahovat dvojnásobné množství závitů (pro jednu a druhou polarizaci magnetického pole), což přináší menší užitný výkon motoru. Proto se tyto motory už obvykle nevyužívají a jsou zastaralé. Nové budiče krokových motorů je už ani neumožňují řídit. ===== Bipolární motory ===== Tento typ motorů má na pólovém nástavci navinuto pouze jedno vinutí a je tudíž nutná komutace jeho napájecího napětí a tedy i použití plného spínačového mostu. Výhodou je hlavně vyšší výkon a moment motoru při malých rozměrech a hmotnosti vzhledem k unipolárním motorům. ====== Konstrukce modulu ====== Modul je určen pro řízení jednoho krokového motoru pracujícího v bipolárním režimu (většinu unipolárních motorů lze v tomto režimu provozovat za cenu použití vyššího napájecího napětí). Tj. modul obsahuje dva plné spínačové můstky. Pro konstrukci modulu byl vybrán integrovaný obvod [[http://www.st.com/internet/analog/product/248592.jsp|L6470]]. ===== Základní vlastnosti ===== * Řídící vstupy modulu jsou ošetřeny definovanými stavy. * Modul pracuje ve velkém rozsahu napětí výkonového napájení 8 - 45 V. * Digitální řídící vstupy lze ovládat nízkými logickými úrovněmi 3,3V a 5V. * Budící proud motoru je špičkově 7A a 3A RMS. * Výkonové výstupy jsou osazeny pružinovou svorkovnicí WAGO. * Výkonový napájecí vstup je osazen pružinovou svorkovnicí WAGO. * Modul obsahuje tepelnou a nadproudovou ochranu proti přetížení. * Modul umožňuje digitální nastavení omezení budícího proudu vinutí motoru. * Je možné nastavovat profily akcelerace a decelerace. * Je možné nastavit náběhový proud budících tranzistorů (Pro omezení rušení) * Budič umožňuje 1/128 mikrokování * Bezsenzorová detekce prokluzu kotvy motoru * SPI komunikační rozhraní ====== Ovládání ====== Modul se ovládá přes rozhraní SPI, kterým se komunikuje přímo s integrovaným obvodem L6470. Pro ovládání motoru je napsáno několik knihoven pro různé architektury. ===== Wiring ===== V SW dokumentačním adresáři na MLAB SVN je dostupný demonstrační program pro [[cs:labduino|LABduino]] napsaný ve [[http://wiring.org.co/|Wiringu]]. ==== Připojení modulu ==== {{ :cs:designs:hbstep01a_wiring_big.jpg?direct&300 |}} Propojení obou modulů provedeme vodiči MLAB podle následující tabulky: ^ Modul ATmegaTQ3201A ^ Modul HBSTEP01A ^ | PB2 | CS | | PB3 | SDI | | PB4 | SDO | | PB5 | CK | ===== ChibiOS ===== Protože ve stavebnici MLAB je tento RTOS systém využíván ta mikrokontrolérech [[cs:stm32f10xrxt|ARM STM32]]. Byla do chibiOS pro ARM naportována knihovna přímo z [[http://www.st.com/internet/analog/product/248592.jsp|webu ST]]. ==== Připojení modulu ==== Firmware pro toto zapojení je k dispozici na [[https://github.com/MLAB-project/mlab-chibios/tree/master/STM32F107/ChibiOS_2.6.1/demos/stepper|githubu]] {{ :cs:modules:motors:hbstep_chibios_dual.jpg?direct&300 |}} Použitý demo kód ovládá dva krokové motory. A připojení přes SPI je multiplexováno mezi oběma obvody přes ChipSelect pin. Připojení prvního motoru ^ Modul STM32F10xRxT01A ^ Modul HBSTEP01A ^ | PA4 | CS | | PA5 | CK | | PA6 | SDO | | PA7 | SDI | | PC4 | BUSY/SYNC | Připojení druhého motoru ^ Modul STM32F10xRxT01A ^ Modul HBSTEP01A ^ | PC5 | CS | | RA5 | CK | | RA6 | SDO | | RA7 | SDI | ===== Přímé řízení z PC ===== Modul je možné přímo řídit z PC při použití modulů [[cs:usbi2c|USBI2C01B]] a [[cs:i2cspi|I2CSPI01A]], které vytvoří SPI rozhraní ovladatelné z počítače. ^ Modul I2CSPI01A ^ Modul HBSTEP01A ^ | #SS0 | CS | | MOSI | SDI | | MISO | SDO | | CLK | CK | {{youtube>28aWrmkpqYA?medium}} ==== Daisy chain zapojení ==== V případě, že je potřeba řídit více motorů současně, tak je běžným řešením připojení více HBSTEP budičů na jedno SPI rozhraní. Obvykle je to realizováno použitím více chip-select signálů (ke každému SPI slave zvlášť). Taková konstrukce je ale nepraktická. U modulů HBSTEP01B je ale možné použít takzvané [[https://www.maximintegrated.com/en/app-notes/index.mvp/id/3947|daisy-chain zapojení]], které umožňuje připojit více SPI slave zařízení na jeden Chip-select. Tím se značně zjednodušší konstrukce takového zařízení. A počet ovládaných motorů pak není limitován počtem chip-select signálů. ===== Příklady využití ===== * [[cs:designs:3dprint]] * [[cs:tefo]] * [[cs:tedr]] ====== TODO ====== * Prozkoumat možnost řízení dvou DC motorů zmíněnou v datasheetu ===== Reference ===== * http://en.wikipedia.org/wiki/Stepper_motor