О важности правильного выбора опорного генератора для FPGA при разработке приложений для аудио, видео
Предыстория
Как-то потребовалось в одно чисто аналоговое устройство добавить возможностей. Затея была такова, что был совершенно очевиден факт, что результат может быть достигнут только цифровыми методами.
Устройство было достаточно сложным. Чтобы как-то оценить работу добавления, не нарушив функциональности уже отлаженной аналоговой части, появилась идея сделать модуль, который можно было бы испытать, а потом, в случае успеха, вставлять в уже работающий прибор. А если затея не получилась бы, то вместо модуля воткнуть заглушку, обеспечить прозрачный режим.
Схемотеника
Поскольку полное устройство должно было работать независимо от того, есть дополнительный модуль или нет, то очевидно, что на входе модуля должен был быть установлен АЦП, а на выходе — ЦАП.
Как следует из рисунка, на входе установлен АЦП типа ADC12020, на выходе — ЦАП типа DAC7821. Некоторое неудобство создавалось тем, что ADC12020 имеет дифференциальный вход. Но это неудобство оборачивается подавлением синфазных шумов и помех, что немаловажно для полного динамического диапазона.
Реализация
Модуль бы реализован в виде 4-слойной платы с габритами 50х30 мм, с 19х2 контактами с шагом 2.54 мм. Т.е. модуль может монтироваться с помощью розеток для обычных штыревых разъёмов.
Меняя чип 10Mxx, можно строить устройства различной степени сложности при тех же габаритах и интерфейсе.
Проблема
В первой реализации были использованы опорные кварцевые генераторы из магазина «Кварц», на которые даже не было данных, кроме частоты.
Тестирование модулей показало, что всё задуманное работает. Однако при соединении полных изделий по линии связи (а речь в данном случае идёт про трансиверы) оказалось, что связь не работает, либо работает на скоростях значительно ниже тех, которые должны были быть.
Внимательное исследование обнаружило, что имеются некие отклонения в граничных частотах синтезированных фильтров и выходных частотах модуля.
Обнаружилось, что причина этого — разброс частот опорных кварцевых генераторов до 10 кГц от номинала.
Сигнал имел довольно сложную структуру с модуляцией QPSK, принимался специализированным чипом, в котором заложена подстройка по частоте, но гораздо более узкая, чем получившиеся отклонения. Соответственно, приём был не возможен.
Путём замера конкретной частоты конкретного генератора и записи этой конкретной частоты в программу конфигурирования FPGA удалось устранить выявленную проблему.
В работе [1] показано влияние отклонения частоты на качество приёма.
Решение
Стандартные кварцевые генераторы, которые в избытке имеются на рынке, имеют вот такие параметры, как, например, генераторы от Seiko Epson[2]:
Видно, что лучший параметр, это 2х10-5, что на несущей частоте 50 МГц даёт значение отклонения 1 кГц, что может быть весьма критичным. В таблице также нет такого параметра, как выбег частоты по включении генератора.
Поиск на рынке по заданным параметрам отклонения частоты и возможности приобретения привёл к изделиям компании Taitien. На рисунке даны параметры серии TCXO[3]:
Из таблицы видно, что точность частоты по крайней мере на порядок выше, чем у стандартных кварцевых генераторов.
В результате стало возможным устанавливать связь между двумя устройствами без установки точной опорной частоты в FPGA. Реально используется генератор типа TYETBCSANF, который, правда, имеет выход в виде клипированной синусоиды. Но это преодолевается с помощью несложной схемы.
Заключение
При проектировании радиотехнических систем на базе FPGA нужно обращать внимание на качество опорного генератора, его стабильность. И выбирать опорный генератор в соответствии с требованиями к точности по частоте.