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

Микроконтроллер для сервопривода подскажите

Luminary Micro

 

LM3S9B95 эх! еслиб они еще были бы... написано 2009 второй квартал - пойдут сэмплы.

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


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

Я думаю, что спор стал бесполезен после фразы:

Васька слушает, да ест (с) Типа, пока веских доводов в пользу замены каменя не приведено.

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


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

У меня сейчас в серве цепи энкодера работают вот по такой схеме. (Описывал не много здесь http://electronix.ru/forum/index.php?s=&am...t&p=542678).

Подпрограмма обработки прерывания от INT0 (можно от INT1 или PCINTn) настроенного по любому изменению логического состояния на входе. Алгоритм - адаптированный для этой схемы от Чена http://elm-chan.org/works/smc/report_e.html (исходник smc2 - http://elm-chan.org/works/smc/smc.zip ) 24-х разрядный результат в_PosL, _PosM, _PosH.

Прерываний надо в два раза меньше, чем если бы по каждому входу А и В. И прерывания происходят только по «правильным» переходам, т.е. лишний раз МК не «отвлекается».

Но как максимальную частоту замерить – до сих пор не знаю http://electronix.ru/forum/index.php?showtopic=59827

post-25455-1237465483_thumb.png

INT_Encoder.txt

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


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

LM3S9B95 эх! еслиб они еще были бы...

что-то из люминары есть на дижикее. пользуем LM3S6965. но он дорог для энкодерного приложения.

хорошие камни. только жрут многовато.

 

LM3S9B95 эх! еслиб они еще были бы...

что-то из люминары есть на дижикее. пользуем LM3S6965. но он дорог для энкодерного приложения.

хорошие камни. только жрут многовато.

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


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

У меня сейчас в серве цепи энкодера работают вот по такой схеме. (Описывал не много здесь http://electronix.ru/forum/index.php?s=&am...t&p=542678).

Подпрограмма обработки прерывания от INT0 (можно от INT1 или PCINTn) настроенного по любому изменению логического состояния на входе. Алгоритм - адаптированный для этой схемы от Чена http://elm-chan.org/works/smc/report_e.html (исходник smc2 - http://elm-chan.org/works/smc/smc.zip ) 24-х разрядный результат в_PosL, _PosM, _PosH.

Прерываний надо в два раза меньше, чем если бы по каждому входу А и В. И прерывания происходят только по «правильным» переходам, т.е. лишний раз МК не «отвлекается».

Но как максимальную частоту замерить – до сих пор не знаю http://electronix.ru/forum/index.php?showtopic=59827

А, что если по этой схеме http://electronix.ru/forum/index.php?showt...60502&st=45, у него когда в одну сторону движение учетверенные сигналы

на одном выходе, когда в др. сторону на др. выходе. Сигналы очень четкие. Один вых. подкл. на один вх. счетчика МК, второй на др. вх. счетчика МК.

И по программе эти два счетчика пересчитывать между собой. Тогда никаких потерь не будет и быстродействие хорошее.

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


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

Дык, автор, что решил?

Прочитал, много думал, купил девборду на STM32F103, развязал датчик тока моста с помощью ACS713ELCTR-30A (холловский датчик с изоляцией в 2 кв в обычном SO8 корпусе и полосой в 50 кгц),мост был развязан еще раньше, сижу разбираюсь с аппаратными счетчиками енкодеров АРМа.

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


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

Три энкодера в +/-. Цикл опроса 28 тактов. Тинька2313.

 

положил сюда http://electronix.ru/forum/index.php?showt...st&p=565167

 

Поскольку это как-бы законченное нечто, прикрутил GPL :)

 

С извращениями и небольшой асимметрией выхода можно смело 26 тактов делать.

 

С четырьмя энкодерами сколько да под 8-битный входной порт? Ответ готов: 28 тактов :)

 

20МГц да на 28 = 714 с носом  кГц

 

Ы-Ы-Ы! :biggrin:

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


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

А, что если по этой схеме http://electronix.ru/forum/index.php?showt...60502&st=45, у него когда в одну сторону движение учетверенные сигналы

на одном выходе, когда в др. сторону на др. выходе. Сигналы очень четкие. Один вых. подкл. на один вх. счетчика МК, второй на др. вх. счетчика МК.

И по программе эти два счетчика пересчитывать между собой. Тогда никаких потерь не будет и быстродействие хорошее.

В микрочиповском AN696 http://ww1.microchip.com/downloads/en/AppNotes/00696a.pdf так и сделано.

Такой вариант «прокатит» только с МК у которой много таймеров-счётчиков. Но по цене они уже близки со «встроенными» аппаратными обработчиками сигналов от энкодера.

У тиньки или простой меги мало счётчиков. 16 разрядный обычно "идёт" на ШИМ. Остаются 8 разрядные, во первых мало разрядности, во вторых таймеры обычно уже чем то другим заняты, в третьих в некоторых сервоконтроллерах нужен ещё счётчик задания шагов (Step), который тоже должен «пополняться или убавляться» также быстро как и от энкодера, т.е. по прерываниям или 2 счётчика.

 

Есть PICи у которых по 2 модуля Quadrature Encoder Interface (QEI) http://www.microchip.com/ParamChartSearch/...=10&lang=en

 

Кстати давно ищу ответ на вопрос, хотел даже отдельную тему открыть.

Есть ли МК у которых имеются реверсивные 16 разрядные счётчики с внешним выводом (входом) задания направления счёта?

Если применить PIC с двумя Quadrature Encoder Interface, то можно ли использовать один из них для Step/Dir?

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


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

В микрочиповском AN696 http://ww1.microchip.com/downloads/en/AppNotes/00696a.pdf так и сделано.

Такой вариант «прокатит» только с МК у которой много таймеров-счётчиков. Но по цене они уже близки со «встроенными» аппаратными обработчиками сигналов от энкодера.

У тиньки или простой меги мало счётчиков. 16 разрядный обычно "идёт" на ШИМ. Остаются 8 разрядные, во первых мало разрядности, во вторых таймеры обычно уже чем то другим заняты, в третьих в некоторых сервоконтроллерах нужен ещё счётчик задания шагов (Step), который тоже должен «пополняться или убавляться» также быстро как и от энкодера, т.е. по прерываниям или 2 счётчика.

 

Есть PICи у которых по 2 модуля Quadrature Encoder Interface (QEI) http://www.microchip.com/ParamChartSearch/...=10&lang=en

 

Кстати давно ищу ответ на вопрос, хотел даже отдельную тему открыть.

Есть ли МК у которых имеются реверсивные 16 разрядные счётчики с внешним выводом (входом) задания направления счёта?

Если применить PIC с двумя Quadrature Encoder Interface, то можно ли использовать один из них для Step/Dir?

Тогда напрашивается ответ, нужно ставит реверсивные счетчики, а лучше это все сделать на CPLD без всяких замарочек. Программа на Verilog в ~60

строчек вмещается.

По поводу использования одного QEI в качестве Step/Dir, то наверное нужно этот Step/dir преобразовать в квадратуру, а иногда в ЧПУ помоему

выход настраивается на тип сигнала. Возможно я ошибаюсь. Но преобразовать Step/Dir в квадратуру легко!

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


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

Гнем свою линию. 

 

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

 

В свой сервак внесу чуть модифицированный свой вариант обработки, но с настоящим 4-х режимом. Полных 23 такта вместе со входом/ выходом, но там еще таймер висит. Это два.

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


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

CPLD без всяких замарочек. Программа на Verilog в ~60 строчек вмещается.

Нескромно: а сколько стоит CPLD под 60 строчек и о четырех ногах ?

 

 

Три энкодера в +/-. Цикл опроса 28 тактов. Тинька2313.

 

20МГц да на 28 = 714 с носом  кГц

Собственно, про это я и писал в первом посте. Только тиньку взять восьмилапую, spi + один-два энкодера.

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


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

Тогда напрашивается ответ, нужно ставит реверсивные счетчики, а лучше это все сделать на CPLD без всяких замарочек. Программа на Verilog в ~60

строчек вмещается.

Mariss Freimanis сейчас в своём новом G380 http://www.cnczone.com/forums/showthread.php?t=75035 так и делает. В отличии от предыдущих G320 и G340, которые были на мелкой логике и операционниках http://www.geckodrive.com/products.aspx?n=388858 .

 

Собственно, про это я и писал в первом посте. Только тиньку взять восьмилапую, spi + один-два энкодера.
Если к ней ещё подключить внешний кварц, то 8 лап для второго энкодера не хватит.

А зачем изобретать лясипед, когда есть готовые Incremental Interfaces Encoders http://www.lsicsi.com/encoders.htm.

 

А «систему на кристалле» http://www.cypress.com/?id=1028&resour...esourceTypeID=5

http://www.cypress.com/psoc2/?id=1353 никто для электропривода не пробовал использовать?

 

 

По поводу использования одного QEI в качестве Step/Dir, то наверное нужно этот Step/dir преобразовать в квадратуру, а иногда в ЧПУ помоему

выход настраивается на тип сигнала. Возможно я ошибаюсь. Но преобразовать Step/Dir в квадратуру легко!

Вот пара похожих схемок. Можь кому сгодиться.

stepdir.pdf

stepdirh.pdf

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


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

Нескромно: а сколько стоит CPLD под 60 строчек и о четырех ногах ?

 

Бакс. Ну полтора. Только ног 44, а не 4 :)

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


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

Если к ней ещё подключить внешний кварц, то 8 лап для второго энкодера не хватит.

Для spi кварц не нужен.

 

 

Бакс. Ну полтора. Только ног 44, а не 4 :)

Жирно, в данном случае это минус, а не плюс.

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


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

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

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

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

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

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

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

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

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

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