Поиск по сайту: |
|
По базе: |
|
Главная страница > app > Микроконтроллеры > AVR |
|
||||||||||||||||||||||||||||||||||||||||||
AVR360Контроллер шагового двигателяОтличительные особенности:
Введение В данном документе описывается пример реализации контроллера шагового двигателя с компактным размером кода и высокоскоростным формированием управляющих воздействий с помощью прерываний по таймеру и табличного метода преобразования. Типичная сфера применения шаговых двигателей: подача пленки и изменение масштаба изображения в камерах, факсимильные аппараты, принтерах, копировальные машины, лотки подачи и сортировщики бумаги, а также дисководы. Высокая производительность AVR-микроконтроллеров позволяет разработчикам реализовать устройство управления быстродействующим шаговым двигателем при малых требованиях к вычислительным возможностям контроллера. Принцип действия Шаговый двигатель постоянного напряжения преобразует импульсы тока во вращение. Обычный шаговый двигатель содержит четыре обмотки. Обмотки часто маркируются красным, желто-белым, красно-белым и желтым цветами, но могут иметь и другие цвета. Прикладывание напряжения к этим обмоткам вынуждает двигатель выполнять шаг за шагом. В нормальном режиме функционирования две обмотки находятся в активном режиме в одно и то же время. Шаговый двигатель перемещается на один шаг против часовой стрелки при изменении активности обмотки. Если последовательность подачи напряжения обратная, то двигатель будет вращаться против часовой стрелки. Скорость вращения определяется частотой импульсов. В каждый интервал времени подача импульса приведет к повороту вала двигателя на фиксированный угол. Типичный шаг угла поворота составляет 1.8 градусов. Соответственно, при шаге поворота в 1.8 градусов требуется 200 шагов, чтобы вал двигателя совершил полный оборот (360 градусов). Скорость вращения двигателя может регулироваться за счет изменения периода генерации прерываний по переполнению таймера, угол вращения можно контролировать путем подсчета шагов.
В таблице 1 приведены значения 16-ричных кодов, задающих состояния выходов на каждом шаге управления. Таблица 1 – Коды управления шаговым двигателем Описание программного обеспечения Программа использует 16-разрядный таймер с функцией захвата фронтов для генерации прерываний каждые 100 мкс. При выполнении процедуры обработки прерывания на линиях порта В устанавливаются значения, соответствующие следующему шагу. Коды управления двигателем хранятся во флэш-памяти. При запуске эти значения копируются в ОЗУ для минимизации времени доступа к ним и как следствие достижения максимального быстродействия. С учетом этого процедура обработки прерывания выполняется 7 циклов + 4 цикла для входа и 4 цикла для выхода из прерывания. Таким образом, всего требуется 15 циклов, а на управление шаговым двигателем затрачивается 2 мкс (при 8 МГц). С учетом того, что прерывание генерируется каждые 100 мкс, то на управление шаговым двигателем затрачивается всего 2% от производительности ЦПУ. В данном примере значения кодов управления хранятся в ОЗУ по адресу 0х100. Старший байт адреса ОЗУ (01h) – постоянная и только младшая тетрада младшего байта используется для доступа к информации адреса (см. рис.2). Младшие тетрады (4 бита) переменных – фактическое значение кода управления шаговым двигателем, а старшие тетрады хранят адрес следующего кода управления.
Использование данного метода позволяет достигнуть максимальной производительности в сочетании с минимальным использованием ресурсов процессора. Использование ресурсов Таблица 2 – Использование ЦПУ и памяти
Таблица 3 – Использование периферийных устройств
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|