Страница 1 из 3
Тестирование драйверов / ШД
Добавлено: 08 окт 2012, 10:17
Rafiq
Надо локализовать проблему пропуска шагов при вращении против часовой стрелки. Посоветовали собрать мультивибратор, чтобы исключить из рассмотрения LPT и софт. Решил сделать на ATMega8 таким образом, чтобы подавать на Step 1 кГц, на Dir 0.1 Гц, иными словами, 5 сек крутит в одном направлении, затем 5 сек. в другом. И что-то я засомневался, а можно ли резко менять направление вращения? Хотя частота на Step невысокая, а момент инерции - только сам ротор и муфта (двигатель отсоединяю от станка), не поплохеет ли движку, и особенно драйверу от резкой смены направления, получается же торможение противовключением.
Re: Тестирование драйверов / ШД
Добавлено: 08 окт 2012, 10:31
2cme
Rafiq писал(а):И что-то я засомневался, а можно ли резко менять направление вращения?
Резко менять направление можно, но должно быть наростание/спад скорости с ускорением, например в Mach3 есть такой параметр "тюнинга моторов": "Acceleration in's or mm's/sec/sec.
Правильно что решил на МК делать (;
Re: Тестирование драйверов / ШД
Добавлено: 08 окт 2012, 10:44
Rafiq
В принципе, на МК можно просто плавно снижать частоту на Step перед переключением Dir, а после плавно повышать.
Re: Тестирование драйверов / ШД
Добавлено: 08 окт 2012, 18:29
Сергей Саныч
Rafiq писал(а): можно ли резко менять направление вращения?
Можно. Тем более у таких маленьких ШД. Максимум, чем грозит - пропуском шагов.
Для каждого ШД есть предельная частота, на которой он способен стартовать (частота приемистости). Если "с места в карьер" подать более высокую частоту, двигатель просто будет пищать, но не закрутится. Обычно частота приемистости в несколько раз ниже той, с которой способен работать двигатель при плавном разгоне. Эта частота для старых советских ДШИ-200 была, если мне не изменяет память, 1000 шагов/сек, а раскручивался он до 5000 шагов/сек. Для Nema 17 - не знаю, но явно выше.
По контроллеру - ЭДС, вырабатываемая ШД при торможении, может вызывать подзаряд выходных конденсаторов ИП до напряжения выше номинального напряжения ИП. Это не есть хорошо, и теоретически может привести к выходу контроллера из строя.
Но это, IMHO, не твой случай.
Кстати, у тебя проблема наблюдается на всех скоростях?
Re: Тестирование драйверов / ШД
Добавлено: 08 окт 2012, 19:11
Rafiq
Да, на всех.
Видео:
https://www.youtube.com/watch?v=Jpo8UCs1zdo
Здесь подача (по настройкам LinuxCNC) 192 мм/мин.
На максимальной скорости (1980 мм/мин.) щелчки гораздо реже, но все равно есть.
Когда по часовой кручу, все в норме. Тут уже говорили, что видимо Dir помехи ловит, когда на низком (или высоком) уровне, или подтяжка слабая к высокому уровню.
P.S. Как назло, забыл на работе программатор для AVR

Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 04:48
Сергей Саныч
Rafiq писал(а):Да, на всех.
Тогда проще всего подать на Step прямоугольники 500..1000 Гц и не заморачиваться с разгоном-торможением.
А на Dir - тот лог. уровень, при котором ожидаются сбои.
Rafiq писал(а):Как назло, забыл на работе программатор для AVR

А сделал бы на паре инверторов (элементов НЕ, а не то чем шпиндели крутят

) или на одном ТШ, уже бы все проверил.
Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 06:46
Ворон226
Думаю, что нужно подавать не только частоту на step, но и считать КОЛИЧЕСТВО поданых импульсов. Например, 1 кГц на 5 секунд = 5 000 импульсов. Т.е. 5 000 импульсов с частотой 1 кГц с разгоном и торможением, затем меняем dir и опять 5000 импульсов с частотой 1 кГц с разгоном и торможением. И посмотреть через пару минут куда сместилась метка на валу двигателя? Так будет корректнее (при том, что автор собирается программировать AVR-ку).
Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 07:29
Rafiq
Serg-tmn писал(а):
Rafiq писал(а):Как назло, забыл на работе программатор для AVR

А сделал бы на паре инверторов (элементов НЕ, а не то чем шпиндели крутят

) или на одном ТШ, уже бы все проверил.
У меня в хозяйстве давно уже нет ни одной микрухи с мелкой логикой

Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 07:32
Rafiq
Ворон226 писал(а):Думаю, что нужно подавать не только частоту на step, но и считать КОЛИЧЕСТВО поданых импульсов. Например, 1 кГц на 5 секунд = 5 000 импульсов. Т.е. 5 000 импульсов с частотой 1 кГц с разгоном и торможением, затем меняем dir и опять 5000 импульсов с частотой 1 кГц с разгоном и торможением. И посмотреть через пару минут куда сместилась метка на валу двигателя? Так будет корректнее (при том, что автор собирается программировать AVR-ку).
Идея хорошая

так и сделаю.
Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 07:43
Сергей Саныч
Ворон226 писал(а):Думаю, что нужно подавать не только частоту на step, но и считать КОЛИЧЕСТВО поданых импульсов
Это да, особенно если бы шаги просто пропадали не понять куда. А тут - с шумом и треском

Кстати, судя по видео, сбои нерегулярные, что скорее всего намекает на случайные помехи, и, видимо, в цепи Dir.
Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 07:56
Rafiq
Кстати, девайс в принципе можно и развить, прицепив к нему энкодер, но они дорогие, сабака.
Мощности восьмой Меги на тактовой 16 МГц я так думаю, должно хватить для чисто программной обработки.
Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 20:14
Ворон226
Кстати, полезная статья -
http://www.problemaemc.narod.ru/emp_z_d.html ЗАЩИТА ОТ ПОМЕХ ДАТЧИКОВ И СОЕДИНИТЕЛЬНЫХ ПРОВОДОВ СИСТЕМ ПРОМЫШЛЕННОЙ АВТОМАТИЗАЦИИ
Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 20:55
Rafiq
Спс, ознакомлюсь, правда кабели тут только силовые на движки и шпиндель, как говорят, помехи ловить не должны, но это можно проверить, просто подключить шаговик короткими проводами к драйверу, правда, читал где-то здесь, главное не попутать фазы а то драйвер может сгореть.
Правда, помеху может ловить и на ЛПТ кабеле.
Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 21:05
Ворон226
Также можно уменьшить помехи с помощью ферритовых поглотителей для плоских кабелей (ведь они самые помехонезащищенные) и лент-экранов.
Купить можно, например, в ОАО "ТЕХНО"
http://www.techno.ru.
Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 21:12
Rafiq
Попадалось в Инете, что люди юзали кабели FireWare вместо штатных силовых, видимо, позволяет пропускать токи движков Nema 17, там как раз 4 провода (правда, свитые попарно - не помешаетли? вроде не должно, раз люди делали так) и экран. Доступный в любой деревне вариант, и ждать не надо, пока посыль с заказом придет. Завтра планирую вплотную заняться тестированием, InshAllah, "виновник торжества" будет выявлен

Re: Тестирование драйверов / ШД
Добавлено: 09 окт 2012, 22:18
Serg
Rafiq писал(а):Попадалось в Инете, что люди юзали кабели FireWare вместо штатных силовых, видимо, позволяет пропускать токи движков Nema 17
Согласно спецификации FireWire должно обеспечивать питание всего 12V 1A. Причём только по двум проводам, сигнальные легко могут быть тоньше.
Re: Тестирование драйверов / ШД
Добавлено: 10 окт 2012, 10:09
Rafiq
UAVpilot писал(а):Rafiq писал(а):Попадалось в Инете, что люди юзали кабели FireWare вместо штатных силовых, видимо, позволяет пропускать токи движков Nema 17
Согласно спецификации FireWire должно обеспечивать питание всего 12V 1A. Причём только по двум проводам, сигнальные легко могут быть тоньше.
Там скорее всего есть запас по сечению, но все равно стремно юзать, раз по спецификациям не проходит.
Но силовые кабели в порядке, пробовал на кабеле от оси 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;
}
Мэйкфайл для avr-gcc (Makefile):
Код: Выделить всё
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
Сборка: make hex
Прошивка: sudo make flash
Re: Тестирование драйверов / ШД
Добавлено: 10 окт 2012, 10:20
Rafiq
Кстати, очень удобная макетная плата, жаль только, для SMD не годится

Re: Тестирование драйверов / ШД
Добавлено: 10 окт 2012, 11:33
Сергей Саныч
Rafiq писал(а):Попадалось в Инете, что люди юзали кабели FireWare вместо штатных силовых, видимо, позволяет пропускать токи движков Nema 17, там как раз 4 провода (правда, свитые попарно - не помешаетли? вроде не должно, раз люди делали так) и экран. Доступный в любой деревне вариант, и ждать не надо, пока посыль с заказом придет.
Не грузись. Чтобы на провода двигателей что-то навелось - не верю. Разве что грозовой разряд поблизости. Но тогда контроллер давно бы пустил волшебный синий дым.
Помеха, в данном случае, скорее всего, как тут и говорили, из-за плохих лог. уровней сигналов. Либо LPT не то, что надо выдает, либо транзистор оптрона не подгружен на питание, либо оптрон дохловат, либо еще что-то не так в цепи Dir.
А вообще, (не в данном случае, скорее всего) помехи в такого рода схемах чаще всего носят не эфирный (емкостной/индуктивный) характер, а гальванический. Чаще всего - из-за неграмотной разводки общего провода (GND). От этого не спасет ни экран, ни ферритовые бусы.
PS: про LPT вопрос снят

Re: Тестирование драйверов / ШД
Добавлено: 10 окт 2012, 12:21
Nick
Rafiq писал(а):Заморачиваться с плавным ускорением/торможением не стал, раз приемистость выше 1 кГц, сделал тупо:
А не слишком много? Какой микрошаг стоит?