Методы настройки и регулировки dds генератора сигналов. Генератор сигналов: функциональный генератор своими руками. Тест режимов работы генератора после сборки

Данный DDS функциональный генератор (версия 2.0) сигналов собран на микроконтроллере AVR, обладает хорошей функциональностью, имеет амплитудный контроль, а также собран на односторонней печатной плате.

Данный генератор базируется на алгоритме DDS-генератора Jesper , программа была модернизирована под AVR-GCC C с вставками кода на ассемблере. Генератор имеет два выходных сигнала: первый - DDS сигналы, второй - высокоскоростной (1..8МГц) "прямоугольный" выход, который может использоваться для оживления МК с неправильными фузами и для других целей.
Высокоскоростной сигнал HS (High Speed) берется напрямую с микроконтроллера Atmega16 OC1A (PD5).
DDS-сигналы формируются с других выходов МК через резистивную R2R-матрицу и через микросхему LM358N, которая позволяет осуществить регулировку амплитуды (Amplitude) сигнала и смещение (Offset). Смещение и амплитуда регулируются при помощи двух потенциометров. Смещение может регулироваться в диапазоне +5В..-5В, а амплитуда 0...10В. Частота DDS-сигналов может регулироваться в пределах 0... 65534 Гц, это более чем достаточно для тестирования аудио-схем и других радиолюбительских задач.

Основные характеристики DDS-генератора V2.0:
- простая схема с распространенными и недорогими радиоэлементами;
- односторонняя печатная плата;
- встроенный блок питания;
- отдельный высокоскоростной выход (HS) до 8МГц;
- DDS-сигналы с изменяемой амплитудой и смещением;
- DDS-сигналы: синус, прямоугольник, пила и реверсивная пила, треугольник, ЭКГ-сигнал и сигнал шума;
- 2×16 LCD экран;
- интуитивная 5-ти кнопочная клавиатура;
- шаги для регулировки частоты: 1, 10, 100, 1000, 10000 Гц;
- запоминание последнего состояния после включения питания.

На представленной ниже блок-схеме, приведена логическая структура функционального генератора:

Как вы можете видеть, устройство требует наличие нескольких питающих напряжений: +5В, -12В, +12В. Напряжения +12В и -12В используются для регулирования амплитуды сигнала и смещения. Блок питания сконструирован с использованием трансформатора и нескольких микросхем стабилизаторов напряжения:

Блок питания собран на отдельной плате:

Если самому собирать блок питания нет желания, то можно использовать обычный ATX блок питания от компьютера, где уже присутствуют все необходимые напряжения. Разводка ATX разъема .

LCD-экран

Все действия отображаются через LCD-экранчик. Управление генератором осуществляется пятью клавишами

Клавиши вверх/вниз используются для перемещения по меню, клавиши влево/вправо для изменения значения частоты. Когда центральная клавиша нажата - начинается генерирование выбранного сигнала. Повторное нажатие клавиши останавливает генератор.

Для установки шага изменения частоты предусмотрено отдельное значение. Это удобно, если вам необходимо менять частоту в широких пределах.

Генератор шума не имеет каких-либо настроек. Для него используется обычная функция rand() непрерывно подающиеся на выход DDS-генератора.

Высокоскоростной выход HS имеет 4 режима частоты: 1, 2, 4 и 8 МГц.

Принципиальная схема

Схема функционального генератора простая и содержит легкодоступные элементы:
- микроконтроллер AVR Atmega16, с внешним кварцем на 16 МГц;
- стандартный HD44780-типа LCD-экранчик 2×16;
- R2R-матрица ЦАП из обычных резисторов;
- операционный усилитель LM358N (отечественный аналог КР1040УД1);
- два потенциометра;
- пять клавиш;
- несколько разъемов.

Плата:

Функциональный генератор собран в пластиковом боксе:


Программное обеспечение

Как я уже говорил выше, в основе своей программы я использовал алгоритм DDS-генератора Jesper . Я добавил несколько строчек кода на ассемблере для реализации останова генерирования. Теперь алгоритм содержит 10 ЦПУ циклов, вместо 9.

void static inline Signal_OUT(const uint8_t *signal, uint8_t ad2, uint8_t ad1, uint8_t ad0){
asm volatile("eor r18, r18 ;r18<-0″ "\n\t"
"eor r19, r19 ;r19<-0″ "\n\t"
"1:" "\n\t"
"add r18, %0 ;1 cycle" "\n\t"
"adc r19, %1 ;1 cycle" "\n\t"
"adc %A3, %2 ;1 cycle" "\n\t"
"lpm ;3 cycles" "\n\t"
"out %4, __tmp_reg__ ;1 cycle" "\n\t"
"sbis %5, 2 ;1 cycle if no skip" "\n\t"
"rjmp 1b ;2 cycles. Total 10 cycles" "\n\t"
:
:"r" (ad0),"r" (ad1),"r" (ad2),"e" (signal),"I" (_SFR_IO_ADDR(PORTA)), "I" (_SFR_IO_ADDR(SPCR))
:"r18″, "r19″
);}

Таблица форм DDS-сигналов размещена во флэш памяти МК, адрес которой начинается с 0xXX00. Эти секции определены в makefile, в соответствующих местах в памяти:
#Define sections where to store signal tables
LDFLAGS += -Wl,-section-start=.MySection1=0x3A00
LDFLAGS += -Wl,-section-start=.MySection2=0x3B00
LDFLAGS += -Wl,-section-start=.MySection3=0x3C00
LDFLAGS += -Wl,-section-start=.MySection4=0x3D00
LDFLAGS += -Wl,-section-start=.MySection5=0x3E00
LDFLAGS += -Wl,-section-start=.MySection6=0x3F00

Данный DDS функциональный генератор (версия 2.0) сигналов собран на микроконтроллере AVR, обладает хорошей функциональностью, имеет амплитудный контроль, а также собран на односторонней печатной плате.

Данный генератор базируется на алгоритме DDS-генератора Jesper , программа была модернизирована под AVR-GCC C с вставками кода на ассемблере. Генератор имеет два выходных сигнала: первый - DDS сигналы, второй - высокоскоростной (1..8МГц) "прямоугольный" выход, который может использоваться для оживления МК с неправильными фузами и для других целей.
Высокоскоростной сигнал HS (High Speed) берется напрямую с микроконтроллера Atmega16 OC1A (PD5).
DDS-сигналы формируются с других выходов МК через резистивную R2R-матрицу и через микросхему LM358N, которая позволяет осуществить регулировку амплитуды (Amplitude) сигнала и смещение (Offset). Смещение и амплитуда регулируются при помощи двух потенциометров. Смещение может регулироваться в диапазоне +5В..-5В, а амплитуда 0...10В. Частота DDS-сигналов может регулироваться в пределах 0... 65534 Гц, это более чем достаточно для тестирования аудио-схем и других радиолюбительских задач.

Основные характеристики DDS-генератора V2.0:
- простая схема с распространенными и недорогими радиоэлементами;
- односторонняя печатная плата;
- встроенный блок питания;
- отдельный высокоскоростной выход (HS) до 8МГц;
- DDS-сигналы с изменяемой амплитудой и смещением;
- DDS-сигналы: синус, прямоугольник, пила и реверсивная пила, треугольник, ЭКГ-сигнал и сигнал шума;
- 2×16 LCD экран;
- интуитивная 5-ти кнопочная клавиатура;
- шаги для регулировки частоты: 1, 10, 100, 1000, 10000 Гц;
- запоминание последнего состояния после включения питания.

На представленной ниже блок-схеме, приведена логическая структура функционального генератора:

Как вы можете видеть, устройство требует наличие нескольких питающих напряжений: +5В, -12В, +12В. Напряжения +12В и -12В используются для регулирования амплитуды сигнала и смещения. Блок питания сконструирован с использованием трансформатора и нескольких микросхем стабилизаторов напряжения:

Блок питания собран на отдельной плате:

Если самому собирать блок питания нет желания, то можно использовать обычный ATX блок питания от компьютера, где уже присутствуют все необходимые напряжения. .

LCD-экран

Все действия отображаются через LCD-экранчик. Управление генератором осуществляется пятью клавишами

Клавиши вверх/вниз используются для перемещения по меню, клавиши влево/вправо для изменения значения частоты. Когда центральная клавиша нажата - начинается генерирование выбранного сигнала. Повторное нажатие клавиши останавливает генератор.

Для установки шага изменения частоты предусмотрено отдельное значение. Это удобно, если вам необходимо менять частоту в широких пределах.

Генератор шума не имеет каких-либо настроек. Для него используется обычная функция rand() непрерывно подающиеся на выход DDS-генератора.

Высокоскоростной выход HS имеет 4 режима частоты: 1, 2, 4 и 8 МГц.

Принципиальная схема

Схема функционального генератора простая и содержит легкодоступные элементы:
- микроконтроллер AVR Atmega16, с внешним кварцем на 16 МГц;
- стандартный HD44780-типа LCD-экранчик 2×16;
- R2R-матрица ЦАП из обычных резисторов;
- операционный усилитель LM358N (отечественный аналог КР1040УД1);
- два потенциометра;
- пять клавиш;
- несколько разъемов.

Плата:

Функциональный генератор собран в пластиковом боксе:


Программное обеспечение

Как я уже говорил выше, в основе своей программы я использовал алгоритм DDS-генератора Jesper . Я добавил несколько строчек кода на ассемблере для реализации останова генерирования. Теперь алгоритм содержит 10 ЦПУ циклов, вместо 9.

void static inline Signal_OUT(const uint8_t *signal, uint8_t ad2, uint8_t ad1, uint8_t ad0){
asm volatile("eor r18, r18 ;r18<-0″ "\n\t"
"eor r19, r19 ;r19<-0″ "\n\t"
"1:" "\n\t"
"add r18, %0 ;1 cycle" "\n\t"
"adc r19, %1 ;1 cycle" "\n\t"
"adc %A3, %2 ;1 cycle" "\n\t"
"lpm ;3 cycles" "\n\t"
"out %4, __tmp_reg__ ;1 cycle" "\n\t"
"sbis %5, 2 ;1 cycle if no skip" "\n\t"
"rjmp 1b ;2 cycles. Total 10 cycles" "\n\t"
:
:"r" (ad0),"r" (ad1),"r" (ad2),"e" (signal),"I" (_SFR_IO_ADDR(PORTA)), "I" (_SFR_IO_ADDR(SPCR))
:"r18″, "r19″
);}

Таблица форм DDS-сигналов размещена во флэш памяти МК, адрес которой начинается с 0xXX00. Эти секции определены в makefile, в соответствующих местах в памяти:
#Define sections where to store signal tables
LDFLAGS += -Wl,-section-start=.MySection1=0x3A00
LDFLAGS += -Wl,-section-start=.MySection2=0x3B00
LDFLAGS += -Wl,-section-start=.MySection3=0x3C00
LDFLAGS += -Wl,-section-start=.MySection4=0x3D00
LDFLAGS += -Wl,-section-start=.MySection5=0x3E00
LDFLAGS += -Wl,-section-start=.MySection6=0x3F00

Библиотеку для работы с LCD можно взять .

Не хочу вдаваться в подробное описание кода программы. Исходный код хорошо прокомментирован (правда на английском языке) и если будут какие либо вопросы по нему, то всегда можете воспользоваться нашим или в комментариях к статье.

Тестирование

Я тестировал генератор с осциллографом и частотомером. Все сигналы хорошо генерируются во всем диапазоне частот (1...65535 Гц). Регулирование амплитуды и смещения работает нормально.

В следующей версии генератора думаю реализовать сигнал нарастающей синусоиды.

Последнюю версию ПО (), исходник, файлы и можете скачать ниже.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Линейный регулятор

LM7805

1 В блокнот
Линейный регулятор

LM7812

1 В блокнот
Линейный регулятор

LM7912

1 В блокнот
B1 Диодный мост 1 В блокнот
C1, C7 2000 мкФ 2 В блокнот
C3, C5, C9 Электролитический конденсатор 100 мкФ 3 В блокнот
C4, C6, C10 Конденсатор 0.1 мкФ 3 В блокнот
TR1 Трансформатор 220В - 2x15В 1 В блокнот
F1 Плавкий предохранитель 1 В блокнот
S1 Переключатель 220В 1 В блокнот
X1 Разъём Сеть 220В 1 В блокнот
JP1 Разъём 4 контакта 1 Выход БП В блокнот
Основная плата
IC1 МК AVR 8-бит

ATmega16

1 В блокнот
IC2 Операционный усилитель

LM358N

1 КР1040УД1 В блокнот
C2, C3 Конденсатор 0.1 мкФ 2 В блокнот
C6, C7 Конденсатор 18 пФ 2 В блокнот
R1 Резистор

500 Ом

1 В блокнот
R2, R6, R8, R10, R12, R14, R16, R18 Резистор

10 кОм

8 В блокнот
R3, R21 Резистор

100 кОм

2 В блокнот
R20 Резистор

100 Ом

1 В блокнот
R22 Резистор

12 кОм

1 В блокнот
POT Подстроечный резистор 10 кОм 1

Этот проект - качественный и универсальный функциональный генератор, который несмотря на некоторую сложность схемы, по крайней мере в сравнении с более простыми , обладает очень широким функционалом, что оправдывает затраты на его сборку. Он способен выдавать 9 различных форм сигналов, а также работать с синхронизацией импульсов.

Принципиальная схема генератора на МК

Параметры устройства

  • Частотный диапазон: 10 Гц - 60 кГц
  • Цифровая регулировка частоты с 3 различными шагами
  • Формы сигнала: Sine, Triangle, Square, Saw, H-pulse, L-pulse, Burst, Sweep, Noise
  • Выходной диапазон: 15 В для синуса и треугольника, 0-5 В для других режимов
  • Имеется выход для синхронизации импульсов

Питание прибора осуществляется от 12 вольт переменки, что обеспечивает достаточно высокое (свыше 18 В) напряжение постоянного тока, необходимое для нормальной эксплуатации 78L15 и 79L15, формирующих двухполярку по 15 В. Это делается для того, чтобы микросхема LF353 могла вывести полный диапазон сигналов на нагрузке 1 кОм.

Регулятор уровня использован ALPS SRBM1L0800. В схеме следует использовать резисторы с погрешностью ±1% допуска или лучше. Ограничители тока светодиодов - резисторы 4306R серии. Яркость может быть увеличена в зависимости от предпочтений исполнителя. Генератор собран в пластиковом корпусе 178x154x36 мм с алюминиевой передней и задней панелями.

Многие контактные компоненты монтируются на передней и задней панелях (кнопки, ручки, разъемы RCA, светодиодные сборки, разъем питания). Печатные платы крепятся к корпусу болтами с пластиковыми прокладками. Все остальные элементы генератора смонтированы на печатных платах - блок питания отдельно. Левая кнопка по середине для изменения режима, правая - для выбора частоты режима.

Генератор вырабатывает различные сигналы и работает в трех режимах, которые выбираются с помощью клавиши "Select" и указываются тремя верхними (на схеме) светодиодами. Поворотный регулятор изменяет параметры сигнала в соответствии со следующей таблицей:

Сразу после настройки в режиме 1 идёт генерация синуса. Однако, начальная частота довольно низкая и по крайней мере один щелчок энкодера необходим, чтобы увеличить его. На плате есть контакт подключения прибора для программирования, что позволяет оперативно изменять функциональность генератора сигналов, если необходимо. Все файлы проекта - прошивки PIC16F870, рисунки плат, находятся

Сегодня устройства прямого цифрового синтеза аналоговых сигналов - синтезаторы DDS-все шире применяются в радиоэлектронных системах, причем как для работы в высокочастотном диапазоне (до сотен мегагерц), так и на низких частотах, вплоть до единиц герц. Благодаря развитию электроники и технологии микросхемы-синтезаторы DDS становятся весьма недорогими компонентами, в то же время обеспечивающими высочайшее качество генерируемых сигналов. Фирма Analog Devices является одним из лидеров в данной области и выпускает широкую номенклатуру синтезаторов DDS. Предлагаем вашему вниманию перевод статьи о синтезаторах DDS из журнала Analog Dialogue. Журнал Analog Dialogue посвящен продукции фирмы Analog Devices, в нем публикуются материалы как прикладного, так и теоретического характера. Данный журнал бесплатно доступен на сайте www.analog.com, в настоящее время он выпускается только в электронном виде.

Что такое «прямой цифровой синтез»?

Прямой цифровой синтез (DDS) - метод, позволяющий получить аналоговый сигнал (обычно это синусоидальный сигнал) за счет генерации временной последовательности цифровых отсчетов и их дальнейшего преобразования в аналоговую форму посредством ЦАП. Так как сигнал сначала синтезируется в цифровой форме, такое устройство может обеспечить быстрое переключение частоты, высокое разрешение по сетке частот, работу в широком диапазоне частот. Благодаря развитию микросхемотехники и технологии на сегодняшний день синтезато- ры DDS представляют собой очень компактные микросхемы с низким энергопотреблением.

В каких случаях применяются синтезаторы DDS? Какие еще методы синтеза сигналов существуют?

В различных электронных устройствах часто требуется синтезировать сигналы различной частоты и формы, и с высокой точностью управлять параметрами этих сигналов. Необходим ли источник высококачественного сигнала с низким уровнем фазового шума и с быстрой перестройкой частоты (для телекоммуникационных систем) или же требуется просто синтезировать сигнал определенной частоты для промышленного тестового оборудования или для медицинских систем - в любом случае важными для разработчика параметрами являются удобство применения, компактность и низкая стоимость.

Существует много способов синтеза сигналов - от генераторов на основе петли ФАПЧ (такой подход доминирует при синтезе сигналов высокой частоты) до динамического цифрового управления цифро-аналоговым преобразователем (при синтезе низкочастотных сигналов). Но технология DDS быстро завоевывает популярность в качестве средства синтеза сигналов как в телекоммуникационных, так и в низкочастотных промышленных системах благодаря тому, что стало возможным реализовать на одной микросхеме программируемый генератор с высоким разрешением по частоте и с высоким качеством сигнала.

Кроме того, непрерывное совершенствование технологии и схемотехники привело к тому, что стоимость микросхем и их энергопотребление снизились до величин, немыслимых в прошлом.

Например, программируемый генератор DDS AD9833 (рис. 1), при работе от источника питания 5,5 В и при частоте кварцевого резонатора 25 МГц, потребляет не более 20 мВт.

Рис. 1. Однокристальный DDS синтезатор AD9833

Какие основные преимущества дает применение DDS-синтезаторов?

Синтезаторы DDS, подобные вышеупомянутой ИС AD9833, управляются посредством быстродействующего последовательного порта SPI, при этом для генерации синусоидального сигнала требуется только тактовый сигнал. Доступные в настоящее время синтезаторы DDS способны генерировать сигнал на частотах от 1 Гц до 400 МГц (при тактовой частоте 1 ГГц). Преимущества, предоставляемые малым энергопотреблением, низкой стоимостью и малыми размерами корпусов, в сочетании с отличным качеством сигнала и возможностью цифрового управления, делают синтезаторы DDS чрезвычайно привлекательными приборами по сравнению с гораздо менее гибкими схемами на дискретных элементах.

Какие сигналы можно получить на выходе типичного синтезатора DDS?

Синтезаторы DDS способны генерировать не только синусоидальный сигнал. На рис. 2 показаны прямоугольный, треугольный и синусоидальный сигналы на выходе ИС AD9833.

Рис. 2. Прямоугольный, треугольный и синусоидальный сигналы на выходе синтезатора DDS

Каким образом устройство DDS генерирует синусоидальный сигнал?

На рис. 3 показана функциональная схема синтезатора DDS: его основными узлами являются накопитель значения фазы (аккумулятор фазы), средство преобразования значения фазы в амплитуду (обычно это ПЗУ с табличными значениями функции синуса) и ЦАП.

Рис. 3. Функциональная схема синтезатора DDS

Схема DDS генерирует синусоидальный сигнал с заданной частотой. Частота выходного сигнала определяется двумя параметрами: частотой тактового сигнала и двоичным числом, записанным в регистр частоты.

Это двоичное число, записанное в регистр частоты, подается на вход аккумулятора фазы. Если используется ПЗУ с табличными значениями синуса, то аккумулятор фазы вычисляет адрес (соответствующий мгновенному значению фазы) и подает его на вход ПЗУ, при этом на выходе ПЗУ мы получаем текущее значение амплитуды в цифровом виде. Далее ЦАП преобразует это цифровое значение в соответствующее значение напряжения или тока. Для генерации синусоиды с фиксированной частотой постоянная величина (приращение фазы, определяемое двоичным числом, записанным в регистр частоты) прибавляется к значению, хранящемуся в аккумуляторе фазы, с каждым импульсом тактового сигнала. Если значение приращения велико, аккумулятор фазы будет быстро пробегать всю таблицу синуса, хранящуюся в ПЗУ, и частота сигнала при этом будет высока. Если значение приращения фазы мало, аккумулятору фазы понадобится больше шагов, чтобы пройти всю таблицу ПЗУ, и соответственно частота сигнала на выходе будет низкой.

Что подразумевается под словами «интегральный DDS синтезатор»?

Цифро-аналоговый преобразователь (ЦАП), выполненный на одном кристалле со схемой генерации цифровых отсчетов (DDS) представляет собой законченный интегральный DDS-синтезатор. Таковыми являются все DDS-синтезаторы фирмы Analog Devices.

Подробнее о принципах работы аккумулятора фазы

Мгновенное значение фазы непрерывного синусоидального сигнала циклически изменяется в диапазоне от 0 до 2π. π Значение фазы генерируется в цифровом виде. Функция переноса, которой обладает счетчик, позволяет реализовать в синтезаторе DDS непрерывное циклическое изменение величины фазы.

Чтобы понять, каким образом осуществляется генерация, представьте себе синусоидальные колебания в виде вектора, вращающегося по окружности (рис. 4). Каждая точка на окружности соответствует определенной точке синусоиды. Вектор вращается по окружности, при этом величина синуса угла является выходным сигналом. Один оборот вектора с постоянной скоростью обеспечивает генерацию одного периода синусоиды. Аккумулятор фазы генерирует значения угла с одинаковыми приращениями, величина, находящаяся в аккумуляторе фазы, соответствует определенной точке окружности.

Рис. 4. Циклическое вычисление фазы

определенной точке окружности. Аккумулятор фазы представляет собой счетчик по модулю М, значение которого увеличивается с каждым приходом тактового импульса. Величина приращения задается двоичным числом М. Это число определяет величину приращения значения фазы с каждым тактовым импульсом, в сущности, этим числом определяется число пропущенных отсчетов при движении по окружности. Чем больше размер шага, тем быстрее происходит переполнение аккумулятора фазы и более коротким получается период синусоиды. Разрядностью аккумулятора фазы (n) определяется общее число возможных значений фазы, что в свою очередь обусловливает разрешение сетки частот синтезатора DDS. Для 28-разрядного аккумулятора фазы при М = 0000...0001 аккумулятор будет переполняться после 228 циклов (тактовых импульсов). При М = 0111...1111 аккумулятор фазы будет переполняться всего за 2 цикла (это минимальное число циклов, удовлетворяющее критерию Найквиста). Эти соотношения описываются следующей простой формулой:

f out = (М x f c)/2 n

где f out - частота выходного сигнала DDS; М- двоичное число, определяющее частоту сигнала; f c - частота сигнала тактирования; n- разрядность аккумулятора фазы.

При изменении значения М частота на выходе синтезатора меняется сразу и при этом сигнал не имеет разрывов. Здесь отсутствует переходный процесс захвата частоты, присущий генераторам с петлей ФАПЧ.

При увеличении выходной частоты число отсчетов на один цикл уменьшается. Так как теорема отсчетов требует наличия как минимум двух отсчетов на период для полного восстановления выходного сигнала, максимальная частота синтезируемого сигнала DDS будет составлять f c /2. Однако на практике частота синтезируемого сигнала ограничивается несколько меньшим значением, что способствует улучшению качества синтезируемого сигнала и облегчению его фильтрации.

При генерировании сигнала постоянной частоты код на выходе аккумулятора фазы увеличивается по линейному закону, что соответствует линейному пилообразному аналоговому сигналу.

Каким образом этот линейный сигнал преобразуется в синусоиду?

Для преобразования выходного кода аккумулятора фазы (в случае ИС AD9833 - это 28-разрядный код) в мгновенные значения амплитуды используется ПЗУ с табличными значениями отсчетов синуса. Младшие разряды 28-разрядного кода отбрасываются; на выходе табличного ПЗУ мы получаем 10-разрядный код, который подается на ЦАП. Так как синусоида обладает симметричностью, в синтезаторе DDS хранятся табличные данные только об 1/4 части синусоиды. Табличное ПЗУ генерирует полный цикл синусоиды за счет чтения данных сначала в прямом, затем в обратном порядке. Схематически принцип работы синтезатора проиллюстрирован на рис. 5.

Рис. 5. Сигналы в синтезаторе DDS

В каких областях применяются синтезаторы DDS?

Области применения синтезаторов DDS делятся на две категории: разработчикам теле-коммуникационных устройств требуются генераторы с мгновенной перестройкой частоты, с низким уровнем фазового шума и с низким уровнем гармоник и интермодуляционных составляющих. В таких случаях часто применяются синтезаторы DDS как обладающие хорошими характеристиками с точки зрения спектра выходного сигнала и высоким разрешением по частоте. В этих областях синтезаторы DDS применяются для модуляции сигнала, в качестве источников опорного сигнала для генераторов с петлей ФАПЧ, в качестве генераторов-гетеродинов, и даже для прямого синтеза радиосигнала.

Другая категория - это различные промышленные и медицинские системы, где синтезаторы DDS используются в качестве программируемых генераторов. Так как синтезатор DDS программируется с помощью цифрового сигнала, фазой и частотой сигнала легко управлять без переключения внешних компонентов, которое требовалось бы в случае применения аналоговых генераторов. Синтезатор DDS позволяет легко перестраивать частоту в реальном времени для настройки на резонансную частоту или для компенсации температурного дрейфа. Синтезаторы DDS применяются в подобных случаях для измерения импеданса (например, при работе с датчиками, у которых изменяется импеданс), для генерации импульсных сигналов для стимуляции, или для измерения затухания в локальных сетях или в телефонном кабеле.

Какие свойства синтезаторов DDS являются основными преимуществами с точки зрения проектировщика?

Современные недорогие, высокопроизводительные и высокоинтегрированные синтезаторы DDS становятся очень популярными как в коммуникационных системах, так и в устройствах с датчиками. Среди привлекательных для разработчика свойств можно отме- тить следующие:

  • Цифровая настройка частоты с точностью до микрогерц и фазы с точностью до долей градуса.
  • Чрезвычайно большая скорость перестройки частоты (или фазы) выходного сигнала; переключение частоты производится при непрерывной фазе сигнала без выбросов и без переходных процессов захвата частоты, присущих системам с ФАПЧ.
  • Цифровая архитектура синтезаторов DDS позволяет избавиться от элементов ручной настройки и от явлений, связанных с температурным и временным дрейфом, присущим аналоговым системам.
  • Цифровой интерфейс синтезаторов DDS позволяет без труда реализовать дистанционное управление синтезатором с помощью микропроцессора.

Каким образом использовать синтезатор DDS для FSK-модуляции?

Двоичная модуляция со сдвигом частоты (FSK, frequency-shift keying) является одним из простейших способов кодирования данных. Данные передаются за счет переключения не- сущей частоты между двумя различными зна- чениями. Одна частота - f 1 (предположим, та, которая выше) обозначает логическую еди- ницу, а другая - f 0 - логический ноль. На рис. 6 показан исходный двоичный сигнал и полученный модулированный сигнал.

Рис. 6. Модуляция FSK

Такой алгоритм кодирования легко реализовать при помощи синтезатора DDS. Для этого устанавливается двоичное число, определяющее частоту сигнала f0 или f1, соответствующую единице или нулю передаваемого кода. Пользователь задает соответствующие значения частот. В микросхеме AD9834 для пользователя доступны два регистра программирования частоты, что облегчает получение сигнала FSK. В данной микросхеме имеется специальный вход (FSELECT), на который можно подавать модулирующий сигнал и выбирать одно из двух значений частоты (точнее, один из двух регистров частоты). Функциональная схема на рис. 7 иллюстрирует процесс получения сигнала FSK.

Рис. 7. Генератор сигнала FSK на базе синтезатора DDS

А как получить сигнал с фазовой модуляцией PSK?

Кодирование со сдвигом фаз (PSK) - еще один простой способ кодирования. При модуляции PSK частота несущей остается постоянной, а фаза передаваемого сигнала меняется в соответствии с передаваемым кодом.

Из разновидностей модуляции PSK наиболее простой является двоичная импульсно-кодовая модуляция (BPSK) - в ней применяется только два значения фазы сигнала, 0° и 180°. Спомощью фазового сдвига 0° передается логическая единица, а при фазовом сдвиге 180° - логический ноль. Состояние каждого передаваемого разряда определяется по отношению к предыдущему разряду. Если фаза сигнала не меняется, это означает, что передаваемый сигнал находится постоянно в одном из логических состояний - 0 или 1. Если фаза изменилась на 180°, это значит, что состояние изменилось - с 0 на 1 или с 1 на 0.

Кодирование PSK легко реализовать с помощью микросхемы-синтезатора DDS. Большинство из них обладают отдельным регистром фазы, в который можно записать величину фазы. Эта величина прибавляется к фазе несущей частоты без изменения значения частоты. Изменение значения регистра фазы приводит к изменению фазы несущей частоты, таким образом, мы получаем сигнал с модуляцией PSK. Для тех случаев, где требуется модуляция с высокой скоростью, имеется ИС AD9834, в которой предусмотрены регистры, куда можно заранее записать величину фазы сигнала, а затем выбрать одно из двух значений фазы с помощью входа PSELECT, в результате чего мы получим требуемый сигнал с фазовой модуляцией.

Более сложные виды модуляции PSK подразумевают 4 или 8 различных значений фазы. При этом скорость передачи данных гораздо выше, чем при простейшей двоичной модуляции (BPSK). При модуляции с четырьмя значениями фазы (квадратурной модуляции, или QPSK) фаза может принимать значения 0°, +90°, –90° или 180°; таким образом, каждое значение фазы передает 2 бита информации. В микросхемах AD9830, AD9831, AD9832 и AD9835 имеется четыре регистра фазы, позволяющих реализовать сложные схемы модуляции за счет выбора одного из четырех значений сдвига фазы.

Рис. 8. Синхронизация синтезаторов DDS

Можно ли синхронизировать несколько синтезаторов DDS, например, для получения сигнала I-Q?

Можно применить два отдельных синтезатора DDS, работающих от одного источника тактирования, для получения двух выходных сигналов, фазы которых можно затем установить в соответствии с требуемой величиной. На рис. 8 две микросхемы AD9834 работают от общего источника тактовых импульсов и их входы сброса объединены. При такой конфигурации можно реализовать модуляцию I-Q.

Сигнал сброса должен быть подан на соответствующие входы микросхем после включения питания и до подачи данных на входы синтезаторов DDS. Этот сигнал установит синтезаторы DDS в исходное состояние с известной начальной фазой, что позволит синхронизировать несколько синтезаторов DDS. Когда в микросхемы одновременно загружаются новые данные, обеспечивается когерентность фаз выходных сигналов; соотношения фаз устанавливаются с помощью регистров сдвига фаз. Микросхемы AD9833 и AD9834 обладают 12-разрядными регистрами фазы, эффективная разрешающая способность составляет 0,1. Более детально синхронизация нескольких синтезаторов DDS описана в руководстве AN-605.

Какие параметры являются основными для синтезаторов DDS?

Это фазовый шум, дрожание фронтов (джиттер) и SFDR (динамический диапазон, свободный от гармоник). Фазовый шум (заданный в виде плотности dBc/Hz) является мерой нестабильности частоты генератора на коротких промежутках времени. Он измеряется в одной боковой полосе (в децибелах относительно основного сигнала, в полосе 1 Гц) при различной величине отстройки от основной частоты генерации. Этот параметр особенно важен для разработчиков телекоммуникационных систем.

Обладают ли синтезаторы DDS хорошими характеристикам с точки зрения фазового шума?

Шум в системе с дискретными данными зависит от многих факторов. Дрожание фазы (джиттер) тактового сигнала в системе DDS можно рассматривать как фазовый шум основного сигнала; кроме того, погрешность может вносить округление величины фазы, эта погрешность зависит от значения кода, задающего частоту сигнала. Если соотношение таково, что величина фазы точно равна величине после округления, то ошибка округления фазы отсутствует. Если величина фазы для точного выражения требует больше разрядов, чем имеется, то округление величины фазы будет проявляться в виде дополнительных пиков в спектре выходного сигнала. Величина этих пиков и их расположение зависит от заданного кода. Цифро-аналоговый преобразователь (ЦАП) также вносит дополнительные шумы в систему. Погрешности квантования и нелинейность ЦАП проявляются в виде шумов и гармоник в выходном сигнале. На рис. 9 показан спектр фазового шума, типичный для синтезатора DDS - в данном случае это ИС AD9834.

Рис. 9. Типичный спектр фазового шума выходного сигнала синтезатора DDS AD9834. Частота выходного сигнала 2 МГц, частота тактирования 50 МГц

А что насчет дрожания фронтов - джиттера?

Дрожание фронтов (джиттер) - это динамическое отклонение фронта сигнала от среднего положения фронта, измеренного за продолжительный период времени. Идеальный генератор обеспечивал бы абсолютно точное положение фронтов сигнала в определенные моменты времени, и это положение никогда бы не менялось. Такое, конечно, невозможно, и даже лучшие генераторы созданы из реальных элементов, обладающих шумами и другими несовершенствами. Высококачественный кварцевый генератор обладает величиной джиттера, не превышающей 35 пс.

Джиттер возникает за счет температурного шума, нестабильности параметров элементов генератора, внешних помех по питанию, по земле и даже через соединение выхода. Кроме того, оказывают влияние внешние магнитные и электрические поля, такие как поля от близко расположенных передатчиков. Даже простой усилитель, инвертор или буфер будет вносить дополнительный джиттер в выходной сигнал.

Таким образом, некоторое дрожание фазы будет присутствовать в выходном сигнале синтезатора DDS. Так как любому источнику тактового сигнала присущ некоторый джиттер, для начала необходимо выбрать тактовый генератор с минимальным джиттером. Один из способов уменьшить величину джиттера - получать тактовый сигнал посредством деления частоты высокочастотного тактового сигнала. При делении частоты та же величина джиттера распределяется на больший период времени, что снижает относительную величину джиттера.

В целом, чтобы минимизировать величину дрожания фазы, необходимо выбрать хороший источник тактовых импульсов, избегать сигналов с медленными фронтами и схем с низкой скоростью нарастания импульсов и работать при максимально возможной частоте тактирования, чтобы иметь достаточно большой запас по частоте.

SFDR - динамический диапазон, свободный от гармоник, - представляет собой соотношение (в децибелах) между величиной основного сигнала и величиной максимального пика в спектре выходного сигнала, включая гармоники, интермодуляционные составляющие и продукты наложения спектров.

SFDR является важным параметром для многоканальных систем. Если передатчик обладает недостаточно низким уровнем гармоник, эти гармоники могут являться источником помех для соседних каналов.

Типичный спектр выходного сигнала ИС AD9834 (10-разрядный DDS) при частоте тактирования 50 МГц показан на рис. 10. На рис. 10а частота выходного сигнала составляет ровно 1/3 от частоты тактирования (MCLK). Поэтому в данном случае в полосе 25 МГц практически отсутствуют гармоники, эффекты наложения спектров минимальны и спектр выглядит превосходно; все максимумы в спектре как минимум на 80 дБ слабее сигнала (SFDR = 80 дБ). На рис. 10b показан спектр выходного сигнала при более низкой частоте на выходе; здесь на один период приходится большее число отсчетов (но недостаточное для того, чтобы получить по-настоящему чистую синусоиду) и спектр выходного сигнала гораздо дальше отстоит от идеального; максимальная гармоника - вторая - имеет величину –50 дБ относительно основного сигнала (SFDR = 50 дБ).

рис 10 Спектр выходного сигнала синтезатора AD9834 при частоте тактирования 50 МГц и выходной частоте f out = MCLK/3 = 16,667 МГц (a) и f out = 4,8 МГц (b)

Какие имеются средства автоматизации разработки систем на базе синтезаторов DDS?

Существует интерактивный помощник разработчика, доступный через веб-интерфейс, позволяющий рассчитать коды частоты и фазы при заданной частоте тактирования, частоте и фазе выходного сигнала. Программа показывает спектр выходного сигнала, помогающий рассчитать выходной восстанавливающий фильтр. Пример показан на рис. 11. Кроме того, программа выводит в виде таблицы перечень всех основных гармоник и продуктов наложения спектров и их значения.

Рис. 11. Программа помощник разработчика систем на базе DDS

Как могут эти программы помочь мне запрограммировать синтезатор DDS?

Все необходимые исходные данные - это требуемая частота выходного сигнала и частота источника тактового сигнала. Программа на основе этих данных выдаст все коды, необходимые для программирования синтезатора DDS. В примере, показанном на рис. 12, частота тактирования MCLK=25 МГц, требуемая частота выходного сигнала - 10 МГц. Нажав на кнопку, мы получаем строчку Init Sequence, полностью отображающую последовательность программирования синтезатора DDS.

Рис. 12. Получение кода для программирования синтезатора DDS

Каким образом можно на практике ознакомиться с работой синтезатора DDS?

Для каждой микросхемы-синтезатора DDS, выпускаемой фирмой Analog Devices, выпускается также соответствующая оценочная плата (Evaluation Board). По поводу приобретения продукции и оценочных плат обращайтесь к дистрибьюторам. К оценочным платам прилагается программное обеспечение, позволяющее инженеру ознакомиться с работой платы в течение считанных минут после получения комплекта. К плате прилагается также техническое описание, содержащее схему и рекомендации по проектированию устройства и разводке платы.

Главная страница, посвященная синтезаторам DDS: www.analog.com/dds.

Средства разработки: http://www.analog.com/Analog_Root/static/techSupport/interactiveTools/#dds.

Углубленный курс по изучению технологии DDS: http://www.analog.com/UploadedFiles/Tutorials/450968421DDS_Tutorial_rev12-2-99.pdf.

Руководство по применению AN-605 (упоминавшееся выше): http://www.analog.com/UploadedFiles/Application_Notes/3710928535190444148168447035AN605_0.pdf.

Руководство по выбору микросхемы DDS: http://www.analog.com/IST/SelectionTable/?selection_table_id=27

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

Так и в моем случае, список этого оборудования был далеко неполным и в нем нехватало генератора сигналов .

Генератор сигналов оказалось сделать несложно самостоятельно из доступных радиоэлементов и при этом не дорогим в конечном итоге. Так порывшись в интернете было найдено большое количество схем различных генераторов, в том числе и более продвинутых моделей с ЦАП, но уже дорогих в изготовлении. Я же остановился для начала на простом DDS генераторе сигналов на микроконтроллере ATMEGA8 фирмы Atmel. Вот эта , я не стал ничего совершенствовать и изменять - оставил все как есть, просто создал копию и тем более не претендую на авторство данного прибора.

Итак, генератор сигналов обладает неплохими характеристиками и подойдет для решения простых задач.

Вывод информации в генераторе сигналов производится на символьный ЖК дисплей 16х2 с контроллером HD44780. Примечательно,что для экономии портов микроконтроллера ЖК дисплей управляется всего по трем проводам, этого удалось достичь применением регистра сдвига - о том как подключить дисплей по трем проводам, читатйте .

Экономия портов необходима, 8 портов задействованы под резистивный ЦАП, 7 портов под кнопки. В оригинале статьи, автор обещал задействовать и ШИМ модуляцию, но видимо доделывать ее не стал, так как начал разработку более усовершенствованной версии на ATMEGA16.

Принципиальная схема DDS генератора сигналов и печатная плата.

Схема и платы показаны в оригинале, на них так же присутствуют незадействованные автором кнопки для управления ШИМ.

Для ЦАП я специально купил прецизионные резисторы с погрешностью ±0,05%, но как оказалось, вполне достаточно и простых с погрешностью ±5%. Форма сигнала была вполне приемлимой для всех видов сигналов.

Когда генератор собран и программа загружена в микроконтроллер, никаких настроек не требуется, если только отрегулировать контрастность дисплея.

Работать с прибором просто - выбираете форму сигнала, устанавливаете необходимую частоту, при этом можно изменить шаг настройки частоты с пределами в 1 - 10 - 100 - 1000 Гц за шаг. Затем нажимаете на Старт и генератор начинает работать. Следует учесть, что когда генератор запущен, частоту и форму сигнала изменить не получиться, это связано с тем, что программа уходит в бесконечный цикл и для того, чтобы увеличить максимальную частоту генерации, пришлось убрать процедуру опроса кнопок. Для остановки генерации нажимаем на стоп/сброс, это перезапускает программу и она возвращается к меню настроек. Вот такой вот нюанс.

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

Для начала необходимо произвести все замеры, габариты ЖК дисплея и платы генератора сигналов, источника питания, разъемов и кнопок, затем, на листе бумаги расположить это так, как будет находится внутри корпуса. По полученным размерам можно приступить к изготовлению.