Ддс генератор своими руками

Схема DDS-генератора сигналов

Данный генератор базируется на алгоритме 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-генератора сигналов и конструктивные особенности

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

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

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

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

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

  • Смотрите также схему измерителя емкости конденсаторов

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

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

Система меню генератора:

Для установки шага изменения частоты предусмотрено отдельное значение. Это удобно, если вам необходимо менять частоту в широких пределах. Генератор шума не имеет каких-либо настроек. Для него используется обычная функция rand(). Высокоскоростной выход HS имеет 4 режима частоты: 1, 2, 4 и 8 МГц.

DDS-генератор сигналов — схема, плата, радиоэлементы

Схема функционального генератора простая и содержит легкодоступные элементы.

Что касается списка необходимых радиоэлементов для БП:

  • 3 линейных регулятора — LM7805, LM7812 и LM7912.
  • Диодный мост (B1).
  • 5 электролитических конденсаторов — C1, C7 (2х2000 мкФ) и C3, C5, C9 (3х100 мкФ).
  • 3 конденсатор (C4, C6, C10) — 0.1 мкФ.
  • Трансформатор (TR1) — 220В — 2×15В.
  • Плавкий предохранитель (F1).
  • Переключатель (S1) — 220В.
  • 2 разъём (X1 и JP1) — Сеть 220В и 4 контакта (Выход БП) соответственно.

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

  • МК AVR 8-бит (IC1) — ATmega16.
  • Операционный усилитель (IC2) — LM358N (КР1040УД1).
  • 4 конденсатора — C2, C3 (2х0.1 мкФ) и C6, C7 (2х18 пФ).
  • 13 резисторов — R1 (500 Ом); R2, R6, R8, R10, R12, R14, R16, R18 (10 кОм); R3, R21 (100 кОм); R20 (100 Ом); R22 (12 кОм).
  • 3 подстроечных резистора POT (10 кОм), POT1 (1 кОм) и POT2 (47 кОм).
  • LCD-дисплей — HD44780 2×16.
  • Кварц (Q1) — 16 МГц.
  • 6 кнопок (BUTTONS, RESET).
  • 3 разъёма — HS, DDS (2 контакта, BNC); ISP (PLD-6, Разъём ISP); JP1 (4 контакта, разъём питания).

Плата:

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

Программное обеспечение DDS-генератора сигналов

Как уже говорилось выше, в основе своей программы использован алгоритм 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 dds-generator.rar

Тестирование DDS-генератора сигналов

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

Читайте также:  Как красиво заштукатурить стену своими руками узорами

  • Возможно вас также заинтересует электрическая схема генератора синусоиды

Видео о сборке DDS-генератора своими руками:

Источник

Ддс генератор своими руками

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

Автор: El-Eng
Опубликовано 02.10.2013
Создано при помощи КотоРед.
Участник Конкурса «Поздравь Кота по-человечески 2013!»

Некоторое время назад обзавелся я USB осциллографом, и так мне понравился этот аппарат, что решил я заиметь ему в комплект USB генератор. Конечно, проще всего было бы его купить, но натура радиолюбителя не позволила решить этот вопрос подобным образом. В результате было разработано и изготовлено устройство, предлагаемое вашему вниманию.
Как уже ясно из названия статьи, в генераторе используется принцип прямого цифрового синтеза (Direct Digital Synthesis, DDS) выходного сигнала, а реализован генератор на микросхеме AD9834 фирмы Analog Devices. В качестве управляющего и интерфейсного устройства был выбран микроконтроллер ATtiny2313 фирмы Atmel, в котором для поддержки протокола обмена данными по шине USB была использована программная библиотека V-USB, позволяющая обойтись чисто программными средствами.

Краткие технические характеристики генератора:

  • Форма выходного сигнала: синусоидальная, треугольная, меандр
  • Диапазон частот выходного сигнала: 0.2Гц – 10МГц
  • Амплитуда выходного сигнала:
  • Синусоидального и треугольного: 0 … 2.55В
  • Меандра: 1.5 … 5.1В (положительные логические импульсы)
  • Неравномерность АЧХ выходного сигнала:
  • В диапазоне 0.2Гц – 1МГц: не более 0.1дБ
  • В диапазоне 1МГц – 10МГц: не более 2.0дБ
  • Относительная погрешность частоты выходного сигнала: 0.01%
  • Приведенная погрешность амплитуды выходного сигнала: 2%
  • Питание генератора осуществляется от шины USB

Принципиальная схема генератора приведена на Рис. 1.

Сигналы шины USB непосредственно поступают на входы микроконтроллера ATtiny2313 (U1) который обеспечивает обмен данными и управление узлами генератора. Как уже было сказано, в качестве основы генератора используется микросхема AD9834, которая подключена к микроконтроллеру через последовательный интерфейс SPI. Для обеспечения стабильности и получения максимального качества синтеза выходного сигнала, эта микросхема тактируется интегральным кварцевым генератором частотой 50МГц (U9).
Генерируемый сигнал синусоидальной или треугольной формы через восстанавливающий дифференциальный пассивный фильтр 5-го порядка поступает на вход дифференциального усилителя (U5), а оттуда на вход формирователя меандра и на выход устройства. Частота среза (11МГц) и порядок восстанавливающего фильтра были выбраны как компромисс между точностью формы выходного сигнала на верхних частотах, неравномерностью АЧХ и максимальной генерируемой частотой выходного сигнала. При необходимости, параметры этого фильтра могут быть изменены, например, для обеспечения более высокой частоты выходного сигнала, которая, теоретически, может доходить до 25МГц. Частотные характеристики выходного буферного дифференциального усилителя, выполненного на микросхеме AD8130, позволяют реализовать эту возможность.
Прямоугольный выходной сигнал (меандр) формируется из выходного сигнала при помощи формирователя, реализованного на компараторе MAX961 (U6). Сформированный меандр (положительные логические импульсы) поступает на дополнительный выход через буферный каскад на микросхеме NC7SZ04 (U3). При необходимости, формирователь меандра может быть выключен подачей уровня логической единицы на вход SHDN компаратора.
Регулировка амплитуды в описываемом генераторе обеспечивается управляемыми микроконтроллером цифровыми потенциометрами (U8 и U10), причем регулировка осуществляется “холодным способом”: амплитуда синусоидального и треугольного сигналов регулируется путем изменения задающего тока ЦАП микросхемы AD9834, а амплитуда меандра регулируется путем изменения напряжения питания выходного буфера U3. Такой подход гарантирует отсутствие влияния цепей регулировки амплитуды на равномерность АЧХ выходного сигнала.
Питание генератора осуществляется от шины USB. Необходимые для работы узлов генератора отрицательное и удвоенное положительное напряжения обеспечиваются преобразователем, выполненном на микросхеме MAX1681 (U4).
Напряжение питания 3.3В, для цифровой части генератора, обеспечивается линейным стабилизатором, реализованном на компонентах U7A–Q1A, источником опорного напряжения для него служит напряжение 2.5В формируемое микросхемой U2.

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

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

Исходя из этого, при разработке печатной платы устройства одна сторона (Bottom) была использована для сплошной металлизации (“грязная” и “чистая” шины земли) а межсоединения были выполнены на стороне компонентов (Top), причем те соединения, которые не удалось развести печатными проводниками, сделаны монтажным проводом.
Печатная плата разработана для размещения в стандартном корпусе G939 (с любым индексом) фирмы Gainta. Корпус необходимо доработать – удалить батарейный отсек и проделать отверстие для разъема mini-USB.
Рисунки печатной платы для позитивного и негативного процессов (слой Top дан в зеркальном отображении) находятся в файле Fab.zip приложения. Там же содержатся список компонентов, принципиальная и монтажная схемы (монтажная схема для слоя Bottom отсутствует, поскольку на этом слое устанавливаются всего два элемента – кварцевый резонатор Y1 и ферритовая бусина L11, разделяющая “грязную” и “чистую” шины земли). В этом файле также находятся прошивка для микроконтроллера и картинка для пояснения правильной установки FUSE-битов.
Следует отметить, что принципиальная схема генератора была изменена в процессе первичной отладки экземпляра устройства, соответственно была изменена и печатная плата (заодно установлен кварцевый резонатор в более привычном корпусе). Однако экземпляр устройства с использованием модифицированной печатной платы не изготавливался. Внешний вид генератора со снятой крышкой представлен на Рис.2.

Читайте также:  Инкубатор для перепелов своими руками размеры

Для работы совместно с описываемым генератором была разработана управляющая программа, обеспечивающая функционирование генератора как в режиме генерации сигнала с фиксированной частотой, так и в качестве генератора качающейся частоты (ГКЧ). Программа написана на Delphi 7 и проверена на Windows XP и Windows 7. В процессе работы программа не изменяет реестр Windows и не требует для своей работы каких-либо дополнительных файлов или библиотек. Программа находится в файле 01.zip.

На Рис.3. приведено окно программы в режиме генератора фиксированной частоты.

Необходимое значение частоты генерации можно установить несколькими способами: щелчком левой кнопки мыши, установив ее указатель на нужный участок псевдологарифмической шкалы; передвинув мышью курсор в нужную позицию; используя кнопки [ ] или кнопку [Set]. Последний способ обеспечивает наиболее точную установку частоты, кроме того, он позволяет установить любую возможную частоту генерации, в том числе находящуюся вне пределов шкалы. С правой стороны расположены регуляторы амплитуды выходного сигнала, а также кнопки выбора формы выходного сигнала и разрешения выдачи сигнала прямоугольной формы. Следует отметить, что примененный способ регулировки амплитуды выходного сигнала прямоугольной формы не позволяет выдавать сигнал, меньший определенной величины (формально – менее 1.6В, реально – менее 1В). Этот факт отображается красным цветом величины амплитуды прямоугольного сигнала менее 1.6В. Для запуска генератора необходимо нажать кнопку [Run].

Окно управляющей программы в режиме ГКЧ показано на Рис.4.

Диапазон изменения частоты задается на логарифмической шкале двумя дополнительными курсорами, которые можно передвигать с помощью мыши. Закон изменения частоты может быть выбран как линейным, так и логарифмическим; изменение частоты может быть от меньшей к большей, от большей к меньшей и попеременно. Время развертки может быть установлено от 1 до 100 секунд. Имеется возможность сброса текущего цикла развертки и временной остановки (паузы). Запуск генератора, как и в предыдущем случае, осуществляется при помощи кнопки [Run].
Следует отметить, что программа работоспособна и при отсутствии генератора. В этом случае она переходит в демонстрационный режим.

Проверка работоспособности и регулировка.

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

Проверку работоспособности генератора рекомендуется проводить в такой последовательности:

  • Убедившись в отсутствии ошибок монтажа подключить устройство к шине USB.
  • Проконтролировать наличие и величину питающих напряжений:
  • P5V0: +4.5…5.5V
  • N5V0: -4.0…5.0V
  • D9V0: +7.5…9.5V
  • D3V3: +3.1…3.5V
  • Запрограммировать микроконтроллер и установить необходимую конфигурацию FUSE-битов.
  • Отключить устройство от шины USB и вновь подключить его. Должна произойти стандартная процедура установки USB HID устройства TorDDS, при этом операционная система определяет его как USB устройство ввода.
  • Запустить управляющую программу и убедиться в работоспособности устройства.
  • При помощи подстроечных резисторов R25 и R32 отрегулировать напряжения выходных сигналов так, чтобы они соответствовали уровню, отображаемому управляющей программой. Рекомендуется воспользоваться методикой, описанной ниже:

Отсутствие разделительных конденсаторов в тракте выходного сигнала позволило реализовать простой способ точной регулировки амплитуды выходного сигнала с использованием вольтметра постоянного напряжения, имеющегося в лаборатории каждого радиолюбителя. Для регулировки по этой методике необходимо запустить управляющую программу в режиме генерации сигнала с фиксированной частотой и при помощи кнопки [Set] задать значение частоты 0(ноль) Гц. После этого кнопка [Run] перейдет в ненажатое положение, а регуляторы амплитуд – в максимум. Кнопки выбора формы сигнала и разрешения выдачи меандра перейдут в нажатое положение. Далее следует нажать кнопку [Run]. Если все было сделано правильно, на выходах генератора установятся постоянные напряжения, соответствующие максимальным амплитудам выдаваемых сигналов. При помощи подстроечных резисторов R25 и R32 следует отрегулировать эти напряжения таким образом, чтобы на выходе канала синус/треугольник было напряжение 2.55В, а на выходе канала меандра 5.10В.

Читайте также:  Домашние электронные самоделки своими руками

Система команд и пример управления работой генератора.

Для тех, кто решит написать собственную управляющую программу генератора или использовать его в составе измерительного комплекса, приведу описание системы команд управления генератором. Основной целью разработанной системы команд было уменьшение объема передаваемых данных в процессе работы генератора в режиме ГКЧ.
Как известно, взаимодействие с USB HID устройством осуществляется при помощи управляющих сообщений (Report). В данном случае реализовано одностороннее взаимодействие, от компьютера к устройству. Управляющее сообщение (Report) для генератора состоит из четырех байтов: идентификатора (ID), который в нашем случае должен быть всегда равен нулю, команды (Command) и двух байтов данных (Data). Поскольку в микросхеме AD9834 отсутствует возможность чтения внутренних регистров, в микроконтроллере содержатся образы этих регистров, которые используются для управления работой этой микросхемы:

  • FreqReg – 28-разрядный регистр частоты
  • PhaseReg – 14-разрядный регистр фазы
  • ControlReg – 16-разрядный регистр управления

Код команды должен быть записан в байт , а необходимые данные — в двухбайтное слово . Далее в описании команда дается в виде где X – бит байта :

— шаг по частоте. Биты DDDDDDD (7 бит) вместе с образуют 23-битный код шага по частоте в смещенном двоичном коде: нулю соответствует число 400000H, которое вычитается контроллером из входного кода, после чего результат складывается с содержимым регистра FreqReg и сохраняется в этом регистре. Далее микросхема AD9834 программируется контроллером на выдачу этой частоты, одновременно выходя из состояния сброса, если она находилась в нем перед этим.

— запись данных в FreqReg. 4 бита DDDD вместе с 16-ю битами дополняются справа 8-ю нулями, образуя 28-разрядное слово, которое записывается в регистр FreqReg. Эта команда не влияет на работу AD9834.

— запись в регистр PhaseReg. 14 младших разрядов записываются в PhaseReg, после чего PhaseReg записывается в AD9834 и происходит переключение на работу с этим значением регистра.

— запись в ControlReg. 16-разрядное слово записывается в ControlReg, при этом, если биты F и/или P равны нулю, то соответствующие биты FSEL и PSEL в ControlReg остаются без изменений. После этого значение ControlReg записывается в AD9834.

— прямая запись в AD9834. 16-разрядное слово записывается в AD9834. Содержимое регистров в микроконтроллере остается неизменным.

— установка амплитуды выходного сигнала канала синус/треугольник. Младший байт определяет значение амплитуды: 0 – минимальная амплитуда, 255 – максимальная.

— установка амплитуды выходного сигнала канала меандр. Младший байт определяет значение амплитуды: 0 – минимальная амплитуда, 255 – максимальная.

— разрешение выдачи меандра. Если младший байт равен нулю – меандр отключен, в любом другом случае – включен.

— управление светодиодом. Если младший байт равен нулю – светодиод отключен, в любом другом случае – включен.

В файле 02.zip приведен исходный код примера управления работой генератора. Этот пример, написанный на Delphi 7, основан на коде, опубликованном пользователем pvabox на форуме VINGRAD.
Для связи с генератором использован компонент JvHidControllerClass, который разработал Robert Martin Marquardt и который входит в состав свободно распространяемой библиотеки JEDI. Этот же компонент использован и в управляющей программе TorDDS.

В заключение приведу несколько осциллограмм работы генератора, полученных при помощи осциллографа DSO-X 3034A компании Agilent.

Минимальная генерируемая частота 0.18626Гц.Следует отметить, что для синусоидального сигнала под термином “амплитуда” подразумевается размах.

Частота генерации – 1МГц. Обратите внимание на равенство амплитуд с минимальной генерируемой частотой.

Частота генерации – 10МГц. Амплитуда синусоидального сигнала уменьшилась, но форма – вполне удовлетворительная. Сказывается действие восстанавливающего фильтра.

Источник

Оцените статью