Перейти к содержанию
    

Контролер для 3-х двигателей.

Мне нужно сделать драйвер для 3-х двигателей. Двигатели обычные DC Motors 24V. Двигатели имеют энкодеры для отслеживания позиции.

Хотелось чтоб энкодеры были апаратные. Обычно это делается на таймерах.

Вот задумался какой контроллер выбрать. PWM+Encoders требуют таймера. К тому же на мои нужды нужно еще 3 таймера.

У ST вроде нет контролеров заточенных под motion. У TI есть но что то не хочется связываться с TI. К тому же 3 двигателя. Есть контроллеры под такую задачу?

Основная проблема - аппаратно обработать 3 энкодера. На атмеловских AVRках я пользовался внешними интераптами но это, как мне кажется, не очень хороший способ.

post-71075-1498984317_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У ST есть всё для моторов и даже библиотека имеется(правда я не уверен что она бесплатна)

http://www.st.com/content/ccc/resource/tec....CD00298474.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У ST есть всё для моторов...

Я б так уверенно не отвечал.

Чтобы сделать одновременно 3-и даже простейших аппаратных 2-х входовых квадратурных декодера и 3-и трехканальных PWM (по 6 выходов каждый)

не подойдет ни один STM включая STM32H7 и даже Kinetis.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати по ходу у ТСа коллекторные движки и там всё куда проще получится

Хм, действительно похоже на коллекторные. Тогда не интересно. :laughing:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У ST есть всё для моторов и даже библиотека имеется(правда я не уверен что она бесплатна)

http://www.st.com/content/ccc/resource/tec....CD00298474.pdf

мда. с FOC SDK как то все мутно. а камень мне посоветовали STM32F303 - там куча таймеров и все с функциями PWM + encoder.

 

Advanced-control timers (TIM1/TIM8/TIM20)

General-purpose timers (TIM2/TIM3/TIM4)

Basic timers (TIM6/TIM7)

General-purpose timers (TIM15/TIM16/TIM17)

 

насколько я понял только TIM2/TIM3/TIM4 support quadrature encoders или я ошибаюсь?

 

Я б так уверенно не отвечал.

Чтобы сделать одновременно 3-и даже простейших аппаратных 2-х входовых квадратурных декодера и 3-и трехканальных PWM (по 6 выходов каждый)

не подойдет ни один STM включая STM32H7 и даже Kinetis.

На PWM мне нужно 4 вывода. Можно обойтись и двумя. У меня внешний Full Bridge Driver принимает два сигнала - PWM FORWARD, PWM REVERSE. Четыре на всякий случай, если буду использовать другой драйвер.

 

Двигатели диси - подключены по мостовой схеме.

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

параметры энкодера и частота вращения какие? при 10.000 имп\оборот и 1000 об\мин даже с одним движком будет та еще забава

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

параметры энкодера и частота вращения какие? при 10.000 имп\оборот и 1000 об\мин даже с одним движком будет та еще забава

я не помню точно, но не думаю что больше 1000 об/мин. На внешних прерываниях считывалось на ура, не думаю что на таймере будет хуже.

Изменено пользователем Jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так надо сначала ж выбрать энкодеры исходя из требуемой точности позициирования.

Вам же подказали, что если вы выберете энкодеры, выдающие 10000 импульсов на один оборот и ваш двигатель разгонится до 1000об/мин то не сложно посчитать сколько импульсов вам будет прилетать в секунду. А ведь по ним придется принемать решения(т.е. обрабатывать их) вне зависимости от того будет ли там у вас таймер или не таймер....

Поэтому начать следует с постановки тех.задания и определения требуемых характеристик системы, а потом и процессор можно подобрать.

А то как-то всё как обычно получается ))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну так надо сначала ж выбрать энкодеры исходя из требуемой точности позициирования.

Вам же подказали, что если вы выберете энкодеры, выдающие 10000 импульсов на один оборот и ваш двигатель разгонится до 1000об/мин то не сложно посчитать сколько импульсов вам будет прилетать в секунду. А ведь по ним придется принемать решения(т.е. обрабатывать их) вне зависимости от того будет ли там у вас таймер или не таймер....

Поэтому начать следует с постановки тех.задания и определения требуемых характеристик системы, а потом и процессор можно подобрать.

А то как-то всё как обычно получается ))))

А проблема в чем? В том что 16-битный таймер вылетит в оверфлоу не закончив хода двигателя? Так там прескейлер можно задать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вам просто подсказывают на что обратить внимание. А что там куда заоверфловится или кол-во прерываний не успеет обработаться - это вы уже просчитывайте, я не знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при 10.000 имп\оборот и 1000 об\мин даже с одним движком будет та еще забава

Это получается всего-то 167кГц. При системной частоте в 72МГц таймер запросто справится. При помощи DMA данные можно сбрасывать в отдельную переменную, и вопрос "определить текущую скорость вращения вала" вообще будет решаться элементарно!

Это ж не авр какой-нибудь допотопный, где ни таймеров нормальных не было, ни DMA!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

и вопрос "определить текущую скорость вращения вала" вообще будет решаться элементарно!

Двигатели обычные DC Motors 24V. Двигатели имеют энкодеры для отслеживания позиции.

Что может оказаться несколько сложнее отслеживания скорости вращения вала. Хотя это всё телепатия ибо задача полностью не озвучена

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...