|
|
  |
Микроконтроллер для сервопривода подскажите, Два аппаратных енкодера нужно. |
|
|
|
Mar 19 2009, 12:36
|
Местный
  
Группа: Свой
Сообщений: 322
Регистрация: 2-07-04
Из: Minsk
Пользователь №: 240

|
Цитата(_Pasha @ Mar 19 2009, 16:22)  LM3S9B95 эх! еслиб они еще были бы... что-то из люминары есть на дижикее. пользуем LM3S6965. но он дорог для энкодерного приложения. хорошие камни. только жрут многовато. Цитата(_Pasha @ Mar 19 2009, 16:22)  LM3S9B95 эх! еслиб они еще были бы... что-то из люминары есть на дижикее. пользуем LM3S6965. но он дорог для энкодерного приложения. хорошие камни. только жрут многовато.
|
|
|
|
|
Mar 19 2009, 17:22
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Цитата(arisov @ Mar 19 2009, 15:25)  У меня сейчас в серве цепи энкодера работают вот по такой схеме. (Описывал не много здесь 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, у него когда в одну сторону движение учетверенные сигналы на одном выходе, когда в др. сторону на др. выходе. Сигналы очень четкие. Один вых. подкл. на один вх. счетчика МК, второй на др. вх. счетчика МК. И по программе эти два счетчика пересчитывать между собой. Тогда никаких потерь не будет и быстродействие хорошее.
|
|
|
|
|
Mar 19 2009, 18:49
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Три энкодера в +/-. Цикл опроса 28 тактов. Тинька2313. положил сюда http://electronix.ru/forum/index.php?showt...st&p=565167Поскольку это как-бы законченное нечто, прикрутил GPL  С извращениями и небольшой асимметрией выхода можно смело 26 тактов делать. С четырьмя энкодерами сколько да под 8-битный входной порт? Ответ готов: 28 тактов 20МГц да на 28 = 714 с носом кГц Ы-Ы-Ы!
|
|
|
|
|
Mar 19 2009, 20:34
|
Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455

|
Цитата(Iptash @ Mar 19 2009, 20:22)  А, что если по этой схеме 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?
|
|
|
|
|
Mar 19 2009, 21:24
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Цитата(arisov @ Mar 19 2009, 23:34)  В микрочиповском 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 в квадратуру легко!
|
|
|
|
|
Mar 19 2009, 23:24
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(Iptash @ Mar 19 2009, 21:24)  CPLD без всяких замарочек. Программа на Verilog в ~60 строчек вмещается. Нескромно: а сколько стоит CPLD под 60 строчек и о четырех ногах ? Цитата(_Pasha @ Mar 19 2009, 18:49)  Три энкодера в +/-. Цикл опроса 28 тактов. Тинька2313.
20МГц да на 28 = 714 с носом кГц Собственно, про это я и писал в первом посте. Только тиньку взять восьмилапую, spi + один-два энкодера.
|
|
|
|
|
Mar 20 2009, 06:25
|
Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 17-02-07
Из: Ульяновск
Пользователь №: 25 455

|
Цитата(Iptash @ Mar 20 2009, 00:24)  Тогда напрашивается ответ, нужно ставит реверсивные счетчики, а лучше это все сделать на 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 . Цитата(Огурцов @ Mar 20 2009, 02:24)  Собственно, про это я и писал в первом посте. Только тиньку взять восьмилапую, 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 никто для электропривода не пробовал использовать? Цитата(Iptash @ Mar 20 2009, 00:24)  По поводу использования одного QEI в качестве Step/Dir, то наверное нужно этот Step/dir преобразовать в квадратуру, а иногда в ЧПУ помоему выход настраивается на тип сигнала. Возможно я ошибаюсь. Но преобразовать Step/Dir в квадратуру легко! Вот пара похожих схемок. Можь кому сгодиться.
|
|
|
|
|
  |
8 чел. читают эту тему (гостей: 8, скрытых пользователей: 0)
Пользователей: 0
|
|
|