|
|
  |
Микроконтроллер для сервопривода подскажите, Два аппаратных енкодера нужно. |
|
|
|
Mar 17 2009, 14:22
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Огурцов @ Mar 17 2009, 17:05)  Даже для одного энкодера получится не прога, а аццкие танцы с бубном. Дык Вы в процентах загрузки проца считайте - уже не так страшно. Это раз. Во-вторых, кварц на 16 ставить оцень-не-хоцца, лучше 18,432. Чуть больше тактов все ж. В третьих - а кто будет еще что-то лепить туда? Разве что конкурентам насоветовать  так тоже ж не дураки, знают где пределы у авров. Цитата(haker_fox @ Mar 17 2009, 17:11)  Не более 4 КГц. Тогда можно усложнять обработку и вытянуть с него правильное направление по фронтам. Лишь бы не дребезжало оно так, что ложные срабатывания появляются.
|
|
|
|
|
Mar 17 2009, 14:25
|
Профессионал
    
Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936

|
Цитата(haker_fox @ Mar 17 2009, 16:29)  ... аппаратный декодер загибается на этом деле. Тут, похоже нужно программно... верно ли я мыслю? Это какой декодер загибается? Вот декодер учетверитель. Все время делал по этой схеме и никогда не загибался(имеется ввиду декодер). Там синхронизация, частота, чем выше тем большую входную частоту можно обработать все зависит от быстродействия логики. Выхода подаешь на реверсивный счетчик типа ИЕ7 и т.п.. Такие устройства нужно делать засинхронизированными, а не по фронтам.
Эскизы прикрепленных изображений
|
|
|
|
|
Mar 17 2009, 14:40
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(_Pasha @ Mar 17 2009, 14:22)  Дык Вы в процентах загрузки проца считайте - уже не так страшно. Процентов триста..пятьсот. Цитата(_Pasha @ Mar 17 2009, 14:22)  В третьих - а кто будет еще что-то лепить туда Так "для сервопривода" - ПИДы какие-нибудь потребуются, ШИМом крутить, УАРТ, концевики, разная другая хрень. Впрочем, приведите ваш вариант - что на входе, что на выходе, сколько тактов, на чем написан...
|
|
|
|
|
Mar 17 2009, 14:47
|

Познающий...
     
Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125

|
Цитата(_Pasha @ Mar 17 2009, 22:22)  Тогда можно усложнять обработку и вытянуть с него правильное направление по фронтам. Лишь бы не дребезжало оно так, что ложные срабатывания появляются. Хотя в случае такого сигнала мало что поможет: Ch. A:________|---------|___________________|---------|___________ Ch. B:__________|-----|______________________|-----|____________ Хотя, можно извратиться и создать сервисное ПО для "калибровки". Т.е. для каждого уникального мышинного энкодера это ПО отследит периодически повторяющуюся последовательность сигналов с двух фаз и запомнит. Затем, эта последовательность будет использоваться уже при поллинге по таймеру. Тут, конечно, условие: сдвиг между фазами не должен быть очень малым, иначе различия направления не будет... Идея сильно бредовая? Цитата(Iptash @ Mar 17 2009, 22:25)  Такие устройства нужно делать засинхронизированными, а не по фронтам. Т.е. чтобы исключить ситуации, подобные дребезгу?
--------------------
Выбор.
|
|
|
|
|
Mar 17 2009, 15:00
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Огурцов @ Mar 17 2009, 17:40)  Впрочем, приведите ваш вариант - что на входе, что на выходе, сколько тактов, на чем написан... Не дописаль пока что  Но все прерывания на асме, кроме ШИМа. На всякий случай. Тактов на энкодер - см выше. Servo Loop 500 мкс. Хочу 250. Цитата(haker_fox @ Mar 17 2009, 17:47)  Хотя в случае такого сигнала мало что поможет: А в обратном направлении вращения ?
|
|
|
|
|
Mar 17 2009, 18:07
|
Местный
  
Группа: Свой
Сообщений: 278
Регистрация: 18-01-05
Из: Санкт-Петербург
Пользователь №: 2 031

|
Цитата для каждого уникального мышинного энкодера почему мышку не задействовать более эффективно? просто опрашивать её по com или ps/2  И считать там всё само будет плюс ещё появиться 2/3 лишних входа, которые для вашего случая можно будет использовать как конечные ограничители для каждого из манипуляторов.
|
|
|
|
|
Mar 17 2009, 19:01
|

Знающий
   
Группа: Свой
Сообщений: 540
Регистрация: 19-04-08
Из: Москва
Пользователь №: 36 913

|
Цитата(haker_fox @ Mar 17 2009, 16:29)  Народ, в который раз меня вдохновила подобная беседа!!! И вот я тоже прихожу к выводу, что поллить энкодеры несколько лучше в плане устойчивого считывания информации. Особенно, если энкодеры не промышленные, а самопал - типа из мышки...( Как это не печально, но бюджет не позволяет купить что-нить готовое. Даже импульсов 200 на оборот... Ну если совсем ограничены в средствах , то почему бы не попробовать сделать энкодер самому? По точности он конечно будет "не супер" , но для учебно-отладочных работ сгодится. В качестве носителя рисунка кодового диска и ответного сектора можно использовать фотопленку которая заказывается в конторе типа http://www.reprocom.ru/ Думаю , что в каждом городе, где есть типографии должно быть что-то подобное. Точность вывода у них должна быть не хуже 15- 20 микрон на лист для офсетной печати. На лист А4 уместится с полсотни комплектов . Пленки можно будет наклеить на твердый носитель (стекло или в крайнем случае прозрачный пластик) эмульсией друг к другу. Основная морока будет с наклейкой кодового диска без экцентриситета и юстировка ответного сектора по углу и зазору.
|
|
|
|
|
Mar 18 2009, 03:11
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Огурцов @ Mar 18 2009, 02:21)  Пусть загрузка прерывания будет 50%, т.е. 50 тактов на прерывание и 50 тактов на основную программу. Хотите посчитать загрузку - делайте это правильно, как сумму отношений числа тактов на прерывание к числу тактов, укладывающихся в период генерации прерывания. Там чтобы 50% загрузки достичь - это не сервак а андроид какой-то буит шибко умный. Для синхронизации сервоцикла используется 1 прерывание, и то с коррекцией стека, послед.порт - там обычно буферизация, АЦП - 1 или 2 или 0 каналов, дело вкуса, компаратор на максимально-токовую защиту (срабатывает как Ф1-один раз). Хотя, конечно, можно программу и неправильно организовать, тогда  оно не подымется никогда.
|
|
|
|
|
Mar 18 2009, 08:38
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Ребят, ну вы смешные. 50% от 100 тактов - это 50 тактов, как ни считай. Ну или объясните тогда, как считать "правильно".
Ок, аналогичная задача. Тактовая 16мгц, цикл 50кгц, два уарта на 1мбит, энкодеры плюс кое-что еще. Какие шансы, что такое будет работать ? А без бубна ?
А вот, кстати, пример. Пока раскладка такая: всего 320 тактов, скажем, 240 можно отдать на прерывание. 38 - вход, 37 - выход, 17 * 2 * 2 - прием, 23 * 2 * 2 - передача, 150 - энкодеры, т.е. всего (примерно) 385. Упс. Теперь понятно, что и почему не работает. Если осетра немного урезать, до 500кбит, получается 305 тактов и оно хреново, но живет. Так что, брать в руки бубен ? Или осетра резать ?
|
|
|
|
|
  |
4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0
|
|
|