Ad9833 генератор сигналов своими руками схема

Функциональный DDS генератор на базе микросхемы AD9833

AD9833

На страницах сайта Радиолоцман, в разделе «Схемы», опубликовано множество схем DDS генераторов, от простых, на одном микроконтроллере, до сложных на базе ПЛИС с богатыми функциональными возможностями. Мы рассмотрим еще одну конструкцию такого прибора, функцию DDS синтеза аналогового сигнала в котором выполняет специализированная микросхема AD9833, производства компании Analog Devices, являющейся одним из лидеров в этой области.

Основные характеристики генератора:

  • Выходная частота от 1 Гц до 5 МГц;
  • Точность 0.1 Гц;
  • Форма выходного сигнала: прямоугольные, треугольные, синус;
  • Возможность регулировки скважности импульсов;
  • 5 В ТТЛ выход;
  • Аналоговый выходной сигнал с размахом от +15 В до –15 В;
  • Возможность подстройки постоянного смещения в пределах от +15 В до –15 В;
  • Пользовательский интерфейс: двухстрочный ЖК индикатор и 16-кнопочная клавиатура.

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

Выбор микросхемы AD9833 основан на следующих ее преимуществах:

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

Расположение выводов микросхемы AD9833

В качестве источника тактовых импульсов для микросхемы синтезатора необходимо использовать осциллятор со встроенным генератором, простой кварцевый резонатор не подходит для использования совместно с микросхемой. В техническом описании на микросхему указано значение тактовой частоты 25 МГц, но автор применил генератор на 50 МГц, при тестировании устройства никаких проблем не было выявлено.

Прибор снабжен ЖК индикатором, клавиатурой для управления и настройки и переменными резисторами для регулирования уровня, смещения и симметрии. Управление микросхемой DDS синтезатора и всей периферией осуществляет микроконтроллер Atmel AVR ATmega32.

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

Схема питания построена на интегральных регуляторах напряжения и обеспечивает двуполярное напряжение ±15 В для выходной аналоговой части и напряжение +5 В для питания микроконтроллера и периферии.

Микроконтроллер тактируется от встроенного RC осциллятора 8 МГц. Стандартный двухстрочный ЖК индикатор на базе контроллера HD44780 подключен к порту C (Port C) микроконтроллера по 4-битному интерфейсу. Резистор R1 предназначен для регулировки контрастности. К сигнальной линии PC7/TOSC2 подключен звуковой излучатель (буззер), который используется для звукового оповещения пользователя при переключении режимов и настройке. Потенциометр R2, подключенный к каналу ADC0 встроенного АЦП микроконтроллера, используется для цифровой регулировки уровня выходного аналогового сигнала. Регулировка уровня выполнена на базе микросхемы цифрового потенциометра MCP41010 (см. схему выходной аналоговой части), которая управляется микроконтроллером по интерфейсу SPI.

Схема микроконтроллерной части DDS генератора

Управление микросхемой DDS синтезатора осуществляется по линиям микроконтроллера PD0 (DDSDATA), PD1 (DDSFSYNC), PD2 (DDSCLK). Микросхема DDS, осциллятор и несколько пассивных компонентов обвязки конструктивно составляют отдельный подключаемый модуль, что позволит использовать его в других конструкциях или в экспериментах.

Схема DDS модуля генератора на микросхеме AD9833

Читайте также:  Боксы с орешками своими руками

К аналоговой выходной части генератора предъявляются особые требования, т.к. не так просто усилить сигнал с амплитудой 400 мВ до уровня ±15 В, с выходным током 300 мА на частоте 5 МГц. Поэтому был применен сверхбыстродействующий операционный усилитель LM7171 с обратной связью по напряжению и схема двухтактного транзисторного усилителя мощности. Блокировочные конденсаторы по питанию операционных усилителей на печатной плате должны быть расположены как можно ближе к микросхемам.

Кроме того, в зависимости от формы генерируемого сигнала (прямоугольные импульсы или синусоида) включаются разные схемы предварительного усиления и нормализации сигнала. Переключение этих схем выполнено на реле, которое управляется микроконтроллером, в зависимости от режима работы генератора (транзисторы Q6 и Q7).

На выводе микроконтроллера PD7 генерируются прямоугольные импульсы, которые поступают через буфер на микросхеме 74HC14 на ТТЛ выход генератора.

Схема выходной аналоговой части DDS генератора

ТТЛ выход генератора

Модуль готовой матричной клавиатуры с организацией 4×4 подключается к порту B (Port B). Строки матрицы клавиатуры подключены к линиям порта PB0-PB3, столбцы – подключены к линиям PB4-PB7.

Загрузки

Исходный код и прошивка микроконтроллера – скачать

Перевод: Vadim по заказу РадиоЛоцман

Источник

Как превратить микросхему прямого цифрового синтеза в генератор сигналов произвольной формы

AD9833

В свое время нами был создан портативный генератор сигналов низкой частоты диапазона 0 … 1 МГц. Генератор имел широкий диапазон выходных напряжений (0 … 100 В п-п) и среднюю нагрузочную способность (500 мА).

Позднее потребовался прибор аналогичной конструкции, с дополнительной функцией генерации сигналов произвольной формы. К новому генератору предъявлялись достаточно скромные требования (1 Мвыб/с, разрешение 10 бит), поэтому было решено использовать схемное решение первоначальной разработки, лишь слегка усовершенствовав его. Ниже мы расскажем, как это можно сделать.

В оригинальном генераторе использовалась микросхема прямого цифрового синтеза (Direct Digital Synthesis – DDS) AD9833, управлявшаяся микроконтроллером PIC24FJ16. Для воспроизведения сигналов произвольной формы мы задействовали регистры частоты и сдвига фаз микросхемы DDS.

Программно конфигурируемые мультиплексоры микросхемы DDS позволяют исключить таблицу SIN/ROM из процесса формирования сигнала (см. рисунок) и подключить сумматор фазовых сдвигов (аккумулятор фазы + регистр сдвига фаз 0/1) напрямую ко входу цифро-аналогового преобразователя (ЦАП).


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

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

Однако, для практического использования генератора сигналов, необходимо равномерное во времени обновление содержимого регистра сдвига фаз, а, по сути, поддержание постоянной скорости выборки ЦАП. Мы добились этой равномерности использованием того факта, что данные в регистр передаются последовательно, словами по 16 бит. При низком уровне на входе FSYNC, AD9833 постоянно обновляет регистры (первые четыре бита определяют адрес регистра), и, таким образом, через каждые 16 синхроимпульсов в регистр сдвига фаз заносится новое значение.

Таким образом, после очистки аккумулятора фазы, инициализации регистра частоты нулем и подачи низкого логического уровня на вход FSYNC, посылка непрерывного потока данных в регистр сдвига фаз превращает выход микросхемы DDS в источник сигналов произвольной формы с эквивалентной частотой выборки, напрямую связанной с частотой синхронизации SPI. Частота дискретизации равна:

Sps = SCLK_FREQ / 16

SCLK_FREQ – тактовая частота SPI на выводе SCLK
16 – соответствует числу бит в командном слове.

Так, например, при тактовой частоте SPI 12.5 МГц, частота выборки будет равна 0.7812 Мвыб/с. На практике несложно получить частоту выше 1 Мвыб/с.

Необходимо отметить еще несколько моментов. Во-первых, регистры сдвига фаз имеют длину 12 разрядов, а разрядность ЦАП – 10, что при генерации сигналов произвольной формы делает два младших разряда регистров ненужными.

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

Перевод: AlexAAN по заказу РадиоЛоцман

Источник

Портативный Генератор на синтезаторе частот AD9833

Управление осуществляется 2 кнопками и 1 энкодером (EC1101S-5A-F20) с кнопкой (планирую установить в торец).

РЕЖИМЫ РАБОТЫ
Кнопка_1 одинарное нажатие: переключение между каналами вывода или выключает генерацию. Генератор AD9833 имеет 2 канала формирования сигнала как частоты так и формы но с выводом на одну ногу, переключая их на лету.
Кнопка_1 длинное нажатие: сохраняет в память текущие значения частот по каналам и форму выводимого сигнала.
Кнопка_2 одинарное нажатие: переключение формы сигнала: Синусоида, Прямоугольный, Пила.

Кнопка_2 длинное нажатие: запускает плавное изменение частоты от большего значения к младшему.

Энкодер поворот в лево/право: уменьшает/увеличивает единицы Герц.
Энкодер поворот с нажатой кнопкой в лево/право: уменьшает/увеличивает сотни Герц.
Энкодер нажатие на кнопку: увеличивает на тысячу Герц.
Энкодер длинное нажатие на кнопку: уменьшает на тысячу Герц.

Пока это все на макетной плате, печатка в процессе изготовления.

Источник

USB функциональный генератор на AD9833

Один из инструментов, без которого я бы пропал в своей домашней лаборатории, является функциональный генератор. Он довольно дорогой, поэтому я не купил его. Я подумал, что можно попытаться сделать его самостоятельно. Нашел довольно распространенную DDS (Direct Digital Synthesis, прямой цифровой синтез) микросхему AD9833. Теперь надо добавить только USB-совместимый AVR микроконтроллер и возможно немного аналоговых элементов.

Эта плата не обеспечивает регулировку амплитуды или смещения сигнала. Выход устанавливается 0-4В. Я планирую сделать ещё одну полностью аналоговую плату для регулировки амплитуды и смещения.

Элементы

Неотъемлемой частью этой конструкции является DDS микросхема AD9833 от Analog Devices. Микросхема имеет входной тактовый сигнал 25 МГц, внутреннюю фазовую автоподстройку частоты, таблица поиска синусов и АЦП. Контролируя её по интерфейсу SPI, вы можете получить на выходе синусоидальный, пилообразный и прямоугольный сигнал с частотным диапазоном от 0,01 Гц до 3 МГц. Частота может быть выше, до

7 МГц, но на такой высокой частоте синусоидальный сигнал выглядит ужасно.

Для управления этой микросхемой, я использовал дешевый USB-совместимый AVR микроконтроллер Atmel AT90USB162. Он будет обеспечивать виртуальный последовательный интерфейс по USB и интерпретировать команды переданные по этому интерфейсу для изменения выходного сигнала DDS надлежащим образом.

OPA357 используется для усиления выходного сигнала DDS. Номинальное напряжение на выходе AD9833 0.6Vpp, со средним значение 0.3В. OPA357 была выбрана потому, что она поддерживает необходимые высокие частоты и её можно получить в качестве бесплатного образца от компании Texas Instruments.

Схема

Схема и печатная платы были разработаны в KiCad, довольно приличном EDA (EDA, автоматизация проектирования электронных приборов) с открытым исходным кодом. Здесь приведены некоторые части схемы. Если вас интересует более подробная схема, её можно скачать ниже в формате PDF.

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

Схема построена на DDS AD9833. Блокировочные конденсаторы и их номиналы взяты из даташита. Источник тактового сигнала может быть выбран при помощи JP1. Может использоваться встроенный генератор и внешний источник тактового сигнала через BNC разъем. Выход из DDS сначала проходит через ФНЧ и затем усиливается. На выходе есть резистор 50 Ом, чтобы обеспечить выходное сопротивление 50 Ом. По всему пути прохождения сигнала есть контрольные точки, что обеспечивает удобство тестирования.

Печатная плата

Разводка довольно проста. Вот скриншот платы в 3D-виде KiCad:

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

Я разработал плату для использования генератора для поверхностного монтажа, но у меня не было генератора нужной частоты. У меня был подходящий генератор в DIP корпусе, поэтому я припаял его к плате так:

Немного некрасиво, но работает не хуже.

У меня также была небольшая ошибка в оригинальной разводке. VUSB контакт AVR должен быть подключен к источнику питания, а не к USB VUSB. В таком случае, если я питаю устройство от внешнего источника, USB периферия все равно получает питание и может инициализироваться. Перерезать дорожку и припаять перемычку достаточно, что бы исправить это. К статье прилагается исправленная версия платы.

Протокол

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

sf1 [freq] #в Гц
sf2 [freq] #в Гц
sp1 [phase] #в градусах
sp2 [phase] #в градусах
sfo [1/2/m(modulation)] #frequency output
spo [1/2/m(modulation)] #phase output
so [o(off-выключен)/s(sine-синусоида)/t(triangle-треугольник)/q(square-прямоугольный сигнал)] #режим выхода
sm [freq] #частота модуляции

Все команды должны заканчиваться возвратом каретки-новой строкой.

Так например, для установки выходной частоты от 1 до 100 Гц, вы должны отправить «sf1 100 \r\n».

Программа для AVR

Функциональность USB была предоставлена ​​отличной LUFA USB библиотекой для микроконтроллеров AVR. Я повторил код, который я написал, прежде чем обмениваться информацией по SPI и относительно функциональную библиотеку для AD9833. Потом я написал код, преобразовывающий команды, посылаемые через последовательный интерфейс в обращение к функции библиотеки AD9833.

Я получил проблему, используя Doxygen для комментирования своего кода и создания документации. Подробнее об этом можно узнать, перейдя по ссылке.

Программное обеспечение для ПК

Программное обеспечение написано на Python3. Я начал изучать его пару месяцев назад и до сих пор использую его для создания простых интерфейсов. Я использовал графическую основу tkinter для создания графического интерфейса пользователя и pyserial для последовательного соединения. Код пользовательского интерфейса не очень хорош, я ещё не совсем разобрался с Python. Это прекрасный язык, но я предпочитаю работать с микроконтроллерами и писать код на С.

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

Работа очень проста: приложение просто посылает соответствующие команды на виртуальный последовательный порт USB, когда любое значение изменяется в пользовательском интерфейсе.

Результат

Я снял короткое видео, демонстрирующее работу функционального генератора. Кажется, он работает довольно хорошо!

Проект на github, документация для AVR-кода

Источник

Читайте также:  Как поднять деревянный гараж своими руками домкратом
Оцените статью
Надписи на рисунке