DDS - функциональный генератор с "джамперным" управлением на ПЛМ.
Вашему вниманию предлагается функциональный генератор, разработанный в качестве примера использования технологии DDS (Direct Digital Synthesizer) на базе ПЛМ EPM3064ALC44-10 фирмы Altera (стоимость ПЛМ - около 2$). Параметры прибора следующие:
Форма выходного сигнала:
синусоидальный
треугольный
прямоугольные импульсы
Амплитуда выходного сигнала - около 1В
Установка частоты: 0 Гц -1.5 МГц с дискретностью около 3 Гц
Разрядность выходного ЦАП - 6
Управление режимом и частотой - при помощи ряда джамперов
Возможные вариации (при изменении набора функций и/или применении ПЛМ большего объема/быстродействия):
Увеличение разрядности ЦАП до 7 или 8
Уменьшение шага установки частоты до 1Гц и менее
Увеличение максимальной генерируемой частоты
Подключение к микроконтроллеру
Управление PLL-генератором - например, в малошумящем синтезаторе частоты КВ трансивера
Рис. 1
Фотография макета генератора (ЦАП из SMD-резисторов
размещен на обратной стороне платы)
Рис. 2
Сигналы различной формы (частота 1.5 кГц) на
экране осциллографа
Рис. 3
Схема генератора
Напряжение питания стабилизируется микросхемой 78L03. Двухрядный 10-контактный разъем предназначен для подключения программатора ByteBlaster. Режим работы и частота задаются джамперами. В качестве опорного генератора используется кварцевый генератор (частота 25 МГц). 6-разрядный резисторный ЦАП собран по классической схеме R-2R, на выходе которого необходимо установить ФНЧ (схема которого определяется требованиями к чистоте спектра сигнала) .
Рис. 4
Функциональная схема цифровой
части генератора (то, что находится внутри
ПЛМ)
22-разрядный сумматор adder вычисляет сумму входного вектора in[21..0] (из них 19 разрядов выведены на джамперы, на остальные 2 подается логический "0") и содержимого регистра reg. Входной сигнал iclk, частота которого поделена на 2 триггером, защелкивает очередную сумму sum[21..0] в регистре. Таблица functab7x6 формирует 6-разрядный выходной код dac[5..0] (подаваемый на ЦАП) из входного, подключенного к 7 старшим разрядам q[21..15] регистра. Входы sinsaw и square выбирают форму синтезируемого сигнала: синусоидальный, треугольный или прямоугольные импульсы.
Приведенная выше схема нарисована в графическом редакторе системы MAX+PLUS, а ее функциональные элементы реализованы на языке программирования AHDL.
ВременнОй анализ схемы в системе MAX+PLUS (Registered Performance) показывает, что для применяемой микросхемы EPM3064ALC44-10 внутрисхемные временные задержки (в основном, в сумматоре) могут составить примерно 90 нс. Это ограничивает тактовую частоту схемы на уровне примерно 11 МГц. В описанной схеме эта частота составляет 12.5 МГц, что несколько выше допустимой, однако схема работает нормально.
Для расчета коэффициента, определяющего положение 19 джамперов для заданной выходной частоты, воспользуемся формулой:
K = F*(2^22)/(25000000/2) ≈ F*0.33554432,
здесь F - необходимая частота в Гц, 22 - разрядность сумматора, 25000000 - частота генератора, Гц.
Для частоты 1 кГц, получим K = 335.54432 ≈ 336 или 1010100002 в двоичной форме.
По обратной формуле
F = K*(25000000/2)/(2^22) = K*2.9802322
вычислим точное значение частоты для коэффициента K=336: F=336*2.9802322=1001.3580322 Гц.
Максимальная генерируемая частота:
Fmax = 11111111111111111112 * 2.9802322
≈ 1.562497 МГц. Если 3 старших разряда in[21..19]
сумматора (см. рис. 4) также вывести на
джамперы, эта частота составит 6.25 МГц.
Рис. 5
Спектрограмма синусоидального
сигнала с частотой 1.5 кГц (программа SpectraLab). Испытания показывают, что уровень
самой сильной гармоники для
низкочастотного синусоидального сигнала
составляет около -50 дБ.
Комплект схем и программ для MAX+PLUS:
Источники:
Murray Greenman, ZL1BPU. A Sine/Noise/Pulse and Sweep Generator.
ПЛМ фирмы Altera. www.altera.com
А.П. Антонов. Язык описания цифровых устройств AlteraHDL. Практический курс. -М.:ИП РадиоСофт, 2002.
Денис Нечитайлов (UU9JDR, uu9jdr@qsl.net)