драйвер на AVR, кто то делал (делает)
Кто нить имеет прошивки драйвера на АВР ???
или исходники посмотреть ???
справится ли одна ATMEGA8 с управлением по 3 осям ???
я вот так вот зделал:
stepsMicro[0] = BIN8(1000);
stepsMicro[1] = BIN8(1100);
stepsMicro[2] = BIN8(0100);
stepsMicro[3] = BIN8(0110);
stepsMicro[4] = BIN8(0010);
stepsMicro[5] = BIN8(0011);
stepsMicro[6] = BIN8(0001);
stepsMicro[7] = BIN8(1001);
while (1) {
//step motor1
if (PINC.0==0) {
if (PINC.1==1){step1++;};
if (PINC.1==0){step1–;};
if (step1==8) {step1=0;};
if (step1==-1){step1=7;};
}
//step motor2
if (PINC.2==0) {
if (PINC.3==1){step2++;};
if (PINC.3==0){step2–;};
if (step2==8) {step2=0;};
if (step2==-1){step2=7;};
…
PORTD = (stepsMicro[step1]*16+stepsMicro[step2]) ;
- в Протеусе крутится-вертится
спаял на макетке+L298 - тоже крутится,но
если управлять с ЛПТ или по кнопкам, то нужно
шаг делать по прерыванию ?
то есть есть сигнал на ножке - прерывание - шаг, ждем дальше сигнала
то есть чтобы кнопку нажал - один шаг, отпустил-нажал - второй, а не нажал - и ШД зделал несколько шагов соответственно периоду когда нажата кнопка.
Вот здесь есть схема на AVR complink.narod.ru/text/moye/shd/shd.htm
Вот здесь есть схема на AVR complink.narod.ru/text/moye/shd/shd.htm
Если вы хотите нормальный и надежный драйвер то лучше купить готовый промышленного типа. Если вы хотите насладится поиском багов в работе электронной части своего супер станка то можно сделать самому.
а не нажал - и ШД зделал несколько шагов соответственно периоду когда нажата кнопка.
введите в цикле програмы понятие предыдущего состояния кнопки, и выполняйте действия только если предыдуще состояние было “не нажато”
prev_state=0 // не нажато
while (1)
{
If (key_press) // проверка нажата ли кнопка,
{
if (prev_state==0) // и если она была перед этим не нажата
выполнить требуемые действия
prev_state = 1 //запомнить, что была нажата
}
else
prev_state=0 //кнопку отпустили
}
STEPMOTOR, - быстро,качественно,недорого - выберите две опции 😃)) а хочца три 😦 а такого не бывает
2 vadik - прога типа как у меня , только на асме
Алксандр - с кнопочками разобрались, а как быть с портом ЛТП ???
нужно чтобы управляющая прога, подавала через ЛТП сигнал на ногу контроллера, а контроллер ей - “вас понял,кручу мотор” - сигнал на ногу ЛТП - “ГОТОВ,давай следующий команду”, есть такое в ККам, МакХ … ???
if (step2==8) {step2=0;};
Эта конструкция долго выполняется, надо так step2 &= 7; если три канала - надо за каждую микросекунду бороться.
Спасибо, поменял !
а по ЛПТ кто чего подскажет, как это организовать !?
Спасибо, поменял !
а по ЛПТ кто чего подскажет, как это организовать !?
Ну а с портом какие трудности? чтобы по импульсу на порту лпт тоже 1 шаг делался? разве для проца сигнал от кнопки и сигнал от порта лпт не одно и тоже? все аналогично
проверяем требуемый логический уровень, если появился - выполняем действия, запоминаем что выполнили, и дожидаемся пока сигнал не пропадет
та вот у меня вопрос как ДОЛГО сохраняется “требуемый логический уровень” на ножке ЛТП ???
микроконтроллер успеет его обработать ??? не пропустить ??
та вот у меня вопрос как ДОЛГО сохраняется “требуемый логический уровень” на ножке ЛТП ???
микроконтроллер успеет его обработать ??? не пропустить ??
для этого на вход лучше поставить реверсивный счетчик ! он будет в роли буфера полученных сигналов
Кто нить имеет прошивки драйвера на АВР ???
или исходники посмотреть ???
Есть два апноута по управлению ШД с исходниками от Atmel - посмотрите внизу www.avr123.nm.ru/07.htm
нашёл такой avr360.zip
там по прерыванию шаг, на моей Atmeg8 их 2 😦
может есть какая хитрость использования прерываний ???
нашёл такой avr360.zip
там по прерыванию шаг, на моей Atmeg8 их 2 😦
может есть какая хитрость использования прерываний ???
возми мегу48 или 88 - там можно прерывание с любого пина получить.
А кто нить “взрослую” схемку и прогу для AVR или другого проца, пусть на одну ось, встречал в сети?
А кто нить “взрослую” схемку и прогу для AVR или другого проца, пусть на одну ось, встречал в сети?
самое приличное что я встречал для шаговика это был драйвер lini stepper.
возми мегу48 или 88 - там можно прерывание с любого пина получить.
IMHO, затея с драйвером на 3 оси хотя и имеет право на существование, порочна, лучше на каждую ось поставить по драйверу со своим микроконтроллером.
Резоны таковы:
- Цена микроконтроллера составляет далеко не самую значительную часть в стоимости комплектующих драйвера - цена 2-3 мощных полевых транзисторов
- Существенно (чем больше осей тем заметнее) увеличивается время реакции контроллера на сигнал STEP:
- пусть время реакции на сигнал STEP составляет 10 мкс?
- предположим, что пришли сигналы STEP на 3 оси сразу,
- тогда третья ось обработается только через 30 мкс.
Это существенно ограничивает сверху диапазон скоростей, и приводит к джиттеру (дрожжанию) фазы сигналов управления ШД - из-за неопределенности времени реации на сигнал STEP.
В этом случае интервал времени между соседними сигналами STEP должен быть существенно больше максимального времени реакции (как в примере, существенно больше 30 мкс).
А тогда становится проблематичным формирование микрошага на приемлемой скорости.
Если же микрошаг не нужен, тогда зачем микроконтроллер?
P.S. Здесь уже рассматривалась попытка сделать драйвер на несколько осей на PIC микроконтроллере (его даже продавали) - я не помню, был ли кто, отозвавшийся хорошо.
AVR в этом смысле ничем не лучше, разве чуть дешевле.
А кто нить взрослую схемку и прогу для AVR или другого проца, пусть на одну ось, встречал в сети?
“Взрослая” схема делается просто:
- делается (или берется готовая, например на L6203) силовая часть драйвера с требуемым напряжением/током и типом (биполярная/униполярная)
- добавляется микроконтроллер с формированием сигналов микрошага (SIN/COS и управление).
И все, фокусник достал кролика из цилиндра!
Выложил свою схему на AVR в соседнюю тему “Станки с чпу и двигатель шд5”
Выложил свою схему на AVR в соседнюю тему “Станки с чпу и двигатель шд5”
Сам разрабатывал, или опять бездумная, неумелая копия. И почему на письма не отвечаешь, прячемся, на звонки не отвечаешь, Алексей звонил несколько раз.
А по существу вопросы есть? Личные вопросы на celladon@mail.ru
А по существу вопросы есть? Личные вопросы на celladon@mail.ru
А раньше что не по существу тебе писали, отмалчивался.
Если диалог возможен, то вечером отпишу на мыло.
Выложил свою схему на AVR в соседнюю тему “Станки с чпу и двигатель шд5”
Критика в той же ветке.
как разобратся с проводами выходящими из ШД ???
раз подключил крутился - счас провода попутал, дьоргается туда сюда, не крутится 😦
как разобратся с проводами выходящими из ШД ???
раз подключил крутился - счас провода попутал, дьоргается туда сюда, не крутится 😦
тестером “потыкайте”
at90pwm2, at90pwm3 - смотрел ? по моему это специализированные микросхемы из серии Motor Control
at90pwm2, at90pwm3 - смотрел ? по моему это специализированные микросхемы из серии Motor Control
Выглядит очень красиво. Но сначала стоит почитать про них и про их использование отзывы - и все станет понятно.
На самом деле жаль - камни задумывались классные, но Атмел на этот раз до безобразия обмишурился… 😦
Если кто все-таки рискнет - то только PWM3 с буковкой (ревизия) В. И внимательно (априоре) читать ЕРРАТы 😃.