Микрошаг - проблема....

ANTONLIGHT

Привет!

Недавно пришла мысль покрутить шаговый движок в микрошаговом режиме. Соорудил платку на PIC16F876. Драйвер для движка - L6219. Опорное напряжение для драйвера формирую при помощи ЦАП. В итоге - PIC управляет фазами двигателя и кидает данные в ЦАП (sin + cos). Все вроде хорошо…Но! На малых оборотах двигателя заметил, что при смене фаз вал подергивается… 😃 Проверил сигналы с контроллера - все в порядке. А теперь самое интересное: в наличии имеется “фирменная плата” построенная примерно также как и моя, но разница лишь в драйвере - у БУРЖУЕВ - NJM3772D2… И вал двигателя не дергается…

Вопрос - кто сталкивался с подобным подергиванием и как решали проблему?! Поиск по форуму ничего не дал…

ATLab
ANTONLIGHT:

… А теперь самое интересное: в наличии имеется “фирменная плата” построенная примерно также как и моя, но разница лишь в драйвере - у БУРЖУЕВ - NJM3772D2… И вал двигателя не дергается…

Все дело в “примерно”: пока не известны детали аппаратной и программной реализации, нет осциллограмм, никто не скажет в чем дело. “Дьявол кроется в деталях…” (с) … не я

ANTONLIGHT

Ок! Попробую описать…
Программа реализованна следущим образом.

  1. ставлю фазы в обмотках - “01”-1 обмотка “01”-2 обмотка
    регулирую ток в в 1 обмотке по таблице cos, а во 2-ой по sin.

  2. ставлю фазы в обмотках - “10”-1 обмотка “01”-2 обмотка
    регулирую ток в в 1 обмотке по таблице sin, а во 2-ой по cos.

  3. ставлю фазы в обмотках - “10”-1 обмотка “10”-2 обмотка
    регулирую ток в в 1 обмотке по таблице cos, а во 2-ой по sin.

  4. ставлю фазы в обмотках - “01”-1 обмотка “10”-2 обмотка
    регулирую ток в в 1 обмотке по таблице sin, а во 2-ой по cos.

В прикрепленном файле принципиальная схема в pdf формате. Осциллограм нету 😊 . Осциллографа нету…Но наверно напрягусь и притащу его…

Не в pdf… Говорит нет прав…Только JPG… 😠

ATLab
ANTONLIGHT:


В прикрепленном файле принципиальная схема в pdf формате. Осциллограм нету
Осциллографа нету…Но наверно напрягусь и притащу его…

Если при упоминании SIN и COS имелся ввиду первый квадрант (0-90 град.), то раскладка выглядит правильно.
А какой ЦАП? Ничего не перепутано с разрядами и подключением к опорному?
Подозрительно выглядит на схеме подача +5 на outA (outB-), в то время как опорное на L6219 подается с ног VrefA (VreB-) - по уму-то должно быть наоборот (если в обозначении на микросхеме ничего не перепутано).

Подключение L6219 не смотрел, надеюсь все по datasheet.

Не возникает ли ситуации, когда двигатель можно раскрутить в обе стороны (вручную)?
Если это так, то выходы ЦАП (или их адресация в программе) перепутаны - на осциллограмме SENSE1(2) посередине SIN будет хорошо видно провал.

ANTONLIGHT
ATLab:

Если при упоминании SIN и COS имелся ввиду первый квадрант (0-90 град.), то раскладка выглядит правильно.
А какой ЦАП? Ничего не перепутано с разрядами и подключением к опорному?
Подозрительно выглядит на схеме подача +5 на outA (outB-), в то время как опорное на L6219 подается с ног VrefA (VreB-) - по уму-то должно быть наоборот (если в обозначении на микросхеме ничего не перепутано).

Подключение L6219 не смотрел, надеюсь все по datasheet.

Не возникает ли ситуации, когда двигатель можно раскрутить в обе стороны (вручную)?
Если это так, то выходы ЦАП (или их адресация в программе) перепутаны - на осциллограмме SENSE1(2) посередине SIN будет хорошо видно провал.

ЦАП - TLC7528. У них по даташиту есть вариант такого подключения…Не перепутано…

L6219 по даташиту. Проверял…

Раскрутить в разные стороны…Неа…Он блин упирается… 😃

А по поводу раскладки подробней, если можно…

вот из даташита

ATLab
ANTONLIGHT:

ЦАП - TLC7528. У них по даташиту есть вариант такого подключения…Не перепутано…

Понятно: экономия на операционном усилителе. Надо смотреть осциллографом. В документации на L6219 нет входных токов по Uref, может он садит напряжение ЦАП?

А по поводу раскладки подробней, если можно…

Да все правильно было написано. Картинки можно посмотреть
rcopen.com/forum/f110/topic60014
Смысл картинок не меняется от типа двигателя - униполярный или биполярный - вся разница в том, что в униполярном фазный сигнал выбирает половину обмотки через которую течет ток, а в биполярном он определяет направление протекания тока в обмотке.

А обмотки двигателя включены правильно?

ANTONLIGHT

По поводу Vref. Попробую посмотреть сигнал через звуковуху. Мож действительно что-то там не так… Где-то читал, что некоторые драйвера плохо “переносят” низкое опорное напряжение.

Обмотки думаю правильно включены. Иначе бы вал не вращался. Напомню, проблема в том, что при очень низких скоростях заметно подергивание вала. И происходит это при смене фазы…

Знаете…При наблюдении за валом, в момент подергивания, возникло ощущение, что в момент смены фазы он как-бы устремляется к “следующему” квадранту, но предыдущий квадрант до самого конца не доходит…И вот этот самый промежуток работы и есть этот “глюк”…Объяснил как смог… 😊

Anton_M

на ввл диск прицепите с рисками и рядом отметину укремпите и на видео снимите - на покадровке все будет видно. снимать можно именно край диска с рисками крупно.

ATLab
ANTONLIGHT:

По поводу Vref. Попробую посмотреть сигнал через звуковуху. Мож действительно что-то там не так… Где-то читал, что некоторые драйвера плохо “переносят” низкое опорное напряжение.

Обмотки думаю правильно включены. Иначе бы вал не вращался. Напомню, проблема в том, что при очень низких скоростях заметно подергивание вала. И происходит это при смене фазы…

Знаете…При наблюдении за валом, в момент подергивания, возникло ощущение, что в момент смены фазы он как-бы устремляется к “следующему” квадранту, но предыдущий квадрант до самого конца не доходит…И вот этот самый промежуток работы и есть этот “глюк”…Объяснил как смог… 😊

А WDT в конфигурации отключен? Может это он периодически дергает программу?

ANTONLIGHT

Сторожевой таймер отключен… Я работаю с отладчиком ICD-2…У него это одно из требований…

Я вот чего подумал…Мож дело в ЦАП? Я намедни порылся в даташите на него, и если правильно понял англицкий, то в этом включении ЦАП нелинеен… Да к томуе же вместо 2,5В я даю ему 5…Попробую снять характеристику…

Anton_M

попробуй пока звуковую карту ПК и звуковой редактор.

ATLab
ANTONLIGHT:

Не могу найти осциллограф… 😵

Удивительно: есть ICD-2 и нет осциллографа. А как же железо налаживать? Без линейки не измерить длины, без микрометра не измерить точно размер, без …

ANTONLIGHT

Да есть у меня С1-73…Только поломался… 😕 в ремонт отдал, самому лень… А редактором пробовал - странный рисунок получается, близкий к синусоиде, но есть моменты интересные. Честно говоря я грешу на кондеры в звуковухе…

ATLab
ANTONLIGHT:

Да есть у меня С1-73…Только поломался… 😕 в ремонт отдал, самому лень… А редактором пробовал - странный рисунок получается, близкий к синусоиде, но есть моменты интересные. Честно говоря я грешу на кондеры в звуковухе…

Если это SIN и COS - то неправильно, по картинке разность фаз 180 град. а должно быть 90

ANTONLIGHT
ATLab:

Если это SIN и COS - то неправильно, по картинке разность фаз 180 град. а должно быть 90

Стоп! Как так? Скорее всего просто не так поняли…Я сделал на рисунке пометки. Посмотрите. У меня биполярный движок, соответственно мне нужно менять направление тока в обмотках. Что я делаю переключая фазы. А ток регулирую от 0 до Max.
В соответствии мануалу L6219:

  1. Ставлю фазы 0 - 0. В этот момент ток в 1 обмотке макс., а во 2-ой минимальный. Начинаю уменьшать ток в 1 обмотке, а во 2-ой увеличивать.

  2. Ставлю фазы 1 - 0. В этот момент ток в 1 обмотке мин., а во 2-ой максимальный. Начинаю увеличивать ток в 1 обмотке, а во 2-ой уменшать.

  3. Ставлю фазы 1 - 1. В этот момент ток в 1 обмотке макс., а во 2-ой минимальный. Начинаю уменьшать ток в 1 обмотке, а во 2-ой увеличивать.

  4. Ставлю фазы 0 - 1. В этот момент ток в 1 обмотке мин., а во 2-ой максимальный. Начинаю увеличивать ток в 1 обмотке, а во 2-ой уменшать.

И все снова…

На деле sin и cos…

Мож я где ошибаюсь…Для этого я на форуме… 😃

ATLab
ANTONLIGHT:

Стоп! Как так? Скорее всего просто не так поняли…Я сделал на рисунке пометки. Посмотрите. У меня биполярный движок, соответственно мне нужно менять направление тока в обмотках. Что я делаю переключая фазы. А ток регулирую от 0 до Max.

На деле sin и cos…

Мож я где ошибаюсь…Для этого я на форуме… 😃

Если на картинке осциллограмма, снятая одновременно по каналам, то НЕПРАВИЛЬНО.
Повторю еще раз: разность фаз должна быть 90 градусов, а у Вас 180.
Посмотрите еще раз мои картинки в ветке rcopen.com/forum/f110/topic60014
Там у меня SIN и COS выглядят как модуль соответствующей функции. Аналогично должно быть и у Вас, а направление тока в обмотке определяется мостом.
Звуковая карта, скорее всего, обрезает постоянную составляющую, но форма и фазовое соотношение сигналов должны сохраняться.

ANTONLIGHT

Вот график…Осциллограф надыбал однолучевой…Жаль нет возможности смотреть одновременно 2 канала…Подергивания вала все равно остались…

ATLab
ANTONLIGHT:

Вот график…Осциллограф надыбал однолучевой…Жаль нет возможности смотреть одновременно 2 канала…Подергивания вала все равно остались…

Нормальная картинка. Осталось посмотреть сдвиг фаз:

  • взять любой сигнал Phase L6219 и подать его на вход внешней синхронизации, осциллограф переключить в режим внешней синхронизации
  • посмотреть сам сигнал Phase, сделать засечки
  • посмотреть второй сигнал Phase - должен быть сдвинут на 90 град
  • посмотреть SIN и COS - они должны быть синфазны с соответствующими Phase.

Если осциллограммы не дергаются - дерганья вала быть не должно.

А Step откуда берется? Может он дергается?

ANTONLIGHT
ATLab:

А Step откуда берется? Может он дергается?

Привет! А какой STEP? У меня 4 сигнала - 1 фаза и 1 Vref, 2 фаза и 2 Vref…

ANTONLIGHT

Вообщем так…

  • второй сигнал Phase - сдвинут на 90 град
  • SIN и COS - они синфазны с соответствующими Phase.

Прихожу к выводу, что проблема либо в самом двигателе, либо в драйвере. Подключил другой двигатель - подергивание меньше, но есть.

Обратил внимание на то, что подергивание происходит при следующем условии. (см.рисунок)

ATLab
ANTONLIGHT:

Вообщем так…

  • второй сигнал Phase - сдвинут на 90 град
  • SIN и COS - они синфазны с соответствующими Phase.
    Прихожу к выводу, что проблема либо в самом двигателе, либо в драйвере. Подключил другой двигатель - подергивание меньше, но есть.
    Обратил внимание на то, что подергивание происходит при следующем условии. (см.рисунок)

Классика: очень многие ШИМ контроллеры плохо работают с малыми токами, а уж с 0 вообще не знают что делать. Выводы:

  1. L6219 не очень хорошо подходит для такого мелкого дробления шага, какой я увидел на предыдущей осциллограмме
  2. для начала экспериментов нужно было выяснить (экспериментально) с каким минимальным Uref еще работает L6219 и из этого исходить выбирая дробление и амплитуду опорного напряжения
  3. в моменты, когда Iобм. должен быть равен 0, нужно апппаратно запрещать протекание тока в обмотке
    и т.д.
ANTONLIGHT

Спасибо за “разбирательство”…

Это всего опыт…Но теперь многое встало на свои места…
Для серьезных вещей буду использовать 3772D2 - уж она обеспечит необходимый микрошаг! 😋 Ну и ШИМ надо прорубить! Там где не требуется большая точность, но цениться низкий шум - лучший вариант. Это вывод из наблюдения схемотехники многих приборов разных фирм мира…Есть такая возможность…

Огромное спасибо за участие в обсуждении ATLabу…

Anton_M

Да. слишком большой динамический диапазон регулирования тока.

Какую же микруху выбрать как задатчик шагания и регулятор ШИМ ?

Н-мост то собрать на драйверах irs2110 не большая проблема даже килогерц на 100.

ATLab
ANTONLIGHT:

Для серьезных вещей буду использовать 3772D2 - уж она обеспечит необходимый микрошаг! 😋 Ну и ШИМ надо прорубить! Там где не требуется большая точность, но цениться низкий шум - лучший вариант…

Не слабовата 772D2 для серьезных применений? Может, стоит посмотреть в сторону Allegro?
Не совсем понял про ШИМ, точность и шум, но, пожалуста 😃

P.S. А что за любовь к New Japan Radio? Не самая известная фирма и микросхемы не самые распространенные… Или “дядя на гуталиновой фабрике”?

Anton_M:

Да. слишком большой динамический диапазон регулирования тока.
Какую же микруху выбрать как задатчик шагания и регулятор ШИМ ?

Нет, не слишком большой: для 1/16 уровень первой ступеньки составляет 9,8% от амплитудного значения, т.е. динамический диапазон чуть больше 11. Всего.
Микросхему можно взять любую: ЦАП, ШИМ в микроконтроллере, подойдут даже цифровые потенциометры. Что удобнее или доступнее.