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

LPC17xx Quadrature encoder

Доброе время суток.

 

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

 

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

 

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

 

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

 

Если кто то пробовал использовать QEI и одновременно читать состояние с GPIO - может подскажете что получилось?

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


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

QEI не пробовал, но сейчас у меня в проекте используются входы EventMonitor-а, которые опрашиваются как GPIO когда есть питание и как входы EventMonitor-а, когда питание выключено

(без переконфигурирования естественно). Конфигурю на них функцию GPIO, но получается что функция EventMonitor всё равно при этом работает (и при вкл. питании и при выкл.).

Конечно функция GPIO включена на ввод.

LPC1778.

 

Так что у вас есть надежда. Пробуйте.

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


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

сразу напишу - подобным вопросом не задавался, так как пинов хватало и я не жадный ;)

 

вот цитата из мануала на 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:

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


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

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

 

Для внешнего прерывания, кстати, довольно удобно - настраиваешь на фронт, а потом разбираешься, закончилось оно, или ещё нет.

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


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

Если кто то пробовал использовать 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 считало нужно, чтоб было два меандра - "синус-косинус".

 

Изменено пользователем evgen2

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


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

я так делаю.

Работает.

Как-то так

 

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 режима - "квадратурный кодер" и "датчик импульсов плюс сигнал направления". Вот последний и планировалось использовать.

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


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

Там 2 режима - "квадратурный кодер" и "датчик импульсов плюс сигнал направления".

 

Да, действительно. Подзабыл за ненадобностью.

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


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

Чтобы закрыть тему... ;)

 

Оно работает. ;) Частотомер плюс контроль логического уровня при частоте равной нулю на одном пине живут.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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