boez писал(а):И АВР такое может быть даже потянет чисто программно, если его аккуратно замучать
Если только все на ассемблере написать, тогда можно штук шесть регистров исключительно под обработку энкодера выделить.Но все равно при считывании положения придется прерывания запрещать, и есть реальный шанс пропуска импульсов
Вроде начинаю понимать. При использовании такой логики как на приведенной схеме (7474N)мне можно использовать мой алгоритм и просто домножать на коэфициент деления? Тем более можно использовать не одну а несколько таких D-триггеров. Я правельно понимаю?
В паспорте на датчик рекомендуется использовать ИС AM26LS32 и AM26C32, но толком не чего на них найти не могу. Может кто нибудь работал с ними или знает о них что нибудь?
Нет, это просто дифференциальный приемник 4-канальный. Сорри, забываю что не все люди умеют читать по-аглицки Там датчик передает каждый сигнал по двум проводам в противофазе. Можно просто взять один из этих сигналов, но помехозащищенность будет низкой, а можно применить такую микруху и повысить помехозащищенность, особенно если провода от датчика длинные. В общем, процессу счета это не поможет никак, на выходе все равно будет меандр с той же частотой импульсов.
Мы на прошлой работе применяли датчик ЛИР (кажется ЛИР-120), не заморачиваясь с диф. входами, просто подавали один из сигналов пары на дискретный вход контроллера (там по входу просто резистор и светодиод оптрона развязки), на 3000 оборотов работало без сбоев (датчик кажется 1024 имп/об), выше не надо было. Потом все это подавалось на TMS320F240, у него аппаратный модуль интерфейса энкодера, сразу 16- или 32-битным таймером считает импульсы, с учетом направления, программно вообще ничего делать не надо. С атмегой все намного сложнее, на атмеге я работал только с энкодером, управлялемым рукой (просто такая крутилка), там даже прерывания не нужны были, опросом раз в миллисекунду все делалось. Так что конкретного решения в виде куска кода для работы с быстрыми энкодерами на авр у меня нету, было бы - поделился бы.
принцип действия я представляю себе так: обнуляем счетчик, зпускаем его, после завершения съема данных с датсика счетчиком - опрашиваем счетчик с помощью МК, а там уже проводим дальнейшие операции.
ммм... датчик-энкодер дергает ногами пока ему крутят вал... это ведь понятно?
по скольку дерганья идут на достаточно большой частоте, мы ставим счетчик, который переводит кол-во дерганий в параллельный код... его съем со счетчика производится по параллельной шине, а может есть и по последовательной я не в курсе... т.е. нам нада читать счетчик как можно чаще, чтобы не пропустить события... но читать мы может уже сразу байт... если счетчик 8-ми битный... или более... или можно каскадировать счетчики...