Взаимодействие с (двумя) полномостовыми ШИМ-драйверами для управления шаговым двигателем

Я работаю над интерфейсом с существующей печатной платой со встроенными микросхемами драйвера двигателя Full Bridge PWM , которые управляют шаговым двигателем. В интерфейсе отсутствуют какие-либо стандартные сигналы шага (часы) или сигналы направления, и я могу использовать только имеющиеся входные сигналы. Для управления каждым шаговым двигателем есть две микросхемы, это Allegro A3959 . Я хочу оставить все как есть, поэтому я могу работать только с тем, что разбито, но я могу добавить интерфейсный чип, используя доступные входы.

Я хотел бы добавить новый контроллер для управления микросхемами, который может обеспечивать только стандартные выходы «шаг (часы) и направление». Как я могу это сделать? Я думал об использовании микросхемы контроллера шагового двигателя L297 в качестве посредника, но с ограниченными входами (и без доступа к чувствительным резисторам) я не верю, что смогу его использовать. Даже если бы у меня был доступ к сенсорным резисторам, я не знаю, как бы я их подключил.

Для простоты. Я создал очень обобщенную схему того, что у меня есть (выводы обобщены):

Плата распределения питания

Как видите, у меня есть только следующие контакты:

  • Фаза А (направление)
  • V REF A (текущая регулировка)
  • Фаза Б (направление)
  • V REF B (текущая регулировка)
  • Сон (управляет многими микросхемами на плате и не может считаться пульсирующим)

Насколько я понимаю, я могу легко контролировать направление через контакты фазы A/B. Цифровой сигнал 0 для одного направления, цифровой сигнал 1 для противоположного направления. Как мне управлять V REF с помощью тактового входного сигнала?

В техническом описании A3959 указано следующее:

" Регулирование тока. Ток нагрузки регулируется внутренней схемой управления ШИМ с фиксированным временем отключения. Когда выходы моста DMOS H включены, ток в обмотке двигателя увеличивается до тех пор, пока не достигнет значения срабатывания, определяемого внешним чувствительным резистором. (RS ) и приложенное аналоговое опорное напряжение (V REF ):

I TRIP = V REF / (10 * R S )

В точке срабатывания компаратор считывания сбрасывает защелку включения источника, отключая драйвер источника. Затем индуктивность нагрузки вызывает рециркуляцию тока в течение фиксированного периода времени отключения. Путь тока во время рециркуляции определяется конфигурацией режима медленного/смешанного/быстрого затухания тока».

Это похоже на тактовый сигнал? (Примечание: I TRIP уже точно рассчитан для тока двигателя, когда V REF составляет полные 5 вольт.)

Если бы я поставил 100% V REF , увеличилось бы оно до 100%, произвело бы один единственный шаг, отключилось бы, а затем выжидало фиксированное время, прежде чем снова включиться?

Будет ли постоянный V REF поддерживать работу двигателя, автоматически пульсируя?

Полные настройки чипов в текущей конфигурации следующие:

  • Контакт включения удерживается постоянно высоким.

«Если разрешение поддерживается высоким, ток будет расти, пока не достигнет уровня, установленного внутренней схемой управления током».

  • Режим EXT удерживается постоянно на низком уровне. Распад = быстрый.

«С низким уровнем EXT MODE, режимом быстрого затухания, противоположная пара выбранных выходов будет включена во время цикла выключения».

  • Внутренние выводы режима управления током постоянно удерживаются на высоком уровне. Затухание = быстрое, %t OFF = 100%.
  • Таймер холостого хода ШИМ поддерживается постоянно низким. T BLANK = 6 / F ОСЦИЛЯТОР .
  • F ОСЦИЛАТОР должен иметь типичное значение 4 МГц.
  • Фиксированное время отключения обычно составляет 24 мкс для генератора с частотой 4 МГц.
  • Логика сна используется для минимизации энергопотребления. Его не следует использовать вместо включения.

Обычно я хорошо разбираюсь в драйверах шаговых двигателей. Тем не менее, все драйверы шаговых двигателей, с которыми я взаимодействую, практически всегда имеют шаг (часы)/направление в качестве стандартного ввода. Поскольку это схема прерывателя фазы/разрешения , для ее понимания потребуется больше опыта (или специализированная микросхема контроллера).

Каков наилучший подход?

Это было полезно, но на самом деле ничего не помогает мне реализовать: embedded.com/print/4217719
Это выглядит многообещающе: ti.com/lit/an/slva416/slva416.pdf

Ответы (1)

Похоже, что A3959 предназначен для управления щеточным двигателем постоянного тока, когда подача напряжения в одном направлении приводит к непрерывному вращению, поэтому вход PHASE действует как управление вперед/назад. Для шагового двигателя вам необходимо подать двухфазные сигналы в правильной последовательности, чтобы получить движение в любом направлении введите описание изображения здесь(это рисунок 3 по вашей ссылке - https://www.embedded.com/print/4217719 ).

В результате у вас есть два таких чипа драйвера, и вы должны выдать этот сигнал на них обоих. L297 с часами и вводом направления сделает это. Вам нужно будет использовать только два выхода, такие как A и C, в «нормальном режиме», поскольку A3959 генерирует дополнительный привод для другой стороны моста.

«Это похоже на тактовый сигнал? (Примечание: ITRIP уже точно рассчитан для тока двигателя, когда VREF составляет полные 5 вольт.)» Нет, это напряжение постоянного тока, которое устанавливает уровень, при котором работает ограничение тока.

«Если бы я предоставил 100% VREF, увеличился бы он до 100%, произвел бы один единственный шаг, отключился бы, а затем выждал бы фиксированное время, прежде чем снова включить?» Да, видите пилу на рисунке? Это ток, нарастающий до предельного значения, и прерывающийся, когда он падает в течение фиксированного периода времени, прежде чем транзисторы моста снова включатся. Затем ток будет продолжать увеличиваться до предельного значения.

«Может ли постоянный VREF поддерживать работу двигателя, автоматически пульсируя?» Нет, двигатель вращается только на один шаг при каждом включении фазы и будет оставаться в этом положении, фактически заблокированным в этом положении, если фазный ток остается включенным, до тех пор, пока не будет переключен следующий шаг. Существуют стратегии половинного шага (подробно описанные в техническом описании L297), когда одна фаза не имеет тока на чередующихся шагах, но с элементами управления, доступными на A3959, у вас нет этой опции, вы должны делать полный шаг - если вы не можете обмануть отключенное состояние путем сброса входа Vref на низкий уровень. Он не предназначен для такой работы, есть отдельный контакт ENABLE, предназначенный для управления ШИМ. В этот момент у меня возникнет соблазн запрограммировать PIC для генерации последовательности импульсов, но L297 даст вам рабочий диск.

Итак, теоретически, все, что мне нужно сделать, это установить ток Vref, а затем манипулировать фазами A/B, используя комплиментарные пары A/C L297? Я бы проигнорировал чувствительные резисторы L297 и установил генератор L297 примерно на 4 МГц, чтобы он соответствовал генератору A3959? Я рассматриваю возможность использования чипов ATtiny85 для написания собственного решения для микрошагов, но L297 тоже подойдет.
Да, просто заземлите сенсорные входы на L297 и оставьте A3959 для управления током. Поскольку вы не используете многие функции L297, это пустая трата времени, что-то на базе ATtiny будет дешевле, это вопрос времени, потраченного на настройку чего-либо с использованием микроконтроллера. На веб-сайте Microchip (теперь они владеют Atmel) есть заметка об этом microchip.com//wwwAppNotes/AppNotes.aspx?appnote=en591569 .
Я решил перенести код на ATtiny85, который должен делать именно то, что я ищу, и иметь микрошаг. Теперь я гораздо лучше понимаю всю эту штуку Vref и Phases. Спасибо за помощь!