Jump to content

    

Леонид Иванович

Участник
  • Content Count

    329
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Леонид Иванович

  • Rank
    Местный

Контакты

  • Сайт
    http://www.leoniv.diod.club/

Информация

  • Город
    Минск

Recent Profile Visitors

2449 profile views
  1. Цифровой частотно-фазовый детектор

    В реальности будет немного не так: вместо таймера - программный NCO, вместо capture - обычное внешнее прерывание.
  2. Вот так выглядят подписи. А вот это вижу в настройках. Где там искать подпись?
  3. Цифровой частотно-фазовый детектор

    Делал примерно так же. Несколькими постами выше я приводил диаграммы состояний частотно-фазового детектора, значения FDET там - это и есть значения cnt. Только у меня не было cnt-- и сравнение делал с 1. Получается, что именно так и делают, вопрос можно считать закрытым. А не попадался ли какой-нибудь готовый проект или appnote на тему ФАПЧ управления двигателями? Еще раз - разрядность таймера влияет только на точность представления фазы. Полный диапазон кодов таймера - это угол от 0 до 360 градусов. На каждый импульс таходатчика всегда приходится одно переполнение таймера. Меняется частота вращения - меняется и частота переполнений таймера (фактически там будет NCO, а не таймер, я об этом писал).
  4. Цифровой частотно-фазовый детектор

    Период таймера - это опорный сигнал, он всегда равен номинальному периоду сигнала таходатчика. То, что Вы описали дальше, это АПЧ, а не ФАПЧ.
  5. Присоединяюсь к вопросу. Хочу убрать из подписи ЖЖ, который больше не обновляется, но не знаю, как.
  6. Цифровой частотно-фазовый детектор

    При чем тут разрядность таймера? Она влияет только на точность измерения ошибки фазы.
  7. Цифровой частотно-фазовый детектор

    Файл нашелся чуть по другой ссылке: http://homepages.cae.wisc.edu/~brodskye/mr/phaseunwrap/unwrap.c Только в данном случае не вижу от него пользы. Хотелось бы увидеть пример, как реализуют управление электродвигателями на микроконтроллере не спомощью PID, а с помощью PLL. Вроде, распространенная задача, а ничего найти почему-то не удалось.
  8. Цифровой частотно-фазовый детектор

    > почему не подходит ЧФД на двух триггерах с выходом типа "зарядовый насос" ? Потому что он увеличивает количество компонентов в устройстве. Требуется полностью цифровое решение, которое будет реализовано внутри микроконтроллера. > копите абсолютную фазу По сравнению с этим мои костыли выглядят менее страшными: //Состояния частотно-фазового детектора: //NCO OVF: _|_____|_____|_____|_____|_____|_ //SENSOR: _____|_____|_____|_____|_____|____ //FDET: 0 1 0 1 0 1 0 1 0 1 0 //FREQ OK OK (1->0) //NCO OVF: _|_____|_____|_____|_____|_____|_ //SENSOR: _____|____|_|___|||____|_____|____ //FDET: 0 1 0 1 2 0 123 0 1 0 1 0 //FREQ HI H H(2->0, 3->0, etc) //NCO OVF: _|_____|_____|_____|_____|_____|_ //SENSOR: _____|___________|_____|_____|____ //FDET: 0 1 0 0 1 0 1 0 1 0 //FREQ LO L (0->0) Самое близкое, что находил по теме, это реализация частотно-фазового детектора на FPGA, но и там нет "честного" насыщения, коды при отклонении частоты дергаются. A FPGA Implementation of a PLL.pdf
  9. Цифровой частотно-фазовый детектор

    Если скорость двигателя выше номинальной, частотно-фазовый детектор должен выдавать максимальное положительное значение ошибки. Если ниже - максимальное отрицательное. Разность двух последовательных значений таймера ничего не даст, например, в случае вдвое более низкой скорости двигателя получим номинальное значение. Не хотелось бы детектор разбивать отдельно на частотный и фазовый. Лучше, если фазовый детектор будет иметь зоны насыщения при больших ошибках. Аналогично детекторам микросхем синтезаторов частоты.
  10. Задача тривиальная - стабилизировать скорость вращения электродвигателя с помощью ФАПЧ. В качестве генератора опорного сигнала выступает таймер (потом будет NCO, но это сути не меняет), импульсы с таходатчика производят захват мгновенного значения таймера, эта величина сразу дает текущую ошибку фазы. Проблема состоит в том, что у такого фазового детектора передаточная характеристика пилообразная. Будут захватываться сигналы кратной частоты, чего допустить нельзя. Нужен частотно-фазовый детектор, у которого при больших ошибках передаточная характеристика должна быть горизонтальной. Вроде, это называется phase unwrapping. Как ни странно, не удалось найти вменяемых примеров, как это красиво делается. Придумывается только какая-то громоздкая машина состояний, состояния которой должны меняться в прерываниях по захвату и переполнению, и решение принимается на основе анализа нескольких периодов. Как это обычно делают?
  11. А зачем входные токи ОУ компенсировать? Ну будет смещение нуля на выходе, так в такой схеме оно в любом случае будет из-за разброса полевиков, вклад ОУ здесь незначительный. Нулевую линию дальше подстроите в осциллографе - и всё. Если хотите хорошего нуля от такого пробника, тогда надо вводить сервопетлю по DC на низкочастотном прецизионном ОУ.
  12. У меня есть вот такой проект:
  13. Embedded C++.

    Очевидный плюс перейти на С++ состоит в том, что не надо будет больше скрывать исходники. Они являются самокриптующимися, никто из конкурентов с ними ничего сделать не сможет.
  14. Делал с помощью видеоусилителя TDA6120Q.