Ext. Int. vs Timer Overflow Int. для контроллера ШД

Контроллеры, драйверы, датчики, управляющие устройства.
ZhukV
Новичок
Сообщения: 2
Зарегистрирован: 03 янв 2017, 23:53
Репутация: 0
Настоящее имя: Виталий Владимирович Жук
Контактная информация:

Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение ZhukV »

Доброго времени суток!

На данный момент есть идея разработать "самопальный" драйвер шагового двигателя на основе протокола Step/Dir/Enable. Пока что выбор упал на AVR (ATtiny 2313), в связи с тем, что я их знаю лучше всех аналогов, а также наличие множества портов для дополнительных "фич" при необходимости.

Вопрос: какой триггер лучше было бы использовать для Step?

External Interrupt (внешние прерывания)

1. В ATiny2313 работает в ассинхроном режиме, в результате чего можно получить очень хорошую частоту импульсов, ~ 1 MHz, ну или же ~ 125KHz с включенным делителем частоты.
2. Возможно будет проблема в быстром понижении с логической 1 на 0 (или наоборот), что может сильно сказатся на максимальной частоте импульса.

Timer Overflow Interrupt (прерывания по переполнению таймера)

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

Понятно, что оба варианта имеют ряд своих недостатков и плюсов, но возможно у кого-то есть идеи относительно подхода к обработке Step?

P.S.
Может это глупый вопрос, но цель здесь стоит не создать "самопала", а создать прототип, чтобы полностью понять как работает система, и что можно "выжимать" с драйверов.
Также, прошу не учитывать типы ШД/комутаторы и прочье звенья необходимые для работы ШД, а взять за основу биполярный ШД с макс. характеристиками.

Спасибо!
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение selenur »

ZhukV писал(а):Доброго времени суток!

На данный момент есть идея разработать "самопальный" драйвер шагового двигателя на основе протокола Step/Dir/Enable. Пока что выбор упал на AVR (ATtiny 2313), в связи с тем, что я их знаю лучше всех аналогов, а также наличие множества портов для дополнительных "фич" при необходимости.

Вопрос: какой триггер лучше было бы использовать для Step?

External Interrupt (внешние прерывания)

1. В ATiny2313 работает в ассинхроном режиме, в результате чего можно получить очень хорошую частоту импульсов, ~ 1 MHz, ну или же ~ 125KHz с включенным делителем частоты.
2. Возможно будет проблема в быстром понижении с логической 1 на 0 (или наоборот), что может сильно сказатся на максимальной частоте импульса.

Timer Overflow Interrupt (прерывания по переполнению таймера)

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

Понятно, что оба варианта имеют ряд своих недостатков и плюсов, но возможно у кого-то есть идеи относительно подхода к обработке Step?

P.S.
Может это глупый вопрос, но цель здесь стоит не создать "самопала", а создать прототип, чтобы полностью понять как работает система, и что можно "выжимать" с драйверов.
Также, прошу не учитывать типы ШД/комутаторы и прочье звенья необходимые для работы ШД, а взять за основу биполярный ШД с макс. характеристиками.

Спасибо!
Хорошие драйвера обычно не просто по Step/Dir/Enable генерируют необходимый сигнал силовым цепям, но и имеют дополнительный функционал, вот тут почитай: http://purelogic.ru/stat_i/dopolnitelny ... vigatelej/ может что интересного найдешь :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
serge412
Новичок
Сообщения: 22
Зарегистрирован: 09 янв 2017, 17:02
Репутация: 0
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение serge412 »

ZhukV писал(а):Понятно, что оба варианта имеют ряд своих недостатков и плюсов, но возможно у кого-то есть идеи относительно подхода к обработке Step?
Нужно использовать таймер в режиме счета импульсов step. Тогда значение счетчика таймера будет соответствовать позиции ротора ШД. С ней очень удобно работать. Причем, желательно взять микроконтроллер, у которого таймер может работать в режиме энкодера, чтобы сигнал dir тоже обрабатывался аппаратно. Такая функциональность есть в stm8s. Насчет avr8 не уверен.
ZhukV
Новичок
Сообщения: 2
Зарегистрирован: 03 янв 2017, 23:53
Репутация: 0
Настоящее имя: Виталий Владимирович Жук
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение ZhukV »

@serge412, простите, не совсем понял, о чем идет речь:
Тогда значение счетчика таймера будет соответствовать позиции ротора ШД.
Спасибо.
sat_art
Новичок
Сообщения: 5
Зарегистрирован: 08 янв 2017, 20:17
Репутация: 0
Настоящее имя: Алексей
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение sat_art »

У меня вопрос, а зачем таймером да еще и в режиме энкодера. Т.е. если контроллер не успел догнать двигатель до последней точки в заданном направлении, а таймер уже начал уменьшаться - тогда нифиг такой контроллер.
По ИНТу десяток тактов процессора роли не сыграют.
Вот у меня мысль - а вернее две. Можно ли описать логику для самостоятельного выбора контроллером микрошагового режима? Например пришел один степ импульс, начинается вращение в каком то заранее заданном режиме, пришел следующий импульс, в зависимости от времени между импульсами выбирается микрошаговый режим. На максимальной частоте это будет полношаговый режим, на половине максимальной частоты 1/2 шага (то есть попростому, что будет успевать контроллер выдать). Может это где то обсуждалось - покажите.
И вторая мысль - управление контроллером по SPI - задается скорость, направление и количество шагов. Три байта по СПИ и ехай куда надо.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение Serg »

sat_art писал(а):Можно ли описать логику для самостоятельного выбора контроллером микрошагового режима? Например пришел один степ импульс, начинается вращение в каком то заранее заданном режиме, пришел следующий импульс, в зависимости от времени между импульсами выбирается микрошаговый режим. На максимальной частоте это будет полношаговый режим, на половине максимальной частоты 1/2 шага (то есть попростому, что будет успевать контроллер выдать). Может это где то обсуждалось - покажите.
Похожую логику уже давно в драйвера встраивают, правда не в самые дешёвые...
sat_art писал(а):И вторая мысль - управление контроллером по SPI - задается скорость, направление и количество шагов. Три байта по СПИ и ехай куда надо.
Тогда уж не по SPI, а по USB, ибо уже есть во всех компах. Да собственно и контроллеры такие уже давно продаются... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sat_art
Новичок
Сообщения: 5
Зарегистрирован: 08 янв 2017, 20:17
Репутация: 0
Настоящее имя: Алексей
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение sat_art »

UAVpilot писал(а):Похожую логику уже давно в драйвера встраивают, правда не в самые дешёвые...
Пример можно? Я хотел бы порядок цен поглядеть.
UAVpilot писал(а):Тогда уж не по SPI, а по USB, ибо уже есть во всех компах. Да собственно и контроллеры такие уже давно продаются...
Можно и юсб. Но я имел ввиду, что бы получился бюджетный вариант. Например таже мега которая управляет по степ дир 3-4мя контроллерами, делала это по спи.Разгрузка софта контроллера очевидная будет.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение michael-yurov »

sat_art писал(а):Но я имел ввиду, что бы получился бюджетный вариант.
Т.е. ты хотел снизить цену, за счет усложнения устройства, и его использования?
sat_art писал(а):Например таже мега которая управляет по степ дир 3-4мя контроллерами, делала это по спи.
Ну, усложнение использования налицо.
sat_art писал(а):Разгрузка софта контроллера очевидная будет.
Вот вообще никак не очевидная.
В чем разгрузка то?
Софт загружен совсем не обменом данными с драйверами.
Разве что примитивные контроллеры в основном заняты генерацией, сигнала, потому что они по большому счету ничего не умеют.

Но если управлять по SPI - придется встраивать такой контроллер в каждый драйвер. Шаги то все равно кому то нужно будет делать.

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

P.S. А как ты намереваешься синхронизировать движение отдельных приводов при обмене данными по SPI?
Ну, скажем, элементарная задача - по окружности нужно проехать. Как ты представляешь себе команды по SPI?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение Serg »

sat_art писал(а):Пример можно? Я хотел бы порядок цен поглядеть.
Про нынешние модели не скажу - давно не интересрвался шаговиками, вроде у leadshine и у geckodrive есть модели с "адаптивным микрошагом". Ещё на cncmasterkit.ru есть тема про самодельный драйвер с названием "эти безумные эксперименты" - там рассказано как это работает.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение michael-yurov »

Пурелоджики делают драйверы с "морфингом", по аналогии с ГекоДрайв.
На мой взгляд - бестолковая технология.
sat_art
Новичок
Сообщения: 5
Зарегистрирован: 08 янв 2017, 20:17
Репутация: 0
Настоящее имя: Алексей
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение sat_art »

michael-yurov писал(а):Т.е. ты хотел снизить цену, за счет усложнения устройства, и его использования?
Немного не правильно выразился, сделать бюджетный контроллер быстрее.
michael-yurov писал(а):Но если управлять по SPI - придется встраивать такой контроллер в каждый драйвер.
Конечно.
michael-yurov писал(а):А как ты намереваешься синхронизировать движение отдельных приводов при обмене данными по SPI?
Ну управляющий контроллер всегда задавая скорость знает где привод в любой момент времени.
Плюс по СПИ назад параллельно можно читать текущее положение.
michael-yurov писал(а):Проблема - в правильной генерации шагов.
Вот именно, что ардуина не в состоянии их правильно гененрить.

Не потому ли твое устройство называется степмастер?
michael-yurov писал(а):На мой взгляд - бестолковая технология.
Обоснуй.
UAVpilot писал(а):Ещё на cncmasterkit.ru есть тема про самодельный драйвер с названием "эти безумные эксперименты" - там рассказано как это работает.
Спасибо. Тему почитаю.
sat_art
Новичок
Сообщения: 5
Зарегистрирован: 08 янв 2017, 20:17
Репутация: 0
Настоящее имя: Алексей
Контактная информация:

Re: Ext. Int. vs Timer Overflow Int. для контроллера ШД

Сообщение sat_art »

Простите, если обсуждаю очевидные вещи. В эту тему только вникаю.
Ответить

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