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

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

  • простая схема с распространенными и недорогими радиоэлементами;
  • односторонняя печатная плата;
  • встроенный блок питания;
  • отдельный высокоскоростной выход (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<-0? «nt»
«eor r19, r19 ;r19<-0? «nt»
«1:» «nt»
«add r18, %0 ;1 cycle» «nt»
«adc r19, %1 ;1 cycle» «nt»
«adc %A3, %2 ;1 cycle» «nt»
«lpm ;3 cycles» «nt»
«out %4, __tmp_reg__ ;1 cycle» «nt»
«sbis %5, 2 ;1 cycle if no skip» «nt»
«rjmp 1b ;2 cycles. Total 10 cycles» «nt»
:
:»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, а также последнюю версию ПО, файлы EagleCAD и Proteus можно скачать ниже.

Файлы для скачивания: dds-generator.rar

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

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

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

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


Источник: tehnoobzor.com

Понравилась статья? Поделиться с друзьями:
ТехПомощь
Добавить комментарий