Я пытаюсь захватить пиксельные данные, идущие на небольшой черно-белый ЭЛТ-дисплей. Сигналы, с которыми мне приходится работать, — это сигнал пиксельных данных уровня TTL, HSYNC и VSYNC. Я знаю тактовую частоту пикселей (~ 16 МГц), но для моего приложения у меня нет доступа к тактовому сигналу пикселей.
Я хочу сэмплировать сигнал пикселя в соответствующее время (в середине битового периода, а не во время перехода), поэтому я решил, что мне нужно сгенерировать новый тактовый сигнал 16 МГц с некоторым фазовым отношением к фронту сигнала HSYNC и используйте это для выборки сигнала пикселя.
Я знаю, как использовать PLL для умножения тактового сигнала и поддержания определенного соотношения фаз между входом и выходом, но как мне поддерживать подобное соотношение между новыми тактовыми импульсами 16 МГц и сигналом, который лишь изредка имеет фронт (HSYNC) ?
Или есть лучший способ решить эту проблему?
Один из способов приблизиться к этому — использовать вашу PLL (со ссылкой на HSYNC) для генерации основных часов с тактовой частотой в 3 или 4 раза больше, чем тактовая частота пикселей, а затем использовать счетчик Джонсона для генерации новых тактовых импульсов пикселей с 3 или 4 различными значениями фазы. Затем вы можете выбрать фазу с желаемой синхронизацией либо вручную с помощью перемычки, либо электронным способом с помощью мультиплексора.
Есть способы привязать PLL непосредственно к прерывистому опорному сигналу (т. е. к самому видеосигналу), но, поскольку вы уже знаете номинальную частоту точек, в этом нет необходимости. Однако вы можете использовать фазовый детектор такой системы, чтобы автоматически выбирать лучшую фазу счетчика Джонсона для отбора проб.
Это звучит как одноразовый проект (большинство просто мусорная технология B&W CRT).
Даже с такой старой технологией было принято получать все время от одних главных часов. Если это так, то HSYNC, скорее всего, синхронизируется с границами пикселей, что значительно упрощает разработку PLL.
Осциллограф, запущенный на HSYNC при просмотре видео TTL, скажет вам, синхронизирован ли HSYNC с часами пикселей? Если это так, вы также получите некоторое представление о джиттере, с которым придется иметь дело вашей PLL. А синхронный HSYNC значительно упрощает проектирование PLL. Даже в этом простом сценарии вы должны бороться с отсутствием ввода PLL во время вертикального обратного хода.
Это (в принципе) довольно просто. Вы не пытаетесь зафиксировать свои часы на 16 МГц. Вместо этого вы строите делитель, который имеет выходную частоту той же частоты, что и ваша синхронизация. Например, если ваш период горизонтальной развертки равен 63,5 мкс, это будет 1016 циклов по 16 МГц. Таким образом, вы должны передать 16 МГц в цепочку деления на 1016, а затем синхронизировать вывод цепочки с Hsync.
Это "в принципе" довольно просто, но дьявол кроется в деталях. Вы должны ТОЧНО знать, как часы связаны с синхронизацией, иначе новые 16 МГц не будут привязаны к позициям пикселей. Вам нужно будет использовать VCXO для генератора, иначе большой коэффициент деления вызовет дрожание фазы на VCO, что может сделать систему непригодной для использования. Наконец, вам нужно будет экспериментально определить фазовый сдвиг между пикселями и частотой 16 МГц, что может вызвать у вас проблемы, а может и не вызвать.
Обратите внимание, что вы не можете сделать это с генератором с фиксированной частотой 16 МГц. Частота генератора ДОЛЖНА быть управляемой, и желательно, чтобы ее можно было настраивать в очень небольшом диапазоне, например, 100 ppm. Отсюда необходимость в VCXO.
Крис Стрэттон
Крис Стрэттон
Маркус Мюллер
Тони Стюарт EE75
Тони Стюарт EE75
Маркус Мюллер
Маркус Мюллер
пользователь3528438
Крис Стрэттон