Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Общетехнические вопросы

Общетехнические вопросы Общие вопросы аналоговой и цифровой электроники.

Ответ
 
Опции темы Опции просмотра
Старый 11.05.2020, 18:09   #1
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,923
Вес репутации: 4789/138
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Энкодер Bourns PEC16

Здравствуйте!
Есть энкодер от Bourns (PEC16-4220F-S0024 Энкодер инкрементный + выключатель (кнопка)), подключил его к микроконтроллеру TIM3_CH1 и TIM3_CH2, таймер TIM3 в режиме энкодера. Инициализирую регистры таймера и счетчик хорошо считает при вращении в одну сторону, а в другую - с перескоками. Что-то мне не нравятся осциллограммы на входах, какие-то они не похожие на осциллограммы из Data Sheet на этот энкодер (там фронты не совпадают), у меня пара фронтов всегда совпадает. Это вообще нормально для энкодера?
PS: Экодер готовый плюс таймер в режиме энкодера использую первый раз, поэтому сильно не критикуйте (до этого использовал только самодельный из двух герконов и колесо с магнитом плюс программная обработка - для счетчика витков).
Миниатюры
Схема включения энкодера.png   Осциллограммы вращения.png   Bourns PEC16.png  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 11.05.2020, 19:13   #2
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,033
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Это вообще нормально для энкодера?
мог ошибиться с "общим". Там очень неочевидная цоколевка
Greg вне форума   Ответить с цитированием
Старый 11.05.2020, 19:32   #3
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,923
Вес репутации: 4789/138
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Greg Посмотреть сообщение
мог ошибиться с "общим". Там очень неочевидная цоколевка
Спасибо, Григорий! Я ошибся с назначением выводов. Кнопку вызвонил, а эти три вывода просмотрел, мелковато и на разных страницах. Я не нашел и почему-то подумал, что средний пин - это общий. Общий с края оказался.
Миниатюры
Pins Description.png   Осциллограммы вращения.png  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 11.05.2020, 21:29   #4
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,923
Вес репутации: 4789/138
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Этот энкодер с тактильным эффектом (24 щелчка). В настройках модуля таймера (STM32F407 TIM3) есть три режима энкодера:
Код:
//TIM3->SMCR  |= (TIM_SMCR_SMS_0); // Encoder mode 1. (+/- 2 units).
//TIM3->SMCR  |= (TIM_SMCR_SMS_1); // Encoder mode 2. (+/- 2 units).
TIM3->SMCR |= (TIM_SMCR_SMS_0 | TIM_SMCR_SMS_1); // Encoder mode 3. (+/- 4 units).
При вращении вправо/влево счетчик TIM3->CNT изменяется на +/- 2, +/- 4 единицы на один щелчок в зависимости от настроек. Если двигать плавно, то можно увидить изменения на +/- 1 единицу, но энкодер не фиксируется в этом положении.
Вопрос: изменение на +/- 1 единицу можно сделать аппаратно (задать в настройках)? Пробовал вот это, но не повлияло.
Код:
// 00: no prescaler, capture is done each time an edge is detected on the capture input.
// 01: capture is done once every 2 events.
// 10: capture is done once every 4 events.
// 11: capture is done once every 8 events.
TIM3->CCMR1  |= ( TIM_CCMR1_IC1PSC_1 | TIM_CCMR1_IC2PSC_1);
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 12.05.2020, 05:37   #5
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 3,172
Вес репутации: 4064/119
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Дмитрий, у меня есть вопрос.
А к чему все это? Вы для чего применяете механический энкодер и как в этом задействован СЧЕТЧИК?
Чтобы мой вопрос не выглядел странным, объясню.
Обычно механический энкодер с осевой кнопкой применяют в управлении экранным меню. Но в экранном меню имеется куча объектов регулирования и каждый со своим счетчиком. При этом разные счетчики могут иметь совершенно разные режимы счета: с переполнением и с ограничением, а так же разный пересчет.
И как может в этом помочь ЕДИНСТВЕННЫЙ счетчик? Лично мне от интерфейса энкодера нужен не счет, а СОБЫТИЯ счета - инкремент и декремент.
Марк вне форума   Ответить с цитированием
Старый 12.05.2020, 07:35   #6
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,923
Вес репутации: 4789/138
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Марк Посмотреть сообщение
Дмитрий, у меня есть вопрос.
А к чему все это? Вы для чего применяете механический энкодер и как в этом задействован СЧЕТЧИК?
Чтобы мой вопрос не выглядел странным, объясню.
Обычно механический энкодер с осевой кнопкой применяют в управлении экранным меню. Но в экранном меню имеется куча объектов регулирования и каждый со своим счетчиком. При этом разные счетчики могут иметь совершенно разные режимы счета: с переполнением и с ограничением, а так же разный пересчет.
И как может в этом помочь ЕДИНСТВЕННЫЙ счетчик? Лично мне от интерфейса энкодера нужен не счет, а СОБЫТИЯ счета - инкремент и декремент.
Марк, все просто: как раз для экранного меню программируемого источника питания (быстро и точно задавать ограничения выходного напряжения, ток защиты, уставки по напряжению). Энкодер уже и в low cost семгмент начинают ставить вместо переменных резисторов.

В этих источниках питания много кнопок на лицевой для выбора изменяемой уставки, а единственный энкодер инкрементирует или декрементирует выбранную уставку. Прогресс дошел до применения энкодера. Очень удобно.
Миниатюры
Применение_01.jpg   Применение_02.jpg  
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 12.05.2020, 08:05   #7
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,033
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Марк, все просто: как раз для экранного меню программируемого источника питания (быстро и точно задавать ограничения выходного напряжения, ток защиты, уставки по напряжению). Энкодер уже и в low cost семгмент начинают ставить вместо переменных резисторов.

В этих источниках питания много кнопок на лицевой для выбора изменяемой уставки, а единственный энкодер инкрементирует или декрементирует выбранную уставку. Прогресс дошел до применения энкодера. Очень удобно.
Никто про роль энкодера не спорит, и Марк о другом - от энкодера нужно событие, а не состояние счетчика. Это тот случай, когда софтовая реализация проще и лучше. Вообще аппаратный модуль довольно неоднозначный.
Greg вне форума   Ответить с цитированием
Старый 12.05.2020, 08:14   #8
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,923
Вес репутации: 4789/138
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Greg Посмотреть сообщение
Никто про роль энкодера не спорит, и Марк о другом - от энкодера нужно событие, а не состояние счетчика. Это тот случай, когда софтовая реализация проще и лучше.Вообще аппаратный модуль довольно неоднозначный.
Конкретно для STM32F407 таймер TIM3 в режиме энкодера (PA6 - TIM3_CH1, PA7 - TIM3_CH2) работает в соответствии с RM: +/-2 или +/-4 единицы в зависимости от настроек (один из трех режимов энкодера).

PS: В выложенных в Интернете реализациях, в некоторых, даже цифровые фильтры не включены, как будто они не нужны. И другие упрощения есть - это же демо-код.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 12.05.2020, 08:26   #9
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,033
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Конкретно для STM32F407 таймер TIM3 в режиме энкодера (PA6 - TIM3_CH1, PA7 - TIM3_CH2) работает в соответствии с RM: +/-2 или +/-4 единицы в зависимости от настроек (один из трех режимов энкодера).

PS: В выложенных в Интернете реализациях, в некоторых, даже цифровые фильтры не включены, как будто они не нужны. И другие упрощения есть - это же демо-код.
и я не об этом - этот модуль не удобен с точки зрения отлавливания событий. Получается, надо вываливаться в прерывание по каждому изменению таймера, или постоянно полить таймера значение. А когда это десятки и сотни кГц?
Зачем? а у меня типовая задача - под сотню compare обработать. Да и таймер коротковат получается, а каскадировать - не отслеживается реверс. В итоге - завожу всё-таки на модуль (не пропадать же), а там дергаюсь прерываниями через небольшой делитель.
Greg вне форума   Ответить с цитированием
Старый 12.05.2020, 09:03   #10
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 3,172
Вес репутации: 4064/119
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Greg Посмотреть сообщение
В итоге - завожу всё-таки на модуль (не пропадать же)
А я - нет. Очень коряво получается. Софтовая обработка энкодера даже при быстром вращении практически никак не нагружает МК. Все эти интерфейсы энкодеров предназначены для квадратурных датчиков угла следящих систем, а не для механических регуляторов на лицевых панелях.
Марк вне форума   Ответить с цитированием
Старый 12.05.2020, 09:09   #11
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,033
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Марк Посмотреть сообщение
А я - нет. Очень коряво получается. Софтовая обработка энкодера даже при быстром вращении практически никак не нагружает МК. Все эти интерфейсы энкодеров предназначены для квадратурных датчиков угла следящих систем, а не для механических регуляторов на лицевых панелях.
описанный мной случай - как раз эти "квадратурные датчики угла следящих систем".
Механика - да, только софтом.
Greg вне форума   Ответить с цитированием
Старый 12.05.2020, 09:17   #12
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,923
Вес репутации: 4789/138
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Greg Посмотреть сообщение
и я не об этом - этот модуль не удобен с точки зрения отлавливания событий. Получается, надо вываливаться в прерывание по каждому изменению таймера, или постоянно полить таймера значение. А когда это десятки и сотни кГц?
Зачем? а у меня типовая задача - под сотню compare обработать. Да и таймер коротковат получается, а каскадировать - не отслеживается реверс. В итоге - завожу всё-таки на модуль (не пропадать же), а там дергаюсь прерываниями через небольшой делитель.
Я пока не дошел до прерываний, начал с пуллинга. Прерывания от 100 кгц и выше сложно использовать, так почти все время можно в прерывании сидеть, на основную задачу времени не останется. Вот прерывание через N событий еще можно использовать.

Под сотню Compare имеется ввиду сотня энкодеров или отловить сотню событий (импульсов)? Нужно еще описание почитать, может, там какие хитрые режимы есть (таймер в режиме энкодера - мастер, а ведомый считает...)

Цитата:
Сообщение от Марк Посмотреть сообщение
А я - нет. Очень коряво получается. Софтовая обработка энкодера даже при быстром вращении практически никак не нагружает МК. Все эти интерфейсы энкодеров предназначены для квадратурных датчиков угла следящих систем, а не для механических регуляторов на лицевых панелях.
А по-моему без разницы, что подключать.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 12.05.2020, 09:37   #13
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,552
Вес репутации: 790/51
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Я пока не дошел до прерываний, начал с пуллинга. Прерывания от 100 кгц и выше сложно использовать,
ни какой сложности нет....
и 100кгц- это вообще ни о чём...
делаете по прерыванию плюс-минус переменной... и всё....
ну... там пара- тройка строчек кода будет в обработчике....
SergP01 вне форума   Ответить с цитированием
Старый 12.05.2020, 09:53   #14
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 3,172
Вес репутации: 4064/119
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Pridnya Посмотреть сообщение
А по-моему без разницы, что подключать.
Во первых, механический энкодер совершенно не требует прерываний с частотой 100 кГц. Даже при супербыстром вращении энкодера (так даже один оборот не сделать) получается примерно 250 мс на оборот, то есть примерно 10 мс на щелчок. Если учесть, что время дребезга механических энкодеров составляет 2...5 мс, то читать их чаще этих самых 5 мс нет никакого смысла. То есть реально софтовый обработчик энкодера вызывается с частотой 150...200 Гц.
Ну и нахрена козе баян? Чтобы делать кучу никчемных вычислений, чтобы вытянуть события?
Марк вне форума   Ответить с цитированием
Старый 12.05.2020, 09:57   #15
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,923
Вес репутации: 4789/138
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от SergP01 Посмотреть сообщение
ни какой сложности нет....
и 100кгц- это вообще ни о чём...
делаете по прерыванию плюс-минус переменной... и всё....
ну... там пара- тройка строчек кода будет в обработчике....
Я про отсутствие смысла. Например, прерывания от передатчика UART можно сделать и на мегабите, но лучше не делать, т.к. на высоких скоростях можно воспользоватсья связкой UART+DMA. Т.е. есть некий порог, когда от прерываний лучше отказаться.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 12.05.2020, 09:58   #16
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 3,172
Вес репутации: 4064/119
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Нужно еще описание почитать, может, там какие хитрые режимы есть
Нет там никаких хитрых режимов. Просто за ненадобностью. Кому придет в голову расходовать таймеры на машину состояний меню? Даже среднее по размерам меню сожрет все таймеры и не поперхнется.
Марк вне форума   Ответить с цитированием
Старый 12.05.2020, 09:59   #17
Pridnya
Senior Member
 
Регистрация: 21.01.2009
Адрес: Russia, Orel
Возраст: 41
Сообщений: 4,923
Вес репутации: 4789/138
Pridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond reputePridnya has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Марк Посмотреть сообщение
Нет там никаких хитрых режимов. Просто за ненадобностью. Кому придет в голову расходовать таймеры на машину состояний меню? Даже среднее по размерам меню сожрет все таймеры и не поперхнется.
Для меню достаточно одного таймера в режиме энкодера.

Цитата:
Сообщение от Марк Посмотреть сообщение
Во первых, механический энкодер совершенно не требует прерываний с частотой 100 кГц. Даже при супербыстром вращении энкодера (так даже один оборот не сделать) получается примерно 250 мс на оборот, то есть примерно 10 мс на щелчок. Если учесть, что время дребезга механических энкодеров составляет 2...5 мс, то читать их чаще этих самых 5 мс нет никакого смысла. То есть реально софтовый обработчик энкодера вызывается с частотой 150...200 Гц.
Ну и нахрена козе баян? Чтобы делать кучу никчемных вычислений, чтобы вытянуть события?
Механический энкодер может быть с датчиком Холла (без механических контактов), оптический...они пошустрее. Мы же не знаем о всех типах энкодеров. Я точно не знаю.
__________________
Прогресс неизбежен.
Pridnya вне форума   Ответить с цитированием
Старый 12.05.2020, 10:08   #18
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 3,172
Вес репутации: 4064/119
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от SergP01 Посмотреть сообщение
ну... там пара- тройка строчек кода будет в обработчике....
к "паре-тройке строчек кода в обработчике", которые на самом деле превратятся в десяток-полтора машинных инструкций будет добавлена неприличная латентность входа и выхода этого самого обработчика... То есть по факту такая конструкция будет исполнятся примерно 40-50 машинных циклов МИНИМУМ. И при периоде прерываний 10 мкс (100 кГц) и каком нибудь М0 с 50 МИПСами (20 нс) затраты на всю эту белиберду составят 10% от общей производительности МК. ДЕСЯТЬ ПРОЦЕНТОВ, Карл!!! И это к тому же блокирующие 10%...
Марк вне форума   Ответить с цитированием
Старый 12.05.2020, 10:14   #19
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 3,172
Вес репутации: 4064/119
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Механический энкодер может быть с датчиком Холла
Много вы видели механических энкодеров с датчиками Холла для управления экранными меню? Сами будете мастерить? С фиксаторами положения и прочими шнягами...
Дмитрий, вы сами задали тип энкодера PEC16. Это механический контактный энкодер, которые и ставят в качестве навигатора меню.
О нем и идет разговор, а не о мифических холлах и оптике.
Кстати, давить дребезг емкостями некуртуазно, ибо вы уменьшаете ресурс контактов из-за экстратоков разряда. Да и не нужна там емкость. Дребезг гасится интервалом опроса.
Марк вне форума   Ответить с цитированием
Старый 12.05.2020, 10:17   #20
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 3,172
Вес репутации: 4064/119
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Для меню достаточно одного таймера в режиме энкодера.
Вы сначала сделайте этот режим, а потом будете что либо утверждать.
У вас обычные свичи обработчика будут заменены на бесконечные вычитания старого и нового состояния таймера, чтобы выяснить направление счета. Ну и дребезг тоже как то надо обрабатывать...
Марк вне форума   Ответить с цитированием
Старый 12.05.2020, 10:27   #21
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,552
Вес репутации: 790/51
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Марк Посмотреть сообщение
к "паре-тройке строчек кода в обработчике", которые на самом деле превратятся в десяток-полтора машинных инструкций будет добавлена неприличная латентность входа и выхода этого самого обработчика... То есть по факту такая конструкция будет исполнятся примерно 40-50 машинных циклов МИНИМУМ. И при периоде прерываний 10 мкс (100 кГц) и каком нибудь М0 с 50 МИПСами (20 нс) затраты на всю эту белиберду составят 10% от общей производительности МК. ДЕСЯТЬ ПРОЦЕНТОВ, Карл!!! И это к тому же блокирующие 10%...
Карл... ой... Марк...
в прерывании только куда поехали и на сколько...
остальное в основном цикле пускай работает...

или вы считает, что юзвер будет ожесточённо ручку крутить с частотой выше нервной системы?
SergP01 вне форума   Ответить с цитированием
Старый 12.05.2020, 10:38   #22
Greg
Super Moderator
 
Регистрация: 25.02.2007
Адрес: Moscow, ODBS
Сообщений: 7,033
Вес репутации: 6060/179
Greg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond reputeGreg has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Pridnya Посмотреть сообщение
Под сотню Compare имеется ввиду сотня энкодеров или отловить сотню событий (импульсов)?
да, как-бы один модуль capture должен поставить в очередь на compare под сотню событий. у таймера stm всего 4 модуля, один сожрется этим энкодером. Очередь по-всякому тянуть, оказалось проще софтом.
Greg вне форума   Ответить с цитированием
Старый 12.05.2020, 10:48   #23
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 3,172
Вес репутации: 4064/119
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от SergP01 Посмотреть сообщение
остальное в основном цикле пускай работает...
Тут речь шла о 100 кГц и паре-тройке строк кода В ОБРАБОТЧИКЕ. Вот только о них я и говорил.
А для механического контактного энкодера частоту вызова обработчика я озвучил выше - 150...200 Гц. Только для этого не требуется хардварный интерфейс энкодера. Он не дает никакого выигрыша вообще. Просто перевод таймера на беспонтовую задачу. Типа как использовать ДМА с одной транзакцией в сообщении. )))
Марк вне форума   Ответить с цитированием
Старый 12.05.2020, 10:55   #24
SergP01
Senior Member
 
Аватар для SergP01
 
Регистрация: 09.11.2012
Адрес: SPB
Возраст: 52
Сообщений: 1,552
Вес репутации: 790/51
SergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to beholdSergP01 is a splendid one to behold
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от Марк Посмотреть сообщение
Тут речь шла о 100 кГц и паре-тройке строк кода В ОБРАБОТЧИКЕ. Вот только о них я и говорил.
дык и я о них говорил.... сколько SysTick() отжирает у проца?
не думаю что прерывание по импульсу на входе- будет заметно основной программе...
как и SysTick()... я считываю VolumePower()... в основном цикле... и гружу индикатор...

Последний раз редактировалось SergP01; 12.05.2020 в 11:02.
SergP01 вне форума   Ответить с цитированием
Старый 12.05.2020, 11:07   #25
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: Московская область
Возраст: 60
Сообщений: 3,172
Вес репутации: 4064/119
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Энкодер Bourns PEC16

Цитата:
Сообщение от SergP01 Посмотреть сообщение
не думаю что прерывание по импульсу на входе- будет заметно основной программе...
Систик - это даже для ОСРВ обычно 1 мс и более. Ну никак не 100 кГц.
А озвучили именно 100 кГц.
Марк вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите запрограммировать энкодер agat777 Общетехнические вопросы 0 15.04.2011 09:40
Энкодер на длинном проводе Слесарь Продукция MICROCHIP 19 14.11.2010 12:32
Какой линейный абсолютный энкодер посоветуете d-f-m Продукция MICROCHIP 65 20.03.2010 11:41
Энкодер AS5030. Как вычислить направление и скорость? IDE-5 Общетехнические вопросы 53 12.08.2009 11:19
Не могу найтить ЭНКОДЕР... dr_Sash Общетехнические вопросы 25 22.05.2009 21:09


Часовой пояс GMT +3, время: 16:59.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot