|
ENCODER, Помогите начинающему! |
|
|
|
Jul 21 2009, 06:52
|
Участник

Группа: Новичок
Сообщений: 37
Регистрация: 12-01-09
Из: ЛИТВА
Пользователь №: 43 233

|
Всем добрый!
Есть такая штука - у нее 2 выхода A и B. В начальный момент оба в состоянии "0". Задача : если первым импуьс появится на выходе A ,то счетчик должен считать эти импульсы UP, а если первым импуьс появится на выходе B ,то счетчик должен считать эти импульсы DOWN.
Как это можно реализовать на VHDL ?
|
|
|
|
|
 |
Ответов
|
Jul 21 2009, 12:07
|
Участник

Группа: Новичок
Сообщений: 37
Регистрация: 12-01-09
Из: ЛИТВА
Пользователь №: 43 233

|
Цитата(DpInRock @ Jul 21 2009, 12:19)  Абсолютно правильно. D-триггером. Попробовал реализовать на VHDL в железе, все ОК.!!! Но очень много дребезга от этого механического устр-ва, а микросхема очень быстродействующая FPGA (250 MHz), по входу фильтрануть не получается, да и триггер Шмидта поставить не удастся, т.к. работаю на готовом продукте. Всем спасибо!
|
|
|
|
|
Aug 1 2009, 20:33
|
Гуру
     
Группа: Участник
Сообщений: 3 834
Регистрация: 14-06-06
Из: Moscow, Russia
Пользователь №: 18 047

|
Цитата(muravei @ Aug 1 2009, 10:31)  А какие у вас номиналы, ну или пост. времени. Я попробовал, что-то у меня дребезг не давит, а импульсы , при быстрм вращении валятся в половину. Ничего удивительного - бороться с дребезгом механических энкодеров RC-цепочками это идиотизм. С бубном вокруг поплясать - и то больше толку. Надо сделать автомат состояний, забирая выборки либо по прерываниям (от обоих каналов энкодера), либо поллингом с достаточно высокой частотой. Дальше все просто, имеем два значения в текущий момент и два те же самые, но на предыдущей выборке. Всего 16 комбинаций. Их декодируем в три варианта - счетчик в "+", в "-" либо ничего не делать. Для большинства энкодеров один щелчок - сдвиг счетчика на 4 либо на 2 (реже). Выборку обработали, сдвинули "историю" и так дальше. Я использовал выборку 4 kHz, энкодер PEC16. Ошибка на шаг при резких рывках вперед-назад - событие редчайшее, при вращении в одну сторону вообще никаких проблем.
|
|
|
|
Сообщений в этой теме
XILINX ENCODER Jul 21 2009, 06:52 VladKot Цитата(XILINX @ Jul 21 2009, 09:52) Есть ... Jul 21 2009, 07:01 XILINX Цитата(VladKot @ Jul 21 2009, 10:01) Вы у... Jul 21 2009, 07:10 MrYuran Цитата(VladKot @ Jul 21 2009, 11:01) Вы у... Jul 21 2009, 07:13 dimoon А и Б - последовательность импульсов, Б сдвинут на... Jul 21 2009, 08:42  izerg Как говорять, самостоятельно писали наверное тольк... Jul 21 2009, 12:24    haker_fox Цитата(muravei @ Aug 1 2009, 15:31) А как... Aug 1 2009, 11:11     muravei Цитата(rx3apf @ Aug 2 2009, 00:33) Дальше... Aug 5 2009, 07:50 vik0 DpInRock, читаем внимательно:
Цитатаработаю на гот... Jul 21 2009, 18:00 XILINX Цитата(vik0 @ Jul 21 2009, 21:00) DpInRoc... Jul 22 2009, 05:51 DpInRock О простой RC цепочке. Если у вас энкодер механичес... Jul 21 2009, 19:22 haker_fox Цитата(DpInRock @ Jul 22 2009, 04:22) О п... Jul 22 2009, 07:15 rv3dll(lex) мой фильтр
CODElibrary ieee;
use ieee.std_logic... Jul 27 2009, 10:22 x736C rv3dll(lex), есть такой вариант, правда на verilog... Aug 5 2009, 09:48
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|