Тестирование драйверов / ШД
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Тестирование драйверов / ШД
Надо локализовать проблему пропуска шагов при вращении против часовой стрелки. Посоветовали собрать мультивибратор, чтобы исключить из рассмотрения LPT и софт. Решил сделать на ATMega8 таким образом, чтобы подавать на Step 1 кГц, на Dir 0.1 Гц, иными словами, 5 сек крутит в одном направлении, затем 5 сек. в другом. И что-то я засомневался, а можно ли резко менять направление вращения? Хотя частота на Step невысокая, а момент инерции - только сам ротор и муфта (двигатель отсоединяю от станка), не поплохеет ли движку, и особенно драйверу от резкой смены направления, получается же торможение противовключением.
Re: Тестирование драйверов / ШД
Резко менять направление можно, но должно быть наростание/спад скорости с ускорением, например в Mach3 есть такой параметр "тюнинга моторов": "Acceleration in's or mm's/sec/sec.Rafiq писал(а):И что-то я засомневался, а можно ли резко менять направление вращения?
Правильно что решил на МК делать (;
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Тестирование драйверов / ШД
В принципе, на МК можно просто плавно снижать частоту на Step перед переключением Dir, а после плавно повышать.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование драйверов / ШД
Можно. Тем более у таких маленьких ШД. Максимум, чем грозит - пропуском шагов.Rafiq писал(а): можно ли резко менять направление вращения?
Для каждого ШД есть предельная частота, на которой он способен стартовать (частота приемистости). Если "с места в карьер" подать более высокую частоту, двигатель просто будет пищать, но не закрутится. Обычно частота приемистости в несколько раз ниже той, с которой способен работать двигатель при плавном разгоне. Эта частота для старых советских ДШИ-200 была, если мне не изменяет память, 1000 шагов/сек, а раскручивался он до 5000 шагов/сек. Для Nema 17 - не знаю, но явно выше.
По контроллеру - ЭДС, вырабатываемая ШД при торможении, может вызывать подзаряд выходных конденсаторов ИП до напряжения выше номинального напряжения ИП. Это не есть хорошо, и теоретически может привести к выходу контроллера из строя.
Но это, IMHO, не твой случай.
Кстати, у тебя проблема наблюдается на всех скоростях?
Чудес не бывает. Бывают фокусы.
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Тестирование драйверов / ШД
Да, на всех.
Видео:
https://www.youtube.com/watch?v=Jpo8UCs1zdo
Здесь подача (по настройкам LinuxCNC) 192 мм/мин.
На максимальной скорости (1980 мм/мин.) щелчки гораздо реже, но все равно есть.
Когда по часовой кручу, все в норме. Тут уже говорили, что видимо Dir помехи ловит, когда на низком (или высоком) уровне, или подтяжка слабая к высокому уровню.
P.S. Как назло, забыл на работе программатор для AVR
Видео:
https://www.youtube.com/watch?v=Jpo8UCs1zdo
Здесь подача (по настройкам LinuxCNC) 192 мм/мин.
На максимальной скорости (1980 мм/мин.) щелчки гораздо реже, но все равно есть.
Когда по часовой кручу, все в норме. Тут уже говорили, что видимо Dir помехи ловит, когда на низком (или высоком) уровне, или подтяжка слабая к высокому уровню.
P.S. Как назло, забыл на работе программатор для AVR
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование драйверов / ШД
Тогда проще всего подать на Step прямоугольники 500..1000 Гц и не заморачиваться с разгоном-торможением.Rafiq писал(а):Да, на всех.
А на Dir - тот лог. уровень, при котором ожидаются сбои.
А сделал бы на паре инверторов (элементов НЕ, а не то чем шпиндели крутят ) или на одном ТШ, уже бы все проверил.Rafiq писал(а):Как назло, забыл на работе программатор для AVR
Чудес не бывает. Бывают фокусы.
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Тестирование драйверов / ШД
Думаю, что нужно подавать не только частоту на step, но и считать КОЛИЧЕСТВО поданых импульсов. Например, 1 кГц на 5 секунд = 5 000 импульсов. Т.е. 5 000 импульсов с частотой 1 кГц с разгоном и торможением, затем меняем dir и опять 5000 импульсов с частотой 1 кГц с разгоном и торможением. И посмотреть через пару минут куда сместилась метка на валу двигателя? Так будет корректнее (при том, что автор собирается программировать AVR-ку).
Хочешь быть счастливым? Будь им!
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Тестирование драйверов / ШД
У меня в хозяйстве давно уже нет ни одной микрухи с мелкой логикойSerg-tmn писал(а):А сделал бы на паре инверторов (элементов НЕ, а не то чем шпиндели крутят ) или на одном ТШ, уже бы все проверил.Rafiq писал(а):Как назло, забыл на работе программатор для AVR
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Тестирование драйверов / ШД
Идея хорошая так и сделаю.Ворон226 писал(а):Думаю, что нужно подавать не только частоту на step, но и считать КОЛИЧЕСТВО поданых импульсов. Например, 1 кГц на 5 секунд = 5 000 импульсов. Т.е. 5 000 импульсов с частотой 1 кГц с разгоном и торможением, затем меняем dir и опять 5000 импульсов с частотой 1 кГц с разгоном и торможением. И посмотреть через пару минут куда сместилась метка на валу двигателя? Так будет корректнее (при том, что автор собирается программировать AVR-ку).
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование драйверов / ШД
Это да, особенно если бы шаги просто пропадали не понять куда. А тут - с шумом и трескомВорон226 писал(а):Думаю, что нужно подавать не только частоту на step, но и считать КОЛИЧЕСТВО поданых импульсов
Кстати, судя по видео, сбои нерегулярные, что скорее всего намекает на случайные помехи, и, видимо, в цепи Dir.
Чудес не бывает. Бывают фокусы.
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Тестирование драйверов / ШД
Кстати, девайс в принципе можно и развить, прицепив к нему энкодер, но они дорогие, сабака.
Мощности восьмой Меги на тактовой 16 МГц я так думаю, должно хватить для чисто программной обработки.
Мощности восьмой Меги на тактовой 16 МГц я так думаю, должно хватить для чисто программной обработки.
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Тестирование драйверов / ШД
Кстати, полезная статья - http://www.problemaemc.narod.ru/emp_z_d.html ЗАЩИТА ОТ ПОМЕХ ДАТЧИКОВ И СОЕДИНИТЕЛЬНЫХ ПРОВОДОВ СИСТЕМ ПРОМЫШЛЕННОЙ АВТОМАТИЗАЦИИ
Хочешь быть счастливым? Будь им!
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Тестирование драйверов / ШД
Спс, ознакомлюсь, правда кабели тут только силовые на движки и шпиндель, как говорят, помехи ловить не должны, но это можно проверить, просто подключить шаговик короткими проводами к драйверу, правда, читал где-то здесь, главное не попутать фазы а то драйвер может сгореть.Ворон226 писал(а):Кстати, полезная статья - http://www.problemaemc.narod.ru/emp_z_d.html ЗАЩИТА ОТ ПОМЕХ ДАТЧИКОВ И СОЕДИНИТЕЛЬНЫХ ПРОВОДОВ СИСТЕМ ПРОМЫШЛЕННОЙ АВТОМАТИЗАЦИИ
Правда, помеху может ловить и на ЛПТ кабеле.
- Ворон226
- Мастер
- Сообщения: 1922
- Зарегистрирован: 01 окт 2012, 18:14
- Репутация: 181
- Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
- Контактная информация:
Re: Тестирование драйверов / ШД
Также можно уменьшить помехи с помощью ферритовых поглотителей для плоских кабелей (ведь они самые помехонезащищенные) и лент-экранов.
Купить можно, например, в ОАО "ТЕХНО" http://www.techno.ru.
Купить можно, например, в ОАО "ТЕХНО" http://www.techno.ru.
Хочешь быть счастливым? Будь им!
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Тестирование драйверов / ШД
Попадалось в Инете, что люди юзали кабели FireWare вместо штатных силовых, видимо, позволяет пропускать токи движков Nema 17, там как раз 4 провода (правда, свитые попарно - не помешаетли? вроде не должно, раз люди делали так) и экран. Доступный в любой деревне вариант, и ждать не надо, пока посыль с заказом придет. Завтра планирую вплотную заняться тестированием, InshAllah, "виновник торжества" будет выявлен
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Тестирование драйверов / ШД
Согласно спецификации FireWire должно обеспечивать питание всего 12V 1A. Причём только по двум проводам, сигнальные легко могут быть тоньше.Rafiq писал(а):Попадалось в Инете, что люди юзали кабели FireWare вместо штатных силовых, видимо, позволяет пропускать токи движков Nema 17
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Тестирование драйверов / ШД
Там скорее всего есть запас по сечению, но все равно стремно юзать, раз по спецификациям не проходит.UAVpilot писал(а):Согласно спецификации FireWire должно обеспечивать питание всего 12V 1A. Причём только по двум проводам, сигнальные легко могут быть тоньше.Rafiq писал(а):Попадалось в Инете, что люди юзали кабели FireWare вместо штатных силовых, видимо, позволяет пропускать токи движков Nema 17
Но силовые кабели в порядке, пробовал на кабеле от оси X - глюки все равно есть.
В общем, я потестил.
Заморачиваться с плавным ускорением/торможением не стал, раз приемистость выше 1 кГц, сделал тупо:
1) Низкий уровень на Dir, ждем 2 сек.
2) Пачка из 5000 импульсов 1 кГц на Step, после чего Step остается на низком уровне
3) Ждем 2 сек.
4) Высокий уровень на Dir
5) Ждем 2 сек.
6) Пачка из 5000 импульсов 1 кГц на Step, после чего Step остается на низком уровне
7) Ждем 2 сек.
8) Переход к п.1
Щелчки наличествуют, значит, LPT, его кабель и софт точно в порядке. После многих циклов туда-обратно заметно смещение начальной позиции.
Ладно, бум копать дальше с осциллом.
Вот исходник прошивки, если кому интересно, PC5 - Step, PC4 - Dir (main.c):
Код: Выделить всё
#include <avr/io.h>
#include <avr/delay.h>
int main()
{
int i;
DDRC = _BV(PC5) | _BV(PC4);
PORTC &= ~(_BV(PC5) | _BV(PC4));
for (;;)
{
PORTC &= ~_BV(PC4);
_delay_ms(2000);
for (i = 0; i<5000; i++)
{
PORTC |= _BV(PC5);
_delay_us(500);
PORTC &= ~_BV(PC5);
_delay_us(500);
}
_delay_ms(2000);
PORTC |= _BV(PC4);
_delay_ms(2000);
for (i = 0; i<5000; i++)
{
PORTC |= _BV(PC5);
_delay_us(500);
PORTC &= ~_BV(PC5);
_delay_us(500);
}
_delay_ms(2000);
}
return 0;
}
Код: Выделить всё
MCU=atmega8
F_CPU=8000000UL
CC=avr-gcc
OBJCOPY=avr-objcopy
CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues
main.out: main.o
$(CC) $(CFLAGS) -o main.out -Wl -Map,main.map main.o
main.o: main.c
$(CC) $(CFLAGS) -Os -c main.c
hex: main.out
$(OBJCOPY) -R .eeprom -O ihex main.out main.hex
flash: main.hex
avrdude -c usbasp -p $(MCU) -U flash:w:main.hex:i
Прошивка: sudo make flash
- Rafiq
- Мастер
- Сообщения: 1053
- Зарегистрирован: 28 сен 2012, 18:11
- Репутация: 6
- Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
- Контактная информация:
Re: Тестирование драйверов / ШД
Кстати, очень удобная макетная плата, жаль только, для SMD не годится
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Тестирование драйверов / ШД
Не грузись. Чтобы на провода двигателей что-то навелось - не верю. Разве что грозовой разряд поблизости. Но тогда контроллер давно бы пустил волшебный синий дым.Rafiq писал(а):Попадалось в Инете, что люди юзали кабели FireWare вместо штатных силовых, видимо, позволяет пропускать токи движков Nema 17, там как раз 4 провода (правда, свитые попарно - не помешаетли? вроде не должно, раз люди делали так) и экран. Доступный в любой деревне вариант, и ждать не надо, пока посыль с заказом придет.
Помеха, в данном случае, скорее всего, как тут и говорили, из-за плохих лог. уровней сигналов. Либо LPT не то, что надо выдает, либо транзистор оптрона не подгружен на питание, либо оптрон дохловат, либо еще что-то не так в цепи Dir.
А вообще, (не в данном случае, скорее всего) помехи в такого рода схемах чаще всего носят не эфирный (емкостной/индуктивный) характер, а гальванический. Чаще всего - из-за неграмотной разводки общего провода (GND). От этого не спасет ни экран, ни ферритовые бусы.
PS: про LPT вопрос снят
Чудес не бывает. Бывают фокусы.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Тестирование драйверов / ШД
А не слишком много? Какой микрошаг стоит?Rafiq писал(а):Заморачиваться с плавным ускорением/торможением не стал, раз приемистость выше 1 кГц, сделал тупо: