Контролер крокового двигуна

AVR360, Контролер крокового двигуна

07.09.2015

AVR360
Контролер крокового двигуна

Відмітні особливості:

  • Контролер швидкодіючого крокового двигуна
  • Використання системи переривань
  • Компактний код програми (розмір процедури переривань всього 10 байт)
  • Дуже висока швидкодія
  • Низькі вимоги до обчислювальних можливостей
  • Підтримка всіх AVR-мікроконтролерів

Вступ

У цьому документі описується приклад реалізації контролера крокового двигуна з компактним розміром коду і високошвидкісним формуванням керуючих впливів за допомогою переривань по таймеру і табличного методу перетворення. Типова сфера застосування крокових двигунів: подача плівки і зміна масштабу зображення в камерах, факсимільні апарати, принтери, копіювальні машини, лотки подачі та сортувальники папери, а також дисководи. Висока продуктивність AVR-мікроконтролерів дозволяє розробникам реалізувати пристрій управління швидкодіючим кроковим двигуном при малих вимоги до обчислювальних можливостей контролера. Принцип дії

Кроковий двигун постійного струму перетворює імпульси струму в обертання. Звичайний кроковий двигун містить чотири обмотки. Обмотки часто маркуються червоним, жовто-білих, червоно-білим і жовтим кольорами, але можуть мати й інші кольори. Прикладання напруги до цих обмотках змушує двигун виконувати крок за кроком.

В нормальному режимі функціонування дві обмотки знаходяться в активному режимі в один і той же час. Кроковий двигун переміщається на один крок проти годинникової стрілки при зміні активності обмотки. Якщо послідовність подачі напруги зворотний, то двигун буде обертатися проти годинникової стрілки.

Швидкість обертання визначається частотою імпульсів. У кожен інтервал часу подача імпульсу призведе до повороту вала двигуна на фіксований кут. Типовий крок кута повороту складає 1.8 градусів. Відповідно, при кроці повороту в 1.8 градусів потрібно 200 кроків, щоб вал двигуна здійснив повний оборот (360 градусів). Швидкість обертання двигуна може регулюватися за рахунок зміни періоду генерації переривань по переповненню таймера, кут обертання можна контролювати шляхом підрахунку кроків.

AVR360, Контролер крокового двигуна

Рисунок 1 — Послідовність подачі імпульсів керування кроковим двигуном

У таблиці 1 наведені значення 16-ричных кодів, які задають стану виходів на кожному кроці управління.

Таблиця 1 – Коди керування кроковим двигуном

AVR360, Контролер крокового двигуна

Опис програмного забезпечення

Програма використовує 16-розрядний таймер з функцією захоплення фронтів для генерації переривань кожні 100 мкс. При виконанні процедури обробки переривання на лініях порту встановлюються відповідні значення для наступного кроку. Коди керування двигуном зберігаються у флеш-пам’яті. При запуску ці значення копіюються в ОЗП для мінімізації часу доступу до них і як наслідок досягнення максимальної швидкодії. З урахуванням цього процедура обробки переривання виконується 7 циклів + 4 циклу для входу і 4 циклу для виходу з переривання. Таким чином, всього потрібно 15 циклів, а на керування кроковим двигуном витрачається 2 мкс (при 8 МГц). З урахуванням того, що переривання генерується кожні 100 мкс, то на управління кроковим двигуном витрачається лише 2% від продуктивності ПРОЦЕСОРІВ.

У цьому прикладі значення кодів управління зберігаються в ОЗП за адресою 0х100. Старший байт адреси ОЗП (01h) – постійна і лише молодша тетрада молодшого байта використовується для доступу до інформації адреси (див. рис.2).

Молодші тетради (4 біти) змінних – фактичне значення коду управління кроковим двигуном, а старші тетради зберігають адресу наступного коду управління.

AVR360, Контролер крокового двигуна

Малюнок 2 – Адреси та коди керування кроковим двигуном

Використання даного методу дозволяє досягти максимальної продуктивності в сполученні з мінімальним використанням ресурсів процесора.

Використання ресурсів

Таблиця 2 – Використання ЦПУ і пам’яті

Короткий опис статті: контролер крокового двигуна AVR360 — Контролер крокового двигуна

Джерело: AVR360 — Контролер крокового двигуна

Також ви можете прочитати