Контроллер шагового двигателя на LS7290

olkogr

555 таймер это та еще фигня, на нем легко делать таймер задержки отключения, а вот включения нужна еще куча логики (еще 2 корпуса микрух) я бы делал на тригере.

mura

А зачем делать задержки по питанию? Где написано? Или это “Шоб було”

olkogr
mura:

А зачем делать задержки по питанию? Где написано? Или это “Шоб було” google_ad_section_end

Нужно делать, та как если не будет управляющего напряжения на полевиках, они могут самопроизвольно открытся, и если откроются 2 транзистора полумоста то будет пшик.

8 days later
Evgeny_l

Ну как впечатления от свеже собранных драйверов?

boldive

Двигатель он крутит, но не быстро, быстро почему-то не получается. Не хватает времени полазить по нему с осциллографом и посмотреть откуда ноги растут, может я там с подключением двигателя что-то нахомутал. И очень большие шумы по входу DIR (направление). Соответственно направление движения меняется не очень хорошо. Вот с этим полная загадка. И оптопары менял, и саму LS7290 менял, и напрямую к плате согласования с LPT портом подсоединял, ничего не помогает. Как нулевой уровень, так все нормально, а как высокий уровень, так напряжение не больше 1.5В и всплески с амплитудой до 2В. Откуда они лезут?

Разводку силовой части надо слегка подправить, не совсем удобно транзисторы к радиатору крепить. Я пока ненадолго отложил это дело, купил за 12$ 300-х ватный импульсный блок питания (3.3V, 5V, +12V, -12V) от компаниии PowerOne. Пока только срисовал его схему, скоро займусь переделкой его в 48VDC.

Ну и семье надо время уделять. Катаюсь практически все выходные по просторам провинции Онтарио с палатками, надувными лодками и удочками. Вот сегодня только несколько часов как приехал после очередного 4 дневного похода.

1 month later
boldive

Убрал в сторонку лаптоп и сделал для целей управления станком десктоп. Настроил Mach3 (демоверсия), выставил на драйвере 1/8 шага и начал крутить двигатель в Jog-Mode. Крутится замечательно в обе стороны. На малых оборотах двигатель слегка дрожит а на больших работает ровно и почти бесшумно. Выходные транзисторы стоят без радиаторов и лишь слегка теплые.

Это значит у меня лаптоп по LPT порту всякие шумы выдавал. Потому все вначале криво работало.

Попытался своим 100MHz Tectronix посмотреть что на обмотках мотора творится. Никак не могу засинхронизироваться. То что ШИМ работает вижу, а насколько красивая синусоида или что там еще должно быть не вижу.

Может кто расскажет как и куда щупы осциллографа цеплять и как и к чему его синхронизировать?

ATLab
boldive:


Попытался своим 100MHz Tectronix посмотреть что на обмотках мотора творится. Никак не могу засинхронизироваться. То что ШИМ работает вижу, а насколько красивая синусоида или что там еще должно быть не вижу.

Может кто расскажет как и куда щупы осциллографа цеплять и как и к чему его синхронизировать?

Сам SIN/COS, как он формируется в микросхеме не увидеть, он не выводится наружу.
А посмотреть ток в обмотке, что он соответствует SIN/COS можно, и для этого чем уже полоса пропускания канала Y осциллографа, тем лучше.

  1. Чтобы из ШИМ сигнала выделить форму модулирующего сигнала, нужно его (ШИМ сигнал) пропустить через ФНЧ, достаточно будет просто RC цепи. Имеющийся в схеме ФНЧ R12C9 (R13,C10) для этого не подходит, его частота среза F=1/(6.28*R*C) = 159236 Гц слишком высока, нам нужен ФНЧ с частотой среза 2-3 кГц.
  2. Чтобы не сильно нагружать схему и снизить влияние измерений на работу драйвера, резистор ФНЧ лучше взять побольше - 20-50 кОм.
    Пусть F=3000 Гц, R=47 кОм
    Тогда конденсатор нужен С=1/(3000*6.28*47000)=1100 пФ.
    Емкость конденсатора можно немного увеличить, ничего страшного. Или все пересчитать под имеющиеся элементы.
  3. Полученный ФНЧ подключить к измерительному резистору R18, осциллограф переключить в режим внешней синхронизации, в качестве сигнала синхронизации использовать “Home”.
    К Home должна быть подключена нагрузка R30+GreeenLED, еще лучше между +5 и HOME (вместо или параллельно R30+GreeenLED) временно припаять резистор 3-5 кОм.

См. схему в аттаче.

На вход STEP постоянно подавать сигнал частотой несколько сотен герц, сигнал DIR не трогать, т.е. ШД должен крутиться в одну сторону.
4. Период развертки установить так, чтобы он был примерно равным периоду STEP, например, при частоте STEP 500 Гц, установить развертку (X) 2 мс/клетку.

P.S. Для начала можно попробовать просто подключить осциллограф к R18 без ФНЧ но с указанными параметрами развертки и в режиме внешней синхронизации.

boldive

Подключил щупы напрямую к шунтам. Как раз два канала на два резистора. HOME завел на внешнюю синхронизацию. Вот что вышло.

Нижний канал вроде как красиво что-то показывает а сверху что-то непонятное. Я на всякий случай поменял там две IR2104 и 4 IRF540 но картинка совершенно не поменялась. Поменял обмотки местами, может что с мотором, тоже ничего не поменялось. Пока понятно что это что-то с драйвом. Но мотор крутится красиво и транзисторы слегка теплые. Тестером и пальцами тут уже не обойдешься 😮

Куда теперь смотреть?

ATLab
  1. Установите дробление 1/16
  2. Первый канал подключите к HOME, как и внешнюю синхронизацию.
  3. Развертку (X) установите такую, чтобы на экране было видно 2 импульса HOME
  4. Второй канал подключите сначала к одному измерительному резистору, затем к другому. Осциллограммы сигналов должны быть сдвинуты по фазе на 90 градусов, примерно как на картинках (см. приложение). Там видно, что работает внешняя синхронизация (прорисовка осциллограмм начинается в одном месте экрана) и сигналы сдинуты на 90 градусов.

boldive

Поставил 1/16 шага. Питание драйва 24В. Потребляемый ток 0.5A DC, 0.91A AC (мерял FLUKE189)

Картинки похоже обе неправильные. Синусоиды не видно. Стробы внизу это сигнал HOME.

ATLab
boldive:

Поставил 1/16 шага. Питание драйва 24В. Потребляемый ток 0.5A DC, 0.91A AC (мерял FLUKE189)
Картинки похоже обе неправильные. Синусоиды не видно. Стробы внизу это сигнал HOME.

  1. А какая чувствительность каналов по Y?
    Для строба похоже на 5В/дел, а для сигнала с Rизм сколько?
    Регуляторы плавного изменения чувствительности в положении калиброванного значения?
    Всегда с осциллограммой указывайте параметры чувствительности Y и развертки (X).

  2. Какое установлено напряжение Vref? В даташите я не нашел формулы, которой задается соответствие между Vref и током.
    Если предположить, что
    Imax=Vref/Rsense,
    то выходит, что Vref можно накрутить так, что ток будет слишком большим: 3/0.16=18,75 (А)
    Тогда может быть понятна первая картинка (с плоской вершиной) - ток в ШД не может достичь установленного Vref, Rsense значения.

Вам же нужно 6А? Тогда Vref должно быть 6*1.41*0.16=1.35 В.

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

P.S. Даташит на микросхему писали партизаны под пытками 😵

boldive

3 дня буду работать на работе по 12 часов. Наверно отпишусь в воскресенье. Если получится раньше, то напишу раньше.

boldive

Ну вроде как запустил. Такое впечатление что Vref на LS7290 должно быть для нормальной работы не меньше 1 вольта (по даташиту 0.5В). Тогда появляется синусоида.

Дефекты со вторым каналом решились просто. Я когда паял, использовал специальную пасту с маленькими шариками припоя в ней (специально для пайки SMD компонентов). Под C2, C3, R17, R21 у меня проходят дорожки, вот эти дорожки через остатки пасты под этими элементами и давали такую плохую картинку. Плюс я еще запаял дополнительную перемычку поверх существующих для уменьшения сопротивления между Q2, Q4 (на фотографиях платы видно по две тонких перемычки для каждого моста). Еще C9 оказался с трещиной, совсем случайно обнаружил.

Столкнулся с какой-то мистикой. Ни с того ни с сего с района силовой платы повалил дымок. После выяснения причин оказалось что конденсаторы C2 и C3 пробиты (сопротивление пару ом). Резистор R14 просто испарился. Конденсаторы я купил 100шт на ленте. С той-же ленты запаял два новых. Высокое с силовой части убрал, подавал только 12В и 5В. При первом-же включении опять пошел дымок и уже новые два конденсатора опять превратились в резисторы с почти нулевым сопротивлением. Это меня совсем озадачило потому как остальные элементы были целые и высокое напряжение на силовой части отсутствовало. Тогда взял следующие два кондера и тупо подал на них 12В с блока питания. Подержал их под напряжением пару минут, померял их емкость до и после. Все в норме. Запаял их на плату. Включил и все работает. Так и не понял что это было. Дефектные конденсаторы с одной партии в ленте? Они керамические на 1uF x 25V.

Еще выяснил что моя топология печатной платы наверно хороша для токов до 3А но совершенно не годится для токов больше 3А. Более того, использование падение напряжения на токовом резисторе напрямую на LS7290 для токов 8А очень плохая идея. 1V / 8A = 0.125 Ohm 1V * 8A = 8W
Я полистал каталоги основных продавцов электроники в своей зоне и не нашел ничего подходящего с мощностью рассеивания 8W. Только эти два резистора будут занимать половину площади платы.

Тогда решил спаять усилитель напряжения на сдвоенном MC1458 (другого под руками не оказалось). Вместо R18, R26 запаял в параллель по два резистора на 0.1 Ом. Получился токовый резистор на 0.05 ома.

Вместо двигателя включил две лампочки. Подал напряжение и осциллографом посмотрел что на выходе. А на выходе сидит 5вольт. Откуда оно там? Причем на 2 ноге напряжение где-то 0.2В а на 3 почти ноль. Это неинвертирующий усилитель, на выходе должен быть ноль или близко к нему, но не как не напряжение питания. Картина идентична для обоих каналов. Причем никакого возбуждения на осциллографе я не заметил. Ровная линия в 5вольт.

Теперь вот думаю что дальше делать. Больше 4А я со своей топологии не вытащу. У меня 4 обмотки на двигателе по 4.2А каждая. От параллельного соединения придется отказаться (8.4А мой драйв не выдаст из за громадного тепловыделения на токовых шунтах). Остается последовательное соединение. Тоже неплохо. С 4 амперами проще сражаться.

Может кто подскажет что неправильно в операционном усилителе сделано? Если сигнал с шунтов им усилить и потом подать на LS7290 то проблема почти решена.

При питании 5В напряжение Vsense лежит в пределах 0.5-3В. Если подавать что-то около 2В то контроллер должен красивее работать. Для небольших токов это не проблемма, а в моем случае просто бедствие.

Dj_smart
boldive:

Может кто подскажет что неправильно в операционном усилителе сделано?

Операционник должен допускать работу от однополярного источника питания. В даташите на MC1458 такого не видать. Можно попробовать LM358N, там на 5-й странице есть УПТ с регулируемым КУ.

boldive

Поставил LN358N. Стало заметно получше. Между выходом операционника и входом LS7290 еще поставил резистор на 68ом.

Вот немножко осциллограмм. 24В питание, 1/16 шага. Rsense=0.05 ом. Желаемый ток 4А. Vref=2.43V

Сигналы взяты с токовых резисторов. 2ms развертка, 0,1V/дел

Верхняя синусоида размазана потому как шуп 1:10. На нижней синусоиде щуп 1:1

Тот же режим только сигнал снят с в ног Sense1 and Sence2 LS7290. 2ms, 0.5V/дел

Это режим удержания где-то между шагами. 50us, 0.5V/дел

Видно что в режиме работы ток ток не доходит до 4А, зато в режиме удержания 4А присутствуют. Это как, так LS7290 работает?

В режиме работы синусоида вроде как есть но какая-то она неправильная. Такое ощущение что она после пика просто обрывается.

В режиме работы транзисторы слегка теплые, зато в режиме удержания быстро разогреваются.

Вот спецификация на мотор. У меня SY85STH80-4208A

Может надо к ОУ еще какой фильтр добавить и выкинуть нагрузочное сопротивление на 2.2к?

Dj_smart
boldive:

Видно что в режиме работы ток ток не доходит до 4А, зато в режиме удержания 4А присутствуют

Может недостаточно напряжение питания? В смысле при имеющемся напряжении ток НЕ УСПЕВАЕТ нарастать до заданного?

ATLab

Странные картинки.

  1. Ку ОУ должен быть (по схеме 16), на первой картинке амплитуда 0,08-0,09 В, на второй - примерно 2 В, Ку выходит 22-25.
  2. Амплитуда сигнала с ОУ не дотягивает до установленного опорного.
  3. Драйвер странно работает в режиме малых токов, смотрим на первую картинку:
    при спаде COS на верхней осциллограмме (второй квадрант), на нижней осциллограмме должен идти подъем (1 квадрант SIN), а там довольно долго 0.
  4. В режиме удержания сигналы синфазны, а не сдвинуты на 90 градусов.

Что попробовать:

  1. в схеме ОУ уменьшить конденсатор после 100 Ом в несколько раз
  2. поднять питание до 40-50 Вольт
boldive

Уменьшил емкость емкость конденсатора в схеме ОУ до 2200pf (2.2n)
Убрал резисторы на 2.2k. Ничего не поменялось.

Попробовал крутить мотор побыстрее, картина координально изменилась в худшую сторону. Похоже что 24V для этого двигателя маловато будет. В меньшую сторону крутить не пробовал, а надо было-бы. Но это уже завтра. Сегодня не успеваю.

Блок питания на 48В уже в пути, надеюсь скоро приедет. На тот который сейчас сам переделываю пока времени нет.

boldive

Пообщался сегодня с техподдержкой от LSI. Это те которые LS7290 сделали.

С выбором контроллера я не угадал. Микростепа такого какой он должен быть у нее нет. ШИМ работает только на шаге и полушаге. В остальных случаях надо использовать внешний резистор для ограничения тока. Это было написано в datasheet, но кто-же его так внимательно читал. Это уже потом они этот пункт выделили жирным. И режим работы в 1/4 шага и выше теперь совершенно непонятен. Он есть но пользоваться им нельзя.

ATLab
boldive:

Пообщался сегодня с техподдержкой от LSI. Это те которые LS7290 сделали.
С выбором контроллера я не угадал. Микростепа такого какой он должен быть у нее нет. ШИМ работает только на шаге и полушаге. В остальных случаях надо использовать внешний резистор для ограничения тока. Это было написано в datasheet, но кто-же его так внимательно читал. Это уже потом они этот пункт выделили жирным. И режим работы в 1/4 шага и выше теперь совершенно непонятен. Он есть но пользоваться им нельзя.

Ну да, действительно. Это они мозги заморочили своей фразой про дешевую замену L297. А тогда нафиг она нужна? Да еще по такой цене?
Жалко только потерянное время.

boldive
ATLab:

Жалко только потерянное время.

ну, да, согласен. Еще раз внимательно читаем первое предложение первого сообщения.