Народный проект драйвера (привода) для шаговика на AVR
Как сделать без дребезга, если длительность импульса от Масh не более 25мкс .
Самый простой способ
Вход ШАГ на прерывание, в обработчике считываем его N-раз если все разы ОК считаем что пришел ШАГ, если хоть один неправильный - вываливаемся.
Допустим (сейчас делаю управлялку для ШД-4М на PIC16F676 с внутренним генератором 4МГЦ, без ШИМ, одиночный шаг), Step подаю на вход с прерываниями RA2(INT). В п/программе прерываний надо 2-3 раза повторить опрос входа (при времени команд у PIC для 4МГц=1мкс, а команд перехода =2мкс)- ? Что посоветуете, а то опыта пока мало.
Использовать AVR он побыстрее будет или поставить RC фильтр на вход и считать что каждый импульс правильный.
Т.к. контроллер я испытываю на светодиодики, а сам двигатель находиться на работающем станке за 50км
Ну это я давно понял. 😉
Как сделать без дребезга, если длительность импульса от Масh не более 25мкс Допустим (сейчас делаю управлялку для ШД-4М на PIC16F676 с внутренним генератором 4МГЦ, без ШИМ, одиночный шаг), Step подаю на вход с прерываниями RA2(INT).
А откуда берется дребезг?
- На входе оптопара, если нет - обязательно поставить, убиваем двух зайцев: выполняет роль ФНЧ из-за своих инерционных свойств и снижается чувствительность к помехам, поскольку входной светодиод работает в токовом режиме (см. “токовая петля”)
- Вход Int в 16F676 с триггером Шмитта.
В п/программе прерываний надо 2-3 раза повторить опрос входа (при времени команд у PIC для 4МГц=1мкс, а команд перехода =2мкс)- ?
- От прерываний нужно вообще отказаться, какой смысл в их использовании? Какие еще сигналы кроме STEP должен обрабатывать PIC? Никаких.
А на вход/выход из прерывания уходит много времени, даже если не сохранять/восстанавливать регистры.
Достаточно в цикле анализировать ФЛАГ прерывания и сбрасывать его. Посмотрите исходник программы, который я приводил для управления LB1845. Он basic-е, так что все будет понятно. - Что мешает поставить кварц на 20 МГц? Лень, проблема с кварцем? Не изобретайте проблем там, где их нет.
И ещё вопросик: Я ввожу задержку между шагами 100мкс, это надо?
Зачем? У мача ядро кажется 40 кГц, это значит он считает шаги с дискретом 25 мкс, а Вы их серпом по яй…м, чтобы гады не пролезли?
Опять таки вещь без логического обоснования.
Т.к. контроллер я испытываю на светодиодики, а сам двигатель находиться на работающем станке за 50км, то хотелось бы на месте выяснить все нюансы.
😃 Неужто притащить домой какой-нибудь шаговик проблема? Это будет адекватнее, чем использовать светодиоды, хотя начать можно и с них.
Первая поездка на выходных и установка прошла не очень успешно …
При большой установленной частоте в Mach движок “засвистел” на месте и через несколько минут после эксперементов “сгорел” полевик IRL3705N (55В, 77А) (при токе одной фазы 3А).
Радиатор на транзисторы надо вешать или задержку между шагами увеличить (для случая - большой входной частоты)?
Про задержку уже написал, а транзисторы конечно поставить на радиатор, лишним для начала не будет, лучше потом убрать, если не понадобится.
Использовать AVR он побыстрее будет…
Выбор этого МК, обусловлен, тем что он у нас используется в производстве и у меня их «завались».
Ну это я давно понял. 😉
Это Вы поняли по сервоконтроллеру? 😉 Ну, я никогда и не скрывал, что испытывал его на макете.
А откуда берется дребезг?
- На входе оптопара, если нет - обязательно поставить, убиваем двух зайцев: выполняет роль ФНЧ из-за своих инерционных свойств и снижается чувствительность к помехам, поскольку входной светодиод работает в токовом режиме (см. “токовая петля”)
Да, на входе HCPL-2531. Дребезга может и не быть, а случайная микросекундная помеха может (рядом несколько работающих электросварок). Сейчас я не использую повторного опроса состояния, потом при необходимости изменю программку.
- От прерываний нужно вообще отказаться, какой смысл в их использовании? Какие еще сигналы кроме STEP должен обрабатывать PIC?
У меня немного специфический контроллер, управляет высотой Z плазмо(газо)резки и в нём кроме Step/Dir предусмотрел отдельные входы F/R для системы стабилизации высоты (на будущее) и для управления от кнопок непосредственно около заготовки. Также есть концевики ограничения входа, регулятор скорости при автономном управлении. И если все эти входа опрашивать без прерывания от Step, то можно будет пропустить их часть.
- Что мешает поставить кварц на 20 МГц? Лень, проблема с кварцем? Не изобретайте проблем там, где их нет.
Зачем ставить кварц, когда он в данном применении он не нужен. Высоких скоростей, супер точности, формирования ШИМ мне не надо, так что 4МГц хватает.
Зачем? У мача ядро кажется 40 кГц, это значит он считает шаги с дискретом 25 мкс, а Вы их серпом по яй…м, чтобы гады не пролезли?
В п/программе обработки прерывания выставляю флаг того или иного направления. В основной программе опрашиваю эти флаги, при необходимости делаю шаг в нужном направлении, затем задержка и сбрасываю эти флаги. Так, что импульсы по Step не пропущу (мне надо только до 1кГц), это что типа фильтра.
😃 Неужто притащить домой какой-нибудь шаговик проблема? Это будет адекватнее, чем использовать светодиоды, хотя начать можно и с них.
Шаговик от принтера СМ6337 в соседней комнате валяется, лень подключать и по светодиодикам всё видно, особенно при автономном управлении и при убавленном регуляторе скорости, а частоту частотомером замерю. А нагрев транзисторов по нему я всё равно точно проконтролировать не смогу.
я счас делаю станочек типа фрезерный и слепил драйвер “народный” на меге восьмой на 3 движка … вобщем он задумывался как микрошаг шимом без контроля тока … но счас пока работает как драйвер полушага… написано на си. там пока для одного движка кому надо добавит строчек 10 и будет для 3х… сам думаю на микрошаг переходить… но это не скоро будет… вобщем в любом случае тем кто знает что такое си, атмел и шаговый двигатель будет полезно взглянуть на исходники…
п.с. если умные вопросы то аська 282720882
…У меня немного специфический контроллер…
Понятно: задаем вопрос с фигой в кармане, в надежде на ответ телепата.
Понятно: задаем вопрос с фигой в кармане, в надежде на ответ телепата.
Обработка сигнала от Step в любом контроллере одинакова, радиаторы тоже, только вот задержка между шагами при управлении от ЧПУ оказывается немного специфична (я мало анализировал другие конструкции). Кстати немного ошибся - флаги сбрасываются не после п/программы задержки, а перед нею, чтобы во время задержки МК мог «отловить» импульс.
Про «дребезг» по Step я раньше и не думал, пока не увидел сообщение mura. Вот и решил задать вопросик, заодно и парочку других.
С радиаторами так и поступлю, как Вы посоветовали. Только снимать, даже если не будут греться - не буду. Проблема не в наличии радиатора, а как его «прикрутить» в готовую плату. Когда проектировал плату – посмотрел фото платы для похожего шаговика ДШ-5 у всех «любимого» celladon www.imafania.narod.ru/contr7.htm – там нет радиаторов. Надо было и другие конструкции посмотреть… ☕