AT91SAM7X: USB-контроллер шаговых двигателей |
![]() |
Добавил(а) microsin | ||||||
Контроллер собран на макетной плате AT91SAM7X [1] и представляет собой USB-устройство CDC (виртуальный COM-порт). Контроллер может одновременно управлять 8 шаговыми двигателями, откликаясь на простые текстовые команды. Сигналы STEPn и DIRn вырабатываются контроллером индивидуально для каждого шагового двигателя, и подаются на силовые модули, собранные на микросхеме TB6560HQ (силовые фазы для шагового двигателя формирует именно эта микросхема). Есть также возможность управлять четырьмя силовыми реле (сигналы RELAY1..RELAY4). Кроме того, имеются 8 входов для подключения датчиков (IN1..IN8) - концевых выключателей, по сигналу которых мотор может останавливаться. Также есть один общий аварийный сигнал BREAK, который останавливает вращение сразу всех двигателей. Команды для управления шаговыми двигателями и реле можно подавать обычной терминальной программой (putty, HyperTerminal, TerraTerm, SecureCRT и т. п.). Поддерживаемые команды: 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 Команда выдает лог. 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-контроллера шаговых двигателей.
[Ссылки] 1. Макетная плата AT91SAM7X. |