AT91SAM7X: USB-контроллер шаговых двигателей Печать
Добавил(а) microsin   

Контроллер собран на макетной плате AT91SAM7X [1] и представляет собой USB-устройство CDC (виртуальный COM-порт). Контроллер может одновременно управлять 8 шаговыми двигателями, откликаясь на простые текстовые команды.

USB-step-motor-IMG 2305

Сигналы STEPn и DIRn вырабатываются контроллером индивидуально для каждого шагового двигателя, и подаются на силовые модули, собранные на микросхеме TB6560HQ (силовые фазы для шагового двигателя формирует именно эта микросхема).

USB-step-motor-IMG 2321 USB-step-motor-IMG 2324 USB-step-motor-IMG 2325 USB-step-motor-IMG 2328

Есть также возможность управлять четырьмя силовыми реле (сигналы RELAY1..RELAY4). Кроме того, имеются 8 входов для подключения датчиков (IN1..IN8) - концевых выключателей, по сигналу которых мотор может останавливаться. Также есть один общий аварийный сигнал BREAK, который останавливает вращение сразу всех двигателей.

Команды для управления шаговыми двигателями и реле можно подавать обычной терминальной программой (putty, HyperTerminal, TerraTerm, SecureCRT и т. п.).

USB-step-motor-console-interface

Поддерживаемые команды:

run M D S

Эта команда запускает вращение двигателя M (1..8) в направлении D (L или R) на количество шагов S (0..65000). Если S равно 0, то двигатель останавливается по завершении текущего шага.

set M T

Команда устанавливает длительность периода сигнала STEP мотора M на время T. Число T указывает количество тиков таймера, и может быть в диапазоне от 5 до 6500, что соответствует длительности периода STEP от 50 до 65000 мкс.

rel R ON
rel R OFF

Команда выдает лог. 1 для включения реле R (если указано ON).

Кроме того, имеются 8 входов для подключения датчиков (IN1..IN8) - концевых выключателей, по сигналу которых мотор может останавливаться. Также есть один общий аварийный сигнал BREAK, который останавливает вращение сразу всех двигателей.

sta M

Команда запрашивает статус мотора M - контроллер выдает в ответ оставшееся до остановки количество шагов и направление вращения.

frq frequency

Установка частоты срабатывания таймера TC1, который определяет длительность шагов STEPn всех шаговых двигателей целиком. Период таймера TC1 соответствует одной единице измерения длительности шага.

help или ?

Выдача подсказки по командам.

info

Выдача общей информации по состоянию контроллера - текущие длительность и направление всех шаговых двигателей, частота таймера TC1, время работы контроллера.

[Данные, которые передает контроллер в компьютер]

Если сигнал на входе BREAK перешел из лог. 0 в лог. 1, то контроллер передает BH, а если этот сигнал перешел из лог. 1 в лог. 0, то передает BL, и останавливает все шаговые двигатели.

Контроллер также сообщает об изменениях состояния концевых выключателей (датчиков, подключенных к входам IN1..IN8) следующим образом: DML, DMH. Здесь M номер датчика, а L и H – текущее состояние входа датчика (низкий и высокий уровни соответственно).

[Схема контроллера]

Схемы как таковой нет, так как вся основная обвязка контроллера уже имеется на макетной плате AT91SAM7X. На макетное поле напаяны только коннекторы, резисторы и индикационные светодиоды. Силовые модули шаговых двигателей подключаются через коннектор X1, через X2 подключаются ключи для реле, через X3 подключены датчики (простые замыкатели на землю, GND).

USB-step-motor-ext-conn-schematic

На фото показаны коннекторы и монтаж USB-контроллера шаговых двигателей.

USB-step-motor-IMG 2310 USB-step-motor-IMG 2316

[Ссылки]

1. Макетная плата AT91SAM7X.
2. 130926usbstepmotor-public.zip - исходный код проекта.