Використані
матеріали:
Download project file for Altera Max+plusII (or Quartus) -> stepper_motor_con.rar
Переваги
крокових двигунів точність управління, програмне управління двигуна, а також
відсутність щіток, робить крокові двигуни зручними у використанні для різних
спеціалізованих пристроїв: принтери, сканери, плотери, дисководи FDD, роботи, верстати з ЧПУ і інші високоточні пристрої.
Серед великої
кількості різноманітних схем та коду на Verilog та AHDL для керування кроковими
двигунами які я зміг найти в інтернеті було чимало хороших але в більшості з
низ відсутня простота розуміння, деякі з них перекочували в FPGA/CPLD із
старих журналів і схем розроблених на 74 серії мікросхем такий собі
максимальний мінімалізм присутній для схем того часу. Тому я вирів розробити
схему яка б було інтуїтивно зрозуміла по схемі та по логіці роботи і також щоб
схему можна було модифікувати під тип крокового двигуна.
Для початку розглянемо типи двигунів. Крокові двигунів
діляться на два основних найбільш використовуваних типи, це однополярні (unipolar) та двополярні (bipolar) крокові двигуни. В [2] показано логіку формування вхідних сигналів для
однополярних двигунів. Кожна із цих методик має свої переваги і недоліки в
плані функціонування та легкості реалізації. Найкращим варіантом для
однополярного двигуна є методика microstepping (мікрокрокова) але й і найскладніша в плані реалізації. Більш детальніше
про методики для однополярних двигунів можна почитати в [3]. Таку
кількість методик можна також пояснити з погляду конструктиву однополярного
двигуна в порівнянні із двополярним (біполярним), струм через обмотку якого прямує в
одному напрямку, в біполярному двигуні струм через обмотку має прямувати і в
зворотньому напрямку. В даному пості я не буду розглядати підсилючий каскад(Driver, H-bridge) і який з них краще вибрати, підібрати відповідний по струму і напрузі можна із вже існуючих схем.
Схема контроллера буде мати наступний вигляд як на рис.1. По суті це простий автомат Мура із трьома основними елементами схеми це лічильник (counter_8), мультиплексор ( mux_stepper), та елемент таблиця вихідних бітових комбінацій (bit_const_half_step, bit_const_full_step для однополярного(unipolar) двигуна і bit_const_bipolar_2coil для біполярного (bipolar) двигуна ). Всі керуючі сигнали для двигуна зведенні до керування лічильника. На вхід clk лічильника поступає із генератора імпульсів частоту якого можна вирахувати по вже існуючих методиках і яка буде залежити від RPM двигуна тобто максимальної кількості оборотів двигуна за хвилину. По приходу кактових імпульсів лічильник буде лічити по модулю 8, тобто перебирати по черзі адреси мультиплексора який в свою чергу буде видавати на вихід схеми відповідні фазові комбінації для двигуна.
Схема контроллера буде мати наступний вигляд як на рис.1. По суті це простий автомат Мура із трьома основними елементами схеми це лічильник (counter_8), мультиплексор ( mux_stepper), та елемент таблиця вихідних бітових комбінацій (bit_const_half_step, bit_const_full_step для однополярного(unipolar) двигуна і bit_const_bipolar_2coil для біполярного (bipolar) двигуна ). Всі керуючі сигнали для двигуна зведенні до керування лічильника. На вхід clk лічильника поступає із генератора імпульсів частоту якого можна вирахувати по вже існуючих методиках і яка буде залежити від RPM двигуна тобто максимальної кількості оборотів двигуна за хвилину. По приходу кактових імпульсів лічильник буде лічити по модулю 8, тобто перебирати по черзі адреси мультиплексора який в свою чергу буде видавати на вихід схеми відповідні фазові комбінації для двигуна.
Рис. 1 Схема контроллера крокового двигуна.
В такий спосіб дуже легко настроїти схему під певний тип двигуна замінивши в схемі тільки один елемент таблиці бітових комбінацій рис.2 .
Рис.2 Таблиці бітових комбінацій.
Рис.3 Результати симуляції для однополярного (unipolar) двигуна.
Результати симуляції схеми для однополярного(unipolar) крокового двигуна наведені на рис.3.
Рис.3 Результати симуляції для однополярного (unipolar) двигуна.
Увага!!!! Для правильного підключення до обмоток двигуна потрібно використовувати наступну таблицю!!!!!
Output from CPLD
|
Unipolar coil |
Bipolar coil |
stepper_out[3]
|
A
|
1a
|
stepper_out[2]
|
B
|
1b
|
stepper_out[1]
|
C
|
2a
|
stepper_out[0]
|
D
|
2b
|
Результати синтезу в CPLD серії MAX3000:
Chip/ Input Output Bidir Shareable
POF Device Pins Pins Pins LCs Expanders % Utilized
stepper_gdf
EPM3032ALC44-4 4 4 0 7 0 21 %
User Pins: 4 4 0
Немає коментарів:
Дописати коментар