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

vladimir52

Участник
  • Постов

    5
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Посетители профиля

326 просмотров профиля
  1. Спасибо. Кстати, раз уж зашла речь про энкодер, вернее выделение сиrнала из квадратуры энкодера. Есть простая и заезженная схема, например:отсюда: Которая, как ни странно в ПЛИС работает неважно, на stackoverflow видел много вопросов, почему энкодер "убегает". Хотя в дискретном варианте, на логике, вполне нормально работает. Поэтому рекомендуют использовать граф состояний, или state-machine (конечно с предварительной фильтрацией). Примерно вот так: А есть какой-то устоявшийся и проверенный вариант?
  2. А еще тупой вопрос. В этой "классической" схеме счетчик тактируется импульсами входного сигнала. Т.е. по отношению ко всей схеме, где есть внешняя тактовая частота (20 МГц) он как-бы асинхронный. Имеет смысл так и отавить, и только поставить на выходе триггер-защелку для синхронизации с общей тактовой частотой?
  3. Ясно, спасибо! Нашел еще одну тему, где вроде вывели универсальный делитель. Принцип тот же- "фазовый накопитель". Правда я пока еще не разобрался, можно ли M сделать переменной, т.е. задавать налету (а не при инстанциировании модуля).
  4. Спасибо! Из прошлогодне темы нашел, что "Старший бит регистра будет выходом деленной частоты F2=F1*K/2^N." Как получить коэффициент деления 1/1000? И еще вопрос. Делитель с фиксированным дробным коэффициентом деления получить можно, а для всех возможноых вариантов деления генерить каждому по делителю? Хочется найти параметризованное решение.
  5. Добрый день! Первый пост на форуме и сразу просьба: нужна помощь в том, что бы разобраться, как реализовать делитель. Исходные условия такие: Входной сигнал - последовательность импульсов с квадратурной схемы энкодера, частота Fin которых меняется от 0 до 1 МГц. Причем меняется она обычно довольно плавно, но с 0 может стартануть резко (крутнули энкодер), и так же резко остановиться. Коэффициент деления K лежит в диапазоне от 1 до 1000. К сожалению, без дроби не получается, поэтому K = N/M, где N=[1,1000], M=[1,100]. K всегда >=1, может оперативно меняться юзером, при этои все счетчики конечно сбрасываются. Ни один входной импульс "потерять" нелья, т.к. это не генератор частоты, а счетчик импульсов для управления движением (конвертация импульсов энкодера в шаги двигателя). Поэтому схема на PLL, как мне кажется, не стработает - не будет "схватывать" на переходных стадиях поступления импульсов, да и частота маловата. Требования к фазе импусльсов не жесткие - "дрожание" вполне допускается, лишь бы не более половины периода выходной частоты Fout. (Разработку ПЛИС делал когда-то на AHDL, поэтому проще понять структуру делителя на уровне базовой логики. Но писать буду на Verilog'e для Altera Cyclone IV) Спасибо.
×
×
  • Создать...