Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: LPC17xx Quadrature encoder
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Velund
Доброе время суток.

Возникла некоторое время назад нужда подключить хитрый датчик (точнее манипулятор управления) к поделке на LPC. Тогда как то замялся вопрос, но опять нарисовался сегодня. wink.gif А я сам как то и не сподобился провести эксперимент. Может у кого то есть готовый ответ на вопрос в конце этого поста?

Из характерного - девайс использует наличие напряжения при нахождении в нейтральном положении как индикатор целостности проводки и меандр с частотой пропорциональной отклонению.

Очень хорошо вроде бы вписывается в функции QEI. Прямо таки подаешь сигнал и получаешь готовую цифру, пропорциональную отклонению, без нагрузки на проц, да еще и с возможностью сгенерить прерывание если манипулятор резко дернули "вниз".

Но вот смущает необходимость при нулевой частоте контролировать наличие логической единицы для проверки того что подключен этот манипулятор и линия цела. В документации непонятно, будет ли читаться пин сконфигуренный под QEI как GPIO. Еще один пин выделять для этого - жалко.

Если кто то пробовал использовать QEI и одновременно читать состояние с GPIO - может подскажете что получилось?
jcxz
QEI не пробовал, но сейчас у меня в проекте используются входы EventMonitor-а, которые опрашиваются как GPIO когда есть питание и как входы EventMonitor-а, когда питание выключено
(без переконфигурирования естественно). Конфигурю на них функцию GPIO, но получается что функция EventMonitor всё равно при этом работает (и при вкл. питании и при выкл.).
Конечно функция GPIO включена на ввод.
LPC1778.

Так что у вас есть надежда. Пробуйте.
swisst
сразу напишу - подобным вопросом не задавался, так как пинов хватало и я не жадный wink.gif

вот цитата из мануала на 1768
Цитата
GPIO port Pin value register FIOxPIN (FIO0PIN to FIO4PIN- 0x2009
C014 to 0x2009 C094)
This register provides the value of port pins that are configured to perform only digital
functions. The register will give the logic value of the pin regardless of whether the pin is
configured for input or output, or as GPIO or an alternate digital function. As an example,
a particular port pin may have GPIO input, GPIO output, UART receive, and PWM output
as selectable functions. Any configuration of that pin will allow its current logic state to be
read from the corresponding FIOxPIN register.

можно проверить на том же уарте, но я бы еще и пин заложил... biggrin.gif
esaulenka
Квадратурный энкодер ни разу не использовал, но состояние ног UART / SPI / I2C отлично считывается с GPIO. LPC1768

Для внешнего прерывания, кстати, довольно удобно - настраиваешь на фронт, а потом разбираешься, закончилось оно, или ещё нет.
evgen2
Цитата(Velund @ Nov 29 2013, 04:45) *
Если кто то пробовал использовать QEI и одновременно читать состояние с GPIO - может подскажете что получилось?


я так делаю.
Работает.
Как-то так

i = LPC_GPIO1->FIOPIN;
//разряды LPC_QEI = 20,23,24
if(i & 0x0100000) v |=0x01;
if(i & 0x0800000) v |=0x02;
if(i & 0x1000000) v |=0x04;

только чтоб QEI считало нужно, чтоб было два меандра - "синус-косинус".
Velund
QUOTE (evgen2 @ Dec 2 2013, 17:48) *
я так делаю.
Работает.
Как-то так

i = LPC_GPIO1->FIOPIN;
//разряды LPC_QEI = 20,23,24
if(i & 0x0100000) v |=0x01;
if(i & 0x0800000) v |=0x02;
if(i & 0x1000000) v |=0x04;

только чтоб QEI считало нужно, чтоб было два меандра - "синус-косинус".


Там 2 режима - "квадратурный кодер" и "датчик импульсов плюс сигнал направления". Вот последний и планировалось использовать.
evgen2
Цитата(Velund @ Dec 3 2013, 00:07) *
Там 2 режима - "квадратурный кодер" и "датчик импульсов плюс сигнал направления".


Да, действительно. Подзабыл за ненадобностью.
Velund
Чтобы закрыть тему... wink.gif

Оно работает. wink.gif Частотомер плюс контроль логического уровня при частоте равной нулю на одном пине живут.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.