Народный проект драйвера (привода) для шаговика на AVR

mura
arisov77:

Как сделать без дребезга, если длительность импульса от Масh не более 25мкс .

Самый простой способ
Вход ШАГ на прерывание, в обработчике считываем его N-раз если все разы ОК считаем что пришел ШАГ, если хоть один неправильный - вываливаемся.

Допустим (сейчас делаю управлялку для ШД-4М на PIC16F676 с внутренним генератором 4МГЦ, без ШИМ, одиночный шаг), Step подаю на вход с прерываниями RA2(INT). В п/программе прерываний надо 2-3 раза повторить опрос входа (при времени команд у PIC для 4МГц=1мкс, а команд перехода =2мкс)- ? Что посоветуете, а то опыта пока мало.

Использовать AVR он побыстрее будет или поставить RC фильтр на вход и считать что каждый импульс правильный.

Т.к. контроллер я испытываю на светодиодики, а сам двигатель находиться на работающем станке за 50км

Ну это я давно понял. 😉

ATLab
arisov77:

Как сделать без дребезга, если длительность импульса от Масh не более 25мкс Допустим (сейчас делаю управлялку для ШД-4М на PIC16F676 с внутренним генератором 4МГЦ, без ШИМ, одиночный шаг), Step подаю на вход с прерываниями RA2(INT).

А откуда берется дребезг?

  1. На входе оптопара, если нет - обязательно поставить, убиваем двух зайцев: выполняет роль ФНЧ из-за своих инерционных свойств и снижается чувствительность к помехам, поскольку входной светодиод работает в токовом режиме (см. “токовая петля”)
  2. Вход Int в 16F676 с триггером Шмитта.

В п/программе прерываний надо 2-3 раза повторить опрос входа (при времени команд у PIC для 4МГц=1мкс, а команд перехода =2мкс)- ?

  1. От прерываний нужно вообще отказаться, какой смысл в их использовании? Какие еще сигналы кроме STEP должен обрабатывать PIC? Никаких.
    А на вход/выход из прерывания уходит много времени, даже если не сохранять/восстанавливать регистры.
    Достаточно в цикле анализировать ФЛАГ прерывания и сбрасывать его. Посмотрите исходник программы, который я приводил для управления LB1845. Он basic-е, так что все будет понятно.
  2. Что мешает поставить кварц на 20 МГц? Лень, проблема с кварцем? Не изобретайте проблем там, где их нет.

И ещё вопросик: Я ввожу задержку между шагами 100мкс, это надо?

Зачем? У мача ядро кажется 40 кГц, это значит он считает шаги с дискретом 25 мкс, а Вы их серпом по яй…м, чтобы гады не пролезли?
Опять таки вещь без логического обоснования.

Т.к. контроллер я испытываю на светодиодики, а сам двигатель находиться на работающем станке за 50км, то хотелось бы на месте выяснить все нюансы.

😃 Неужто притащить домой какой-нибудь шаговик проблема? Это будет адекватнее, чем использовать светодиоды, хотя начать можно и с них.

Первая поездка на выходных и установка прошла не очень успешно …
При большой установленной частоте в Mach движок “засвистел” на месте и через несколько минут после эксперементов “сгорел” полевик IRL3705N (55В, 77А) (при токе одной фазы 3А).
Радиатор на транзисторы надо вешать или задержку между шагами увеличить (для случая - большой входной частоты)?

Про задержку уже написал, а транзисторы конечно поставить на радиатор, лишним для начала не будет, лучше потом убрать, если не понадобится.

arisov77
mura:

Использовать AVR он побыстрее будет…

Выбор этого МК, обусловлен, тем что он у нас используется в производстве и у меня их «завались».

mura:

Ну это я давно понял. 😉

Это Вы поняли по сервоконтроллеру? 😉 Ну, я никогда и не скрывал, что испытывал его на макете.

ATLab:

А откуда берется дребезг?

  1. На входе оптопара, если нет - обязательно поставить, убиваем двух зайцев: выполняет роль ФНЧ из-за своих инерционных свойств и снижается чувствительность к помехам, поскольку входной светодиод работает в токовом режиме (см. “токовая петля”)

Да, на входе HCPL-2531. Дребезга может и не быть, а случайная микросекундная помеха может (рядом несколько работающих электросварок). Сейчас я не использую повторного опроса состояния, потом при необходимости изменю программку.

ATLab:
  1. От прерываний нужно вообще отказаться, какой смысл в их использовании? Какие еще сигналы кроме STEP должен обрабатывать PIC?

У меня немного специфический контроллер, управляет высотой Z плазмо(газо)резки и в нём кроме Step/Dir предусмотрел отдельные входы F/R для системы стабилизации высоты (на будущее) и для управления от кнопок непосредственно около заготовки. Также есть концевики ограничения входа, регулятор скорости при автономном управлении. И если все эти входа опрашивать без прерывания от Step, то можно будет пропустить их часть.

ATLab:
  1. Что мешает поставить кварц на 20 МГц? Лень, проблема с кварцем? Не изобретайте проблем там, где их нет.

Зачем ставить кварц, когда он в данном применении он не нужен. Высоких скоростей, супер точности, формирования ШИМ мне не надо, так что 4МГц хватает.

ATLab:

Зачем? У мача ядро кажется 40 кГц, это значит он считает шаги с дискретом 25 мкс, а Вы их серпом по яй…м, чтобы гады не пролезли?

В п/программе обработки прерывания выставляю флаг того или иного направления. В основной программе опрашиваю эти флаги, при необходимости делаю шаг в нужном направлении, затем задержка и сбрасываю эти флаги. Так, что импульсы по Step не пропущу (мне надо только до 1кГц), это что типа фильтра.

ATLab:

😃 Неужто притащить домой какой-нибудь шаговик проблема? Это будет адекватнее, чем использовать светодиоды, хотя начать можно и с них.

Шаговик от принтера СМ6337 в соседней комнате валяется, лень подключать и по светодиодикам всё видно, особенно при автономном управлении и при убавленном регуляторе скорости, а частоту частотомером замерю. А нагрев транзисторов по нему я всё равно точно проконтролировать не смогу.

erozia

я счас делаю станочек типа фрезерный и слепил драйвер “народный” на меге восьмой на 3 движка … вобщем он задумывался как микрошаг шимом без контроля тока … но счас пока работает как драйвер полушага… написано на си. там пока для одного движка кому надо добавит строчек 10 и будет для 3х… сам думаю на микрошаг переходить… но это не скоро будет… вобщем в любом случае тем кто знает что такое си, атмел и шаговый двигатель будет полезно взглянуть на исходники…

п.с. если умные вопросы то аська 282720882

Driver_Step_Motor.rar

ATLab
arisov77:

…У меня немного специфический контроллер…

Понятно: задаем вопрос с фигой в кармане, в надежде на ответ телепата.

arisov77
ATLab:

Понятно: задаем вопрос с фигой в кармане, в надежде на ответ телепата.

Обработка сигнала от Step в любом контроллере одинакова, радиаторы тоже, только вот задержка между шагами при управлении от ЧПУ оказывается немного специфична (я мало анализировал другие конструкции). Кстати немного ошибся - флаги сбрасываются не после п/программы задержки, а перед нею, чтобы во время задержки МК мог «отловить» импульс.
Про «дребезг» по Step я раньше и не думал, пока не увидел сообщение mura. Вот и решил задать вопросик, заодно и парочку других.
С радиаторами так и поступлю, как Вы посоветовали. Только снимать, даже если не будут греться - не буду. Проблема не в наличии радиатора, а как его «прикрутить» в готовую плату. Когда проектировал плату – посмотрел фото платы для похожего шаговика ДШ-5 у всех «любимого» celladon www.imafania.narod.ru/contr7.htm – там нет радиаторов. Надо было и другие конструкции посмотреть…