Здравствуйте. Прошу помощи. Есть некое устройство из него выходят 4 линии управления на которых циклический меняются комбинации сигналов. Мне нужно при смене с одной комбинации на другую получить импульс. Если это важно, то комбинации не любые, а в частности не бывает так что одновременно есть сигнал на 1 и 3 или 2 и 4. Чувствую что решение гдето рядом с триггером но возможно ошибаюсь.
За ранее благодарю за советы.
Сколько всего разных состояний бывает на выходах?
Состояния всегда меняются циклически или могут и в произвольном порядке?
Требуется обнаружить:
- переход из одного определённого состояния в другое определённое; "2"->"5"
- переход из одного определённого состояния в любое другое; "4"->"не 4"
- переход из любого состояния в одно определённое; "не 1"->"1"
- просто обнаружить любое изменение выходов?
К триггеру в помощь возможно потребуется
дешифратор
состояний всего восемь, это полушаговый режим работы шд. состояния меняются последовательно. 1,12,2,23,3,34,4,41.
Соответственно шд может остановиться в любом положении и потом может начать крутиться в обратную сторону или продолжить в том же направлении.
На первые 2 вопроса вы ответили, а дальше? Что требуется обнаружить?
Обнаружить надо факт начала вращения шд, в одну или другую сторону.
Тоесть из текущего состояния в любое соседнее либо вообще любое изменение относительно текущего, как проще.
Определить смену состояния одной линии можно 2-входовым логическим элементом "Исключающее ИЛИ" (XOR), 74HC86 и т.п., подав на один его вход прямой сигнал, а на другой задержанный. Длительность импульса на выходе будет равна этой задержке. Задержанный сигнал можно получить либо RC-цепью, либо тактуя D-триггер.
Для 4-х линий потребуется 4 таких схемы, 4 выхода которых надо объединить 4-входовым элементом ИЛИ (OR), который можно собрать из обычных 2-входовых 74HC32 и т.п.
На получившемся выходе будет появляться импульс логической "1" при любом изменении входов.
спасибо за подсказку.
по поводу тактирования д-триггера, его надо тактировать с привязкой к чему то или можно просто подать любой тактовый импульс.
Цитата(Bmax77 @ Dec 1 2012, 21:09)

спасибо за подсказку...
Пока я рисовал,
Plain уже ответил.
Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаФормирователь импульсов можно сделать только один, а 4 входа объединить по XOR.
Цитата(Bmax77 @ Dec 1 2012, 15:09)

по поводу тактирования д-триггера, его надо тактировать с привязкой к чему то или можно просто подать любой тактовый импульс.
Тактовый сигнал может быть любым желаемым. Только я не сказал выше, что в этом случае требуется все линии на входе синхронизировать ещё 4-мя D-триггерами, т.е. каждый из 4-х входных сигналов надо пропустить через два последовательно соединённых D-триггера, выходы которых подать на элемент XOR.
Т.е. всего для решения задачи надо 8 D-триггеров. Подойдут 74HC273, 74HC374, 74HC574 и т.п. У последней наиболее удобная разводка.
Александр77
Dec 1 2012, 15:26
Цитата(Bmax77 @ Dec 1 2012, 14:39)

Обнаружить надо факт начала вращения шд, в одну или другую сторону.
А вы уверены, что смена состояния на линиях есть факт вращения ШД? Ведь механику не отменили и если ШД заклинит, то сигналы могут меняться сколь угодно, но ШД будет стоять.
Может имеет смысл подключить к валу энкодер - коэффициент передачи вряд ли будет 1:1 (так ка зависит и от числа шагов ШД и от числа шагов энкодера), но зато точно увидите факт механического исполнения.
В качестве дополнения, прилагаю схему определения направления вращения на логике
Нажмите для просмотра прикрепленного файла
Александр77, да конечно хорошо бы поставить энкодер но это тут лишнее, ибо получится что пока с энкодера не поступит сигнал, шим не увеличит подачу тока а пока ток не возрастет шд может и не поехать. Так что тут первична необходимость отследить желание шд сдвинуться с места. А за схемку спасибо, в любом случае будет полезна.
Plain, ae спосибо за подсказку.
Александр77
Dec 2 2012, 13:23
Цитата(Bmax77 @ Dec 1 2012, 20:55)

.. тут первична необходимость отследить желание шд сдвинуться с места...
Не знаю что стоит до формирователей фаз, но наверняка там есть либо сигнал старта, либо импульсная последовательность - можно их отслеживать а не фазовые сигналы
to Александр, Фазы формирует компьютер на котором работает прога по управлению чпу, контроллер примитивный не step/dir.
Попробовал в протеусе схему с R/C цепочкой, не работает эта цепочка, кто знаком с этой программой подскажите в чем может быть дело.
С протеусом разобрался. Похоже R/C не подойдет, частота шагов варьируется в очень широких пределах, а с R/C стабильно работает только в небольшом диапазоне.
Цитата(Bmax77 @ Dec 3 2012, 09:47)

to Александр, Фазы формирует компьютер на котором работает прога по управлению чпу, контроллер примитивный не step/dir.
Почему-то никто не предложил еще микроконтроллер...
Я первая!
Цитата(Tanya @ Dec 3 2012, 10:44)

Почему-то никто не предложил еще микроконтроллер...
Я первая!
Микроконтроллер у меня уже есть, он формирует шим и мне кажется что два микроконтроллера это будет слишком.
Цитата(Bmax77 @ Dec 3 2012, 11:06)

Микроконтроллер у меня уже есть, он формирует шим и мне кажется что два микроконтроллера это будет слишком.
Тогда непонятно, что и зачем Вы хотите еще.
P.S. Вот видела недавно драйвер двигателя, так там несколько контроллеров и еще ПЛИС.
Хотел к простому драйверу приделать костыль в виде умного шим. На МК формируется три канала шим, для каждого шд свой. В зависимости от режима работы шд, шим меняет скважность. Но случилась сложность с определением момента начала движения шд. Есть вариант использовать ATMega16, и сделать step/dir со всеми делами.
Цитата(Bmax77 @ Dec 3 2012, 11:22)

Хотел к простому драйверу приделать костыль в виде умного шим. На МК формируется три канала шим, для каждого шд свой. В зависимости от режима работы шд, шим меняет скважность. Но случилась сложность с определением момента начала движения шд. Есть вариант использовать ATMega16, и сделать step/dir со всеми делами.
Вы не с той стороны подходите. Двигатель должен управляться током. Поэтому не нужно вслепую придумывать ШИМ контроллером. А нужно использовать шунты. Посмотрите логику работы стандартных драйверов ШД.
P.S. На мой вкус - один двигатель - один контроллер. Если они должны работать одновременно. Отношение цены двигателя к цене контроллера очень большое. А если подумать о цене всего остального, то...
Предлогаете греть шунтами отмосферу? По моему шим это как раз правильное решение. Тем более что, если нужно получить от шд преемлимую скорость вращения то питать его нужно напряжением в разы выше номинального, представляете какую мощность надо будет рассеять на шунтах?
Цитата(Bmax77 @ Dec 3 2012, 11:42)

Предлогаете греть шунтами отмосферу? По моему шим это как раз правильное решение. Тем более что, если нужно получить от шд преемлимую скорость вращения то питать его нужно напряжением в разы выше номинального, представляете какую мощность надо будет рассеять на шунтах?
При чем тут напряжение? Ток задается ЦАПом (в стандартных) драйверах. И ток течет такой, какой нужен - колеблется около заданного. И мощность соответствующая. Кроме того, ток не все время течет через шунт.
Вы бы посмотрели, как там все устроено, все-таки.
И чем же управляет ЦАП? Уж не напрямую ли в обмотку мотора ток подает?
Мотор включается через мощные ключевые транзисторы MOSFET, а сигнал который их открывает промодулирован ШИМ сигналом.
Я получил ответ на свой вопрос, далее флудить тут не намерян, тем более раз тема управления шд перешла в плоскось вопроса, а при чем тут напряжение.
Цитата(Bmax77 @ Dec 3 2012, 12:14)

И чем же управляет ЦАП?
А ваша фраза "при чем тут напряжение" меня мягко говоря смутила.
ЦАП управляет компаратором.
Тут не нужно смущаться. Логика (бывает разная) обычно такая - обмотка подключается, измеряется ток (он относительно медленно нарастает). Когда ток превышает заданное значение, обмотка закорачивается на фиксированное время. Потом опять подключаем и измеряем. Тут возможны варианты с рекуперацией, если ток нужно уменьшать. Посмотрите все-таки, как устроены современные интегральные драйверы.
Я не стремлюсь повторить современный интегральный драйвер, если он мне понадобится то я его куплю. Я хочу улучшить то что уже есть теми редствами которые есть под рукой. Хочу прибавить немного скорости и избавиться от перегрева. После того как добавил шим, решил улучшить еще немного, по скольку в простое не нужен полный ток. Вот и все, а лепить сложный контроллер со всякими прибамбасами микро шагом и тд и тп я не собираюсь. Такие вещи покупают и всеи
Цитата(Bmax77 @ Dec 3 2012, 10:14)

Я получил ответ на свой вопрос, далее флудить тут не намерян, тем более раз тема управления шд перешла в плоскось вопроса, а при чем тут напряжение.
Ну, раз не намерян, то тему закрываю. А то уже не в коня, похоже, корм.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.