Тестирование драйверов / ШД

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
Rafiq
Мастер
Сообщения: 1053
Зарегистрирован: 28 сен 2012, 18:11
Репутация: 6
Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
Контактная информация:

Тестирование драйверов / ШД

Сообщение Rafiq »

Надо локализовать проблему пропуска шагов при вращении против часовой стрелки. Посоветовали собрать мультивибратор, чтобы исключить из рассмотрения LPT и софт. Решил сделать на ATMega8 таким образом, чтобы подавать на Step 1 кГц, на Dir 0.1 Гц, иными словами, 5 сек крутит в одном направлении, затем 5 сек. в другом. И что-то я засомневался, а можно ли резко менять направление вращения? Хотя частота на Step невысокая, а момент инерции - только сам ротор и муфта (двигатель отсоединяю от станка), не поплохеет ли движку, и особенно драйверу от резкой смены направления, получается же торможение противовключением.
2cme
Почётный участник
Почётный участник
Сообщения: 1043
Зарегистрирован: 24 янв 2012, 13:18
Репутация: -209

Re: Тестирование драйверов / ШД

Сообщение 2cme »

Rafiq писал(а):И что-то я засомневался, а можно ли резко менять направление вращения?
Резко менять направление можно, но должно быть наростание/спад скорости с ускорением, например в Mach3 есть такой параметр "тюнинга моторов": "Acceleration in's or mm's/sec/sec.
Правильно что решил на МК делать (;
Аватара пользователя
Rafiq
Мастер
Сообщения: 1053
Зарегистрирован: 28 сен 2012, 18:11
Репутация: 6
Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение Rafiq »

В принципе, на МК можно просто плавно снижать частоту на 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: Тестирование драйверов / ШД

Сообщение Rafiq »

Да, на всех.
Видео:
https://www.youtube.com/watch?v=Jpo8UCs1zdo
Здесь подача (по настройкам LinuxCNC) 192 мм/мин.
На максимальной скорости (1980 мм/мин.) щелчки гораздо реже, но все равно есть.
Когда по часовой кручу, все в норме. Тут уже говорили, что видимо Dir помехи ловит, когда на низком (или высоком) уровне, или подтяжка слабая к высокому уровню.

P.S. Как назло, забыл на работе программатор для AVR :(
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение Сергей Саныч »

Rafiq писал(а):Да, на всех.
Тогда проще всего подать на Step прямоугольники 500..1000 Гц и не заморачиваться с разгоном-торможением.
А на Dir - тот лог. уровень, при котором ожидаются сбои.
Rafiq писал(а):Как назло, забыл на работе программатор для AVR :(
А сделал бы на паре инверторов (элементов НЕ, а не то чем шпиндели крутят :) ) или на одном ТШ, уже бы все проверил.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение Ворон226 »

Думаю, что нужно подавать не только частоту на 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: Тестирование драйверов / ШД

Сообщение Rafiq »

Serg-tmn писал(а):
Rafiq писал(а):Как назло, забыл на работе программатор для AVR :(
А сделал бы на паре инверторов (элементов НЕ, а не то чем шпиндели крутят :) ) или на одном ТШ, уже бы все проверил.
У меня в хозяйстве давно уже нет ни одной микрухи с мелкой логикой :D :D
Аватара пользователя
Rafiq
Мастер
Сообщения: 1053
Зарегистрирован: 28 сен 2012, 18:11
Репутация: 6
Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение Rafiq »

Ворон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: Тестирование драйверов / ШД

Сообщение Rafiq »

Кстати, девайс в принципе можно и развить, прицепив к нему энкодер, но они дорогие, сабака.
Мощности восьмой Меги на тактовой 16 МГц я так думаю, должно хватить для чисто программной обработки.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение Ворон226 »

Кстати, полезная статья - http://www.problemaemc.narod.ru/emp_z_d.html ЗАЩИТА ОТ ПОМЕХ ДАТЧИКОВ И СОЕДИНИТЕЛЬНЫХ ПРОВОДОВ СИСТЕМ ПРОМЫШЛЕННОЙ АВТОМАТИЗАЦИИ
Хочешь быть счастливым? Будь им!
Аватара пользователя
Rafiq
Мастер
Сообщения: 1053
Зарегистрирован: 28 сен 2012, 18:11
Репутация: 6
Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение Rafiq »

Ворон226 писал(а):Кстати, полезная статья - http://www.problemaemc.narod.ru/emp_z_d.html ЗАЩИТА ОТ ПОМЕХ ДАТЧИКОВ И СОЕДИНИТЕЛЬНЫХ ПРОВОДОВ СИСТЕМ ПРОМЫШЛЕННОЙ АВТОМАТИЗАЦИИ
Спс, ознакомлюсь, правда кабели тут только силовые на движки и шпиндель, как говорят, помехи ловить не должны, но это можно проверить, просто подключить шаговик короткими проводами к драйверу, правда, читал где-то здесь, главное не попутать фазы а то драйвер может сгореть.

Правда, помеху может ловить и на ЛПТ кабеле.
Аватара пользователя
Ворон226
Мастер
Сообщения: 1922
Зарегистрирован: 01 окт 2012, 18:14
Репутация: 181
Откуда: Солнечногорск Московской обл. - Борки Конаковского р-на - Скоморохово Фировского р-на
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение Ворон226 »

Также можно уменьшить помехи с помощью ферритовых поглотителей для плоских кабелей (ведь они самые помехонезащищенные) и лент-экранов.
Купить можно, например, в ОАО "ТЕХНО" http://www.techno.ru.
Хочешь быть счастливым? Будь им!
Аватара пользователя
Rafiq
Мастер
Сообщения: 1053
Зарегистрирован: 28 сен 2012, 18:11
Репутация: 6
Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение Rafiq »

Попадалось в Инете, что люди юзали кабели FireWare вместо штатных силовых, видимо, позволяет пропускать токи движков Nema 17, там как раз 4 провода (правда, свитые попарно - не помешаетли? вроде не должно, раз люди делали так) и экран. Доступный в любой деревне вариант, и ждать не надо, пока посыль с заказом придет. Завтра планирую вплотную заняться тестированием, InshAllah, "виновник торжества" будет выявлен :)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение Serg »

Rafiq писал(а):Попадалось в Инете, что люди юзали кабели FireWare вместо штатных силовых, видимо, позволяет пропускать токи движков Nema 17
Согласно спецификации FireWire должно обеспечивать питание всего 12V 1A. Причём только по двум проводам, сигнальные легко могут быть тоньше.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Rafiq
Мастер
Сообщения: 1053
Зарегистрирован: 28 сен 2012, 18:11
Репутация: 6
Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение 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
Аватара пользователя
Rafiq
Мастер
Сообщения: 1053
Зарегистрирован: 28 сен 2012, 18:11
Репутация: 6
Откуда: Tatarstan Respublikası, Yar Çallı şəhəre
Контактная информация:

Re: Тестирование драйверов / ШД

Сообщение Rafiq »

Кстати, очень удобная макетная плата, жаль только, для SMD не годится :D
Вложения
IMG_1438.JPG (3648 просмотров) <a class='original' href='./download/file.php?id=8420&sid=a2f8c77bea5d0a5466653582544d6e66&mode=view' target=_blank>Загрузить оригинал (2.66 МБ)</a>
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 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: Тестирование драйверов / ШД

Сообщение Nick »

Rafiq писал(а):Заморачиваться с плавным ускорением/торможением не стал, раз приемистость выше 1 кГц, сделал тупо:
А не слишком много? Какой микрошаг стоит?
Ответить

Вернуться в «Электроника»