Dds генератор что. Функциональный DDS генератор. Принципиальная схема генератора на МК

Максимальная частота - 65534 Гц (и до 8 МГц HS выход с меандром). И тут я подумал, что генератор - отличная задача, где ПЛИС сможет показать себя в лучшем виде. В качестве спортивного интереса я решил повторить проект на ПЛИС, при этом по срокам уложиться в два выходных дня, а параметры получить не строго определенные, а максимально возможные. Что из этого получилось, можно узнать под катом

День нулевой

До того, как наступят выходные, у меня было немного времени подумать над реализацией. Чтобы упростить себе задачу, решил сделать генератор не в виде отдельного устройства с кнопками и LCD экраном, а в виде устройства, которое подключается к ПК через USB. Для этого у меня есть плата USB2RS232 . Плата драйверов не требует (CDC), поэтому, я думаю, что и под Linux будет работать (для кого-то это важно). Так же, не буду скрывать, что с приемом сообщений по RS232 я уже работал. Модули для работы с RS232 буду брать готовые c opencores.com .

Для генерации синусоидального сигнала потребуется ЦАП. Тип ЦАП я выбрал, как и в исходном проекте - R2R на 8 бит. Он позволит работать на высоких частотах, порядка мегагерц. Убежден, что ПЛИС с этим должна справиться

По поводу того, на чем написать программу для передачи данных через COM порт я задумался. С одной стороны, можно написать на Delphi7, опыт написания такой программы уже есть, к тому же размер исполняемого файла будет не большим. Еще попробовал набросать что-то для работы с Serial в виде java скрипта в html страничке, но более менее заработало только через Chrome serial API, но для этого надо устанавливать плагин… в общем тоже отпадает. В качестве новшества для себя попробовал PyQt5, но при распространении такого проекта, нужно тащить кучу библиотек. Попробовав собрать PyQt проект в exe файл, получилось больше 10 мб. То есть, будет ничем не лучше приложения, написанного на c++\Qt5. Стоит еще учесть, что опыта разработки на python у меня нет, а вот на Qt5 - есть. Поэтому выбор пал на Qt5. С пятой версии там появился модуль для работы с serial и я с ним уже работал. А еще приложение на Qt5 может быть перенесено на Linux и Mac (для кого-то это важно), а с 5.2 версии, приложения на QWidgets может быть перенесено даже на смартфон!

Что еще нужно? Естественно плата с ПЛИС. У меня их две (Cyclone iv EP4CE10E22C8N на 10 тыс. ячеек, и Cyclone ii EP2C5 на 5 тыс. ячеек). Я выберу ту, что слева, исключительно по причине более удобного разъема. В плане объема проект не предполагает быть большим, поэтому уместится в любую из двух. По скорости работы они не отличаются. Обе платы имеют «на борту» генераторы 50 МГц, а внутри ПЛИС есть PLL , с помощью которого я смогу увеличить частоту до запланированных 200 МГц.

День первый

В связи с тем, что модуль DDS я уже делал в своем синтезаторном проекте, то я сразу взялся за паяльник и начал паять ЦАП на резисторах. Плату взял макетную. Монтаж делал с применением . Единственное изменение, которое коснулось технологии - я отказался от кислоты Ф38Н для лужения стоек в пользу индикаторного флюс-геля ТТ . Суть технологии проста: в печатную плату впаиваю стойки, на них со стороны печатного монтажа припаиваю резисторы. Недостающие соединения выполняю накруткой. Еще, стойки удобны тем, что я их могу вставить прямо в плату ПЛИС.

К сожалению, дома в наличии не оказалось резисторов 1 и 2 килоома. Ехать в магазин было некогда. Пришлось поступиться одним из своих правил, и выпаять резисторы из старой не нужной платы. Там применялись резисторы 15К и 30К. Получился вот такой франкенштейн:


После создания проекта нужно задать целевое устройство: Меню Assigments -> Device


В проекте я «нахадркодил» неуправляемый главный модуль DDS на фиксированную частоту.

Модуль генератора на 1000 Гц

module signal_generator(clk50M, signal_out); input wire clk50M; output wire signal_out; wire clk200M; osc osc_200M reg accumulator; assign signal_out = accumulator; //пробуем генерировать 1000 Гц //50 000 000 Hz - тактовая частота внешнего генератора //2^32 = 4 294 967 296 - разрядность DDS - 32 бита //делим 1000Hz / 50 000 000 Hz / 2 * 4294967296 => 42949,67296 always @(posedge clk50M) begin accumulator <= accumulator + 32"d42949; end endmodule


После этого нажал «Start Compilation», чтобы среда разработки задалась вопросом, какие у нас линии ввода вывода есть в главном модуле проекта и к каким физическим PIN"s они подключены. Подключить можно практически к любому. После компиляции назначаем появившиеся линии к реальным PIN микросхемы ПЛИС:

Пункт меню Assigments -> Pin Planner

На линии HS_OUT, key0 и key1 прошу пока не обращать внимание, они появляются в проекте потом, но скрин в самом начале я сделать не успел.

В принципе, достаточно «прописать» только PIN_nn в столбце Location, а остальные параметры (I/O standart, Current Strench и Slew Rate) можно оставить по умолчанию, либо выбрать такие же, что предлагаются по умолчанию (default), чтобы не было warning"ов.

Как узнать какому PIN соответствует номер разъема на плате?

Номера контактов разъема подписаны на плате


А пины ПЛИС, к которым подключены контакты разъема, описаны в документации, которая идет в комплекте с платой ПЛИС.




После того, как пины назначены, компилирую проект еще раз и прошиваю с помощью USB программатора. Если у вас не установлены драйверы для программатора USB Byte blaster, то укажите Windows, что они находятся в папке, куда у вас установлен Quartus. Дальше она сама найдет.

Подключать программатор нужно к разъему JTAG. А пункт меню для программирования «Tools -> Programmer» (либо нажать значек на панели инструментов). Кнопка «Start», радостное «Success» и прошивка уже внутри ПЛИС и уже работает. Только не выключайте ПЛИС, а то она все забудет.

Tools -> Programmer


ЦАП подключен к разъему платы ПЛИС. К выходу ЦАП подключаю осциллограф С1-112А. В результате должна получиться «пила» потому что на выход 8 бит выводится старшая часть слова DDS аккумулятора фазы. А оно всегда увеличивается, пока не переполнится.

Каких-то 1.5 часа и для частоты в 1000 Гц я вижу следующую осциллограмму:

Хочу заметить, что «пила» по середине имеет небольшой перелом. Он связан с тем, что резисторы имеют разброс значений.

Еще один важный момент, который нужно было выяснить - это максимально возможная частота, с которой будет работать DDS генератор. При правильно настроенных параметрах TimeQuest, после компиляции в «Compilation Report» можно увидеть, что скорость работы схемы выше 200 МГц с запасом. А это значит, что частоту генератора 50 МГц я буду умножать с помощью PLL на 4. Увеличивать значение аккумулятора фазы DDS буду с частотой 200 МГц. Итоговый диапазон частот, который можно получить в наших условиях 0 - 100 МГц. Точность установки частоты:

200 000 000 Гц (clk) / 2^32 (DDS) = 0,047 Гц
То есть, это лучше, чем ~0.05 Гц. Точность в доли герца для генератора с таким диапазоном рабочих частот (0...100 МГц) считаю достаточной. Если кому-то потребуется повысить точность, то для этого можно увеличить разрядность DDS (при этом не забыть проверить TimeQuest Timing Analyzer, что скорость работы логической схемы укладывалась в CLK=200 МГц, ведь это сумматор), либо просто снизить тактовую частоту, если такой широкий диапазон частот не требуется.

TimeQuest Timing Analyzer


После того, как я увидел на экране «пилу», семейные дела заставили меня ехать на дачу (выходной же). Там я косил, варил, жарил шашлык и не подозревал о том сюрпризе, что ждал меня вечером. Уже ближе к ночи, перед сном, я решил посмотреть форму сигнала для других частот.

Для частоты 100 КГц

Для частоты 250 КГц

Для частоты 500 КГц

Для частоты 1 МГц

День второй

В связи с тем, что было интересно, как будет работать ЦАП на резисторах 100 и 200 Ом, я сразу взялся за паяльник. На этот раз ЦАП получился более аккуратным, а времени на его монтаж ушло меньше.

Ставим ЦАП на плату ПЛИС и подключаем к осциллографу

Проверяем 1 МГц - ВО! Совсем другое дело!

Пила 10 МГц

Пила 25 МГц


Форма пилы на 10 МГц еще похожа на правильную. Но на 25 МГц она уже совсем «не красивая». Однако, у С1-112а полоса пропускания - 10 МГц, так что в данном случае причина может быть уже в осциллографе.

В принципе, на этом вопрос с ЦАП можно считать закрытым. Теперь снимем осциллограммы высокоскоростного выхода. Для этого, выведем старший бит на отдельный PIN ПЛИС. Данные для этой линии будем брать со старшего бита аккумулятора DDS.

Assign hs_out = accumulator;

Меандр 1 МГц

Меандр 5 МГц

Меандр 25 МГц

Меандр 50 МГц уже практически не виден


Но считаю, что выход ПЛИС стоило бы нагрузить на сопротивление. Возможно, фронты были бы круче.

Синус делается по таблице. Размер таблицы 256 значений по 8 бит. Можно было бы взять и больше, но у меня уже был готовый mif файл. С помощью мастера создаем элемент ROM с данными таблицы синуса из mif-файла.

Создание ROM - Tools -> Mega Wizard Plugin manager


Выбираем 1 портовую ROM и задаем название модулю

Соглашаемся

Тут тоже соглашаемся

С помощью browse находим наш mif файл с таблицей синуса

Тут тоже ничего не меняем

Снимаем галочку с модуля sine_rom_bb.v - он не нужен. Дальше finish. Квартус спросит добавить модуль в проект - соглашаемся. После этого, модуль можно использовать так же, как любой другой модуль в Verilog.


Старшие 8 бит слова аккумулятора DDS будут использоваться в качестве адреса ROM, а выход данных - значение синуса.

Код

//sine rom wire sine_out; sine_rom sine1(.clock(clk200M), .address(accumulator), .q(sine_out));


Осциллограмма синуса на разных частотах выглядит… одинаково.

При желании, можно рассмотреть проблемы ЦАП, связанные с разбросом резисторов:

Чтож, на этом выходные кончились. А ведь еще не написано ПО для управления с ПК. Вынужден констатировать факт, что в запланированные сроки я не уложился.

День третий

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

Интерфейс

Ссылки с аналогами

Далеко не полный список
Функциональный DDS генератор. Создан базе AVR. Частоты 0… 65534 Гц.
Обзор DDS-генератора GK101. Создан с применением ПЛИС Altera MAX240. Частоты до 10 МГц.
Многофункциональный генератор на PIC16F870. Частотный диапазон: 11 Гц - 60 кГц.
генераторы
  • Qt5
  • Добавить метки

    Сегодня на обзоре конструктор генератора DDS (Direct Digital Synthesizers, прямой цифровой синтез - метод получения сигнала напрямую с выхода ЦАП по заранее указанной функции или таблице значений). с китайского магазина. Особо много технической документации нарыть не удалось. Внизу статьи прикреплен файлик с оригинальным описанием.

    Характеристики от производителя:

    • простая схема;
    • ВЧ выход до 8 МГц;
    • регулируемая амплитуда и постоянная составляющая на выходе синтезатора;
    • синтезируемые формы: синус, треугольник, прямая и обратная пила, ЭКГ, шум;
    • меню на дисплее 16х2;
    • простая клавиатура из 5 кнопок;
    • шаг регулировки частоты 1Гц - 10кГц
    • хранение последних настроек энергонезависимо;
    • диапазон частот синтезатор 1Гц - 65535Гц;
    • постоянная составляющая -5В..+5В;
    • амплитуда до 10В.

    Конструктор пришел вот в таком пакете

    Вот что внутри

    Никакой инструкции не наблюдалось, но, как и обещали, интуитивно всё понятно. Как видно, на плате всё сразу подписано номиналами. Плата, кстати, сделана весьма неплохо.

    Можно начинать сборку. Традиционно первыми ставим резисторы. Их номиналы либо проверяем мультиметром, либо выясняем по кольцам. Вот так это выглядит у меня, поставлены резисторы 10к и 20к:

    Ставлю не все сразу, чтобы лес выводов внизу не мешал. Вот так установлены и впаяны все резисторы:

    Теперь поставим переменный резистор. Он необходим для подстройки контрастности экрана. Заодно вставил кварц.

    Теперь установим разъем для дисплейного модуля. Тут надо обратить внимание на 2 момента - разъём при пайке не перегрейте (чтобы не поплавить корпус) и поставить надо как можно более вертикально. У меня получилось вот так.

    Заодно смонтируем ответную гребенку в дисплейный модуль. Нюансы из предыдущего пункта в силе.

    Разъём питания. Устройству требуется, как видим 3 напряжения: +12, -12, +5 (В). +5В нужен для работы проца и дисплея, +/-12 для выходного усилителя.

    ,

    Теперь два подстроечных резистора. Будьте внимательны: несмотря на одинаковые корпуса резисторы имеют разные номиналы - 50кОм для регулировки амплитуды и 1кОм для регулировки постоянной составляющей.

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

    Ставим в панельке две микросхемы. Внимательно следите, чтобы ключ стоял в соответствии с маркировкой. При установке восьминогой LM358 обязательно убедитесь в правильном положении ключа; неправильное положение на 80% приведет к отказу микросхемы. При установке микроконтроллера следите за тем, чтобы все ноги попадали в панельку, при необходимости осторожно подогните выводы. Также я привинтил стойки к плате в средние отверстия для закрепления дисплея.

    Осталось установить в разъем дисплей и привинтить к стойкам. В принципе устройство собрано. Вот окончательный вид

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

    Настраиваем контрастность

    При правильно настроенной контрастности символы чётко должны быть видны на дисплее

    Начнём тестирование. В первую очередь снимем сигнал с правого разъёма DDS

    Кнопками UP и DOWN выбирается форма сигнала, LEFT и RIGHT меняем частоту, центральная кнопка включает/выключает генерацию.

    Сразу видим, что после 10 кГц синуса уже далеко нет. После 30 кГц падает амплитуда. На частотах ниже 10 кГц синус хороший, частота стабильна, ступенек нет.

    Теперь смотрим прямоугольный сигнал, частоты 1, 5, 10 кГц

    На частотах выше 10 кГц даже проверять не стану - думаю уже все понятно.

    Теперь треугольный сигнал, частоты 1, 5, 10, 30, 65,5 кГц.

    Этот сайт посвящен моим проектам на PIC контроллерах, доступных для публичного освещения. Все приведенные схемы реализованы в железе и работают в настоящее время в быту или производстве. Для написания программ использован пакет MPLAB/х, свободно распространяемый фирмой MICROCHIP. Используется программатор PICKIT2/3, ICD2/3. Любую конструкцию можно собрать самому, даже если она платная и получить бесплатно код разблокировки. Также можно приобрести в качестве набора для сборки или готового изделия. Принимаются заказы на разработку аналогово-цифровой или цифровой электроники, систем управления и электроники для производства с применением контроллеров.
    Вопросы и предложения писать на почту [email protected]
    Если у Вас есть интересные предложения, закакзы или вопросы и форум Вам не помог - адрес тот же.


    Обзор.

    Казалось бы существует великое множество любительских генераторов сигналов, бери да повторяй, но не так все просто. Всегда считал что промышленные генераторы закроют все мои потребности, да и лучше они любительских. Но жизнь расставила все по местам, пришлось делать свой, который бы хоть на немного закрыл мои потребности. При всей своей простоте конструкции, его возможностей достаточно для применения радиолюбителями и не только.. Кроме своей основной функции просто генератора он позволяет измерять емкость, сопротивление, автоматически снимать АЧХ с экспортом на компьютер. Также формировать сигналы ШИМ (PWM) для одноактных и двухтактных схем с автоматической защитой или управляемые по обратной связи. Выполнен на доступных деталях и прост в настройке.

    Теперь кратко о технических характеристиках:
    - Габариты п/п 67 *88 *19 мм, разработана специально для установки в корпус Z-19
    - Дисплей 2*16 символов, светодиодная подсветка.
    - Питание 3,7 - 5 вольт. 3 элемента типа ААА или литиевый аккумулятор или внешнее. Максимальное потребление 40 мА
    - Выходное напряжение Vp-p аналоговый выход - 3,3v.
    - Частота дискретизации DDS -1,6 МГц. Разрешение цифровой части (PWM) 62.5 nS
    - Диапазон частот аналоговой части 0-600 кГц, Цифровой 50Гц-320 кГц / PWM-7bit(0-100%).
    - Встроенные отключаемые фильтра
    - Диапазон измерений емкости: 100pF - 10uF с точностью +/-5%
    - Диапазон измерения сопротивления 10 Ом - 200кОм с точностью +/-5%
    - Цифровые вход и выход внешней синхронизации, открытый и закрытый входа.
    - Аналоговый вход.
    - Выходной делитель 1/10 для аналоговой части.
    - Управление - энкодер с прогрессивной харракеристикой
    - Память на 4 формы сигнала пользователя, импорт и экспорт на компьютер. Есть ручная настройка.
    - Автоматическое снятие АЧХ без дополнительных приборов, экспорт на компьютер. Режим просмотра без компьютера.
    - Генератор видеосигнала - вертикальные полосы - градации яркости
    - Базовые сигналы -синусоида, прямоугольник, пила прямая и обратная, треугольник, ЭКГ, белый шум.
    - Свип генератор с настройкой полосы и скорости изменения.
    - Формирование пачек импульсов с внешней сихронизацией.
    - Контроль источника питания, подзарядка аккумулятора, если есть.

    Внешний вид (все картинки кликабельны)

    Вариант компоновки в корпусе Z-19. Вместо отсека для батареек можно расположить литиевый аккумулятор.
    Гнезда для подключения можно расположить на передней панели и клеммы в плату не запаивать.

    DDS генератор сигналов "OSKAR-DDS"
    Аппаратная часть

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

    Немного подробнее о схеме.
    Ядром является микроконтроллер PIC18F26K22 фирмы "MICROCHIP", который собственно и выполняет все функции прибора. Аналоговая часть выполнена на сдвоенном операционном усилителе MCP6022 с полосой единичного усиления 10 МГц, цифровом сдвоенном переменном резисторе MCP41010, сдвоенном ОУ MCP602 и аналоговом коммутаторе.
    Сдвоенный переменный резистор используется для регулировки уровня выходного сигнала и регулировки смещения по постоянному току выходного сигнала. Источник опорного напряжения и буфер виртуальной земли (аналоговая земля) выполнен на MCP602.
    ЗАПРЕЩАЕТСЯ соединять цифровую и аналоговую земли!!!
    В качестве дисплея использован черно-белый символьный индикатор 2*16 BC1602 или совместимые.
    Питание всей схемы выполняется от стабилизированного источника 3,3 вольта (LM2950-3.3). Управление питанием выполнено на транзисторах Т1 и Т2.
    Питание аналоговой части, несмотря на применение ОУ Rail-to-Rail, выполнено с изюминкой. На D3 сделано смещение в минус, примерно 0,25V, и в плюс до напряжения питания, как минимум 0,2V (падение на LowDrop LM2950), чем обеспечивается высокое качество сигнала во всем диапазоне амплитуд.
    Все элементы установлены на двухсторонней печатной плате с одной стороны, а дисплей с подсветкой, клеммы, кварц, гнездо питания и энкодер с другой. В итоге получается компактная, жесткая конструкция.

    Расположение элементов (кликабельно)

    Для сборки нам понадобятся

    Перечень элементов
    Питание
    Bat1 = 1 x 4-9V Держатель AAA для 3-х 33x51
    Конденсаторы
    C17 = 1 x 200p
    C18 = 1 x 82p
    C1,C2,C3,C4,C5,
    C8,C9,C10,C13,
    C16,C20,C21 = 12 x 0.1
    C11,C12 = 2 x 27
    C15,C19 = 2 x 1.0
    C6,C7 = 2 x 100.0
    Кварц
    Cr1 = 1 x 20 MHz
    Диоды
    D1 = 1 x LL4148
    D2 = 1 x 5v6
    D3 = 1 x SS12
    D4 = 1 x BAV99
    D5 = 1 x BAT54S
    Микросхемы
    DA1 = 1 x MCP42010
    DA2 = 1 x MCP602
    DA3 = 1 x MCP6022
    DD = 1 x PIC18F26K22
    IC1 = 1 x 74hc4066
    ЖКИ
    LCD1 = 1 x BC1602(HD44780 и его аналоги)
    Резисторы
    R2 = 1 x 6k2
    R7 = 1 x 220k
    R8 = 1 x 11k
    R13 = 1 x 910
    R14 = 1 x 300
    R16 = 1 x 2K
    R17 = 1 x 3K
    R20 = 1 x 100k
    R21 = 1 x 4k7
    R23 = 1 x 10K
    R27 = 1 x 1
    R1,R5 = 2 x 33
    R10,R15 = 2 x 22k
    R12,R18,R24,
    R25,R26 = 5 x 100
    R22,R38,R40,
    R41,R42,R43,
    R44,R45 = 8 x 1k 0,5%
    R3,R4,R6,R9,
    R11,R19,R28,
    R29 = 8 x 10k
    R30,R31,R32,
    R33,R34,R35,
    R36,R37,R39 = 9 x 2k 0,5%
    Энкодер
    S = 1 x re11ct2
    Транзисторы
    T1 = 1 x BC807
    T4 = 1 x 2N7002
    T2,T3 = 2 x BC817
    Стабилизатор
    VR1 = 1 x lp2950-3.3
    Разъем
    X1 = 1 x 5mm
    Клеммник
    126-02P(5.0мм) x5

    А также терпение, умение и прямые руки.

    DDS генератор сигналов "OSKAR-DDS"
    Описание работы и управление.
    Описание входов и выходов

    Итак, клеммы подключения слева на право:

    1 - AGND - Аналоговая виртуальная земля. Не соединять с цифровой землей!!!
    2 - AUOT 1/10 - Аналоговый выход с делителем 1/10.
    3 - AUOT 1/1 - Аналоговый выход. Максимальное напряжение по отношению к аналоговой земле +3,3/-3,3 вольт.
    4 - Аналоговый вход Сх. Универсальный вход. Работает по отношению к цифровой земле. Максимальное входное напряжение без повреждения - 10 вольт. Так же вход RS232 9600 8N1.
    5 - PWM - Выход цифрового модуля PWM. Выходные уровни - цифровые CMOS 3,3 вольт.
    6 - PWM1 - Выход цифрового модуля PWM1. Выходные уровни - цифровые CMOS 3,3 вольт.
    7 - Цифровая земля.
    8 - Выход SYN. Выходные уровни - цифровые CMOS 3,3 вольт. Так же выход RS232 9600 8N1.
    9 - SYN in - закрытый вход синхронизации. Максимальное входное напряжение без повреждения - 50 вольт. Входное сопротивление более 100кОм.
    10 - SYN in - открытый вход синхронизации. Максимальное входное напряжение без повреждения - 50 вольт. Входное сопротивление более 100кОм.
    На всех выходах включены защитные резисторы 100 Ом.
    На всех входах включены защитные резисторы 10 кОм.

    Управление

    Все управление сделано одним энкодером. Есть следующие комбинации:
    Длинное нажатие (более 1 сек.) Включение и выключение прибора. При выключении запоминаются все настройки и текущий режим. После включения будет в том же месте, с генерацией того же сигнала.
    Короткое нажатие - выбор параметра для изменения.
    Вращение - смена параметра, отображенного на дисплее. Вправо - увлечение. Влево - уменьшение.
    Скорость изменения зависит от скорости вращения, так например в зависимости от скорости вращения изменение частоты может быть и 0,1 Гц и 10000 Гц на один щелчок. Это позволяет оперативно и точно настроить любые параметры и не утомляет оператора.

    Питание

    Питание от однополярного источника напряжением от 3,7 до 5 вольт. Превышение 5 вольт приводит к порче прибора.
    Внутненее питание от стабилизатора 3,3 вольт.
    Допустимо использовать:
    - три батарейки по 1,5 вольт (конструктив рассчитан на установку батарейного отсека 3*ААА.
    - Литиевый аккумулятор со схемой защиты, монтажный или от мобильного телефона.
    - Внешний источник стабилизированного напряжения 5 вольт/200мА, благо сейчас полно USB зарядок. Если при этом есть встроенный аккумулятор, то он будет заряжаться. Как такового контроллера заряда нет, зарядка идет ограниченным током. По этому следует ограничивать время заряда и не применять аккумуляторы емкостью не менее 900мА/час. Также обязательным условием является схема защиты на самом аккумуляторе. (от мобильных все имеют).
    Изолированное питание позволяет применять генератор для устройств под напряжением, в том числе под напряжением сети. Следует проявлять осторожность и меры защиты от поражения электрическим током.

    Частотные характеристики

    В генераторе есть два подключаемых активных фильтра НЧ с частотами среза 300 кГц и 20кГц

    Частотная характеристика без фильтра (для синусоидального сигнала)

    Частотная характеристика с фильтром 300 кГц (для синусоидального сигнала)


    Частотная характеристика с фильтром 20 кГц (для синусоидального сигнала)

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

    Режимы работы

    Генератор синусоиды

    Диапазон частот от 0,09 Hz до 600 кГц. Рекомендуется включать соответствуюшие фильтра для качественного сигнала.
    - Максимальная амплитуда Vp-p 3.3 вольт. Регулировка 256 шагов
    - Смещение по постоянному току +/- 1,65 вольт. Регулировка 256 шагов

    Дополнительные режимы

    Режим пачек импульсов (PULSE MODE).

    1 - Режим пульса с выводом синхросигнала на выход SYN OUT. "PULSE ENABLE"
    Генерируется сигнал с установками сделанными ранее, длительностью TIME PULSE.
    Окончание генерации сопровождается установкой "0" на выходе SYN OUT.
    Выдерживается пауза длительностью TIME PAUSE, причем во время паузы устанавливается уровень по постоянному току PAUSE LEVEL. И так по кругу.
    Настройка этих параметров в разделе "SETTING"
    Диапазон изменения таймеров паузы и пульса - от 0 до 1,048 секунды с шагом 64 мкс.
    Уровень паузы по постоянному току +/- 1,65 вольт. Регулировка 256 шагов
    Выход SYN OUT формирует сигнал по отношению к цифровой земле.

    2 - Режим пульса (генерации) от внешнего синхро сигнала."ONE PULS SYNC"
    Начало по фронту импульса.
    Начало генерации сопровождается установкой "1" на выходе SYN OUT.
    По внешнему синхро сначала выжидается пауза с установленным PAUSE LEVEL длительностью TIME PAUSE, затем формируется однократно пачка длительностью TIME PULSE ,и потом все сначала, с ожидания фронта синхросигнала.

    3 - Режим генерации от внешнего синхро сигнала."START OF SYNC"
    Начало по фронту импульса.
    Начало генерации сопровождается установкой "1" на выходе SYN OUT.
    Окончание генерации сопровождается установкой "0" на выходе SYN OUT. Выход SYN OUT формирует сигнал по отношению к цифровой земле.
    По внешнему синхро сначала выжидается пауза с установленным PAUSE LEVEL длительностью TIME PAUSE, затем включается генератор непрерывно. Для запуска сначала надо нажать на энкодер и цикл начнется сначала, с ожидания фронта синхросигнала.

    Выбран режим генератора синусоиды, вращение енкодера - смена режима, нажатие - установки режима.
    Стрелочки слево и вправо обозначают что при вращении режим будет изменен.

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

    Выбор частоты

    Сдвиг по постоянному уровню

    Выбран режим установок, вращение енкодера - смена режима, нажатие - установки режима.
    Стрелочки слево и вправо обозначают, что при вращении режим будет изменен.

    Подключение фильтров. Изменение - вращение.
    Фильтры отключены. Подключен фильтр 300 кГц. Подключен фильтр 20кГц

    Переключение дополнительных режимов пульса. Изменение - вращение.
    Режим пульса отключен. Режим запуска от синхро. Режим однократного запуска. Режим авто с выводом синхро.

    Глобальные настройки - SETUP. Изменение - вращение.
    Начальный экран. Настройка контраста дисплея. Вкл/выкл подсветки. Напряжение питания. Показать серийный номер.

    Синусоида 1000 Гц.

    Синусоида 90 кГц без применения фильтров. Видны ступеньки.

    Синусоида 90 кГц с фильтром на 300 кГц. Теперь все хорошо

    Синусоида 300 кГц с фильтром на 300 кГц. Картинка красивая, незначительно упала амплитуда, согласно АЧХ.

    Синусоида 600 кГц с фильтром на 300 кГц. Картинка не красивая, упала амплитуда, согласно АЧХ. Частоты свыше 300к - для снятия АЧХ, для полного применения нужен нормальный внешний фильтр НЧ с частотой среза 600к.

    Синусоида 5 кГц с фильтром на 300 кГц. Сдвиг по постоянному уровню в плюс.

    Синусоида 5 кГц с фильтром на 300 кГц. Сдвиг по постоянному уровню в минус.

    Синусоида 58 кГц с фильтром на 300 кГц. Режим пульса, пауза и время 2,1 mS

    Синусоида 58 кГц с фильтром на 300 кГц. Режим пульса, пауза и время 1.98 mS, Выход синхросигнала

    Синусоида 58 кГц с фильтром на 300 кГц. Режим пульса однократный, пауза и время 1.98 mS, Вход синхросигнала внешнего 100Гц. От фронта выдержка паузы с уровнем, затем пачка.

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

    Генератор прямоугольного, пилообразного, обратного пилообразного, треугольного сигнала.

    Диапазон частот от 0,09 Hz до 200 кГц. Рекомендуется отключать фильтра для качественного сигнала.

    Иллюстрации отображения на индикаторе

    Генератор прямоугольного сигнала


    Генератор пилообразного сигнала


    Генератор обратного пилообразного сигнала

    Генератор треугольного сигнала

    Иллюстрации осциллограмм сигнала с генератора

    Прямоугольник 5000 Гц.

    Пила 5000 Гц.

    Обратная пила 5000 Гц.

    Треугольник 5000 Гц.


    Генератор сигнала ЭКГ.

    Иллюстрации

    Экран

    Осциллограмма


    Генератор белого шума.

    Рекомендуется подключать фильтр 20 кГц для качественного сигнала.
    Настраиваемые параметры: Амплитуда, сдвиг по постоянному уровню, тональность.
    Так же доступны все дополнительные режимы и их регулировки.

    Иллюстрации

    Осциллограмма

    Генератор низкочастотного телевизионного сигнала.

    Рекомендуется отключать фильтр для качественного сигнала.
    Полный Ч/Б видеосигнал из двух полукадров(625 строк), вертикальные полосы - градации серого.
    Настраиваемые параметры: Амплитуда, сдвиг по постоянному уровню.

    Иллюстрации

    Осциллограмма 1 строки

    Свип генератор.

    Принцип работы - генерация синусоидального сигнала он начальной частоты FRQ START до конечной частоты FRQ END с шагом по частоте FRQ STEP и временем на 1 шаг TIME STEP.
    Диапазон перестроек частот и шага 0,09Гц - 600 кГц, времени от 64 мкс до 1 сек.
    Также настраиваются параметры: Амплитуда, сдвиг по постоянному уровню, запись лог файла вкл/выкл (LOG ENABLE /LOG DISABLE)
    Рекомендуется подключать соответствующий фильтр для качественного сигнала, в зависимости от частотного диапазона.
    Уровень постоянной составляющей в паузе так же берется из соответствующей настройки.
    Дополнительные режимы не доступны.
    Рекомендуется выбирать время шага не менее 10-20 периодов самого низкого сигнала для снятия АЧХ.
    Запись лога применяется для автоматического снятия АЧХ исследуемого устройства. Глубина лога - 1280 значений. Для каждого значения записывается частота и измеренная амплитуда постоянного сигнала на аналоговом входе Сх. Максимальное напряжение на входе - 3,3 вольт для максимального отсчета.
    Запись начинается всегда сначала с самой маленькой частоты. Для записи всей АЧХ требуется выполнение условия: (Частота конечная - частота начальная)/ шаг частоты
    Дополнительно выставляется пауза между циклами, равная установки времени паузы и генерируется синхроимпульс на выходе SYN OUT, длинна которого в высоком состоянии равна времени генерации. В паузе SYN OUT ="0".

    Иллюстрации

    Осциллограмма

    Подробнее об автоматическом получении АЧХ исследуемого устройства и просмотре лога.

    Итак, требуется снять АЧХ фильтра пробки, образованной колебательным контуром из индуктивности и емкости. Также путем косвенных измерений узнаем значение индуктивности, при известной емкости.
    Соберем схему показанную на рисунке:

    Исследуемый колебательный контур состоит из индуктивности и конденсатора C2,нагруженный на резистор R1.
    Данная цепочка подключается к выходу генератора - OUT и AGND.
    Соберем измерительную схему. Развязку по постоянному току выполняет С3, за ним стоит детектор по схеме удвоения на диодах D1 и D2. Который в свою очередь нагружен на R3 , пульсации сглаживает конденсатор C1.
    Измерительная схема подключена к входам Сх и GND.
    Настроим генератор, для этого установим в настройках время паузы - 100mS, уровень сигнала во время паузы - минимальный. Переходим в раздел Свип-генератор, устанавливаем частоту старта 10 кГц, частоту окончания 15 кГц, шаг перестройки - 50Гц, время перестройки 20mS, амплитуду максимальную, смещение нулевое, лог -включить, выходим на начало и ждем какое-то время.

    Иллюстрации к настройкам







    Пока ждем, подключим осциллограф ко входу Сх



    Явно импульс стробирования длинной 100 mS, и АЧХ с характерным провалом на резонансе фильтра - пробки.
    Значит мы правильно выбрали диапазон перестройки.

    Перходим в раздел просмотра лога

    Выбираем просмотр

    И вращая энкодер, просматриваем частоту и амплитуду. Можно в уме выбрать минимальное значение, можно переписать на листик и по точкам построить АЧХ, но это не наш метод.
    Воспользуемся компьютером. Нам понадобится USB-COM TTL преобразователь, например такой


    Подключаем
    GND - GND
    RXD - SYN OUT

    На компьютере запускаем программу гипертерминал, выбираем COM порт, который создался при установке преобразователя USB-COM.
    Настраиваем скорость 9600 8N1, включаем запись данных с порта в файл, подключаемся к порту.
    На генераторе выбираем пердачу данных, и вращением запускаем пердачу.


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

    OSKAR DDS VER=3.0.0 START LOG FRQ-Hz,VOLUME 0010050.39,068 0010100.45,070 0010150.52,069 0010200.59,069 0010250.65,068 0010300.72,068 0010350.79,069 0010400.86,069 0010450.93,068 0010501.00,068 0010551.07,068 0010601.13,069 0010651.20,068 0010701.27,068 0010751.33,068 0010801.40,068 0010851.47,069 0010901.54,068 0010951.61,068 0011001.67,068 0011051.74,068 0011101.81,068 0011151.88,068 0011201.95,067 0011252.01,067 0011302.08,067 0011352.15,067 0011402.22,067 0011452.29,066 0011502.35,066 0011552.42,067 0011602.49,066 0011652.56,065 0011702.63,065 0011752.69,065 0011802.76,065 0011852.83,064 0011902.90,063 0011952.96,063 0012003.03,063 0012053.10,062 0012103.17,061 0012153.24,060 0012203.30,060 0012253.37,058 0012303.44,057 0012353.51,055 0012403.58,054 0012453.64,052 0012503.71,050 0012553.78,048 0012603.85,045 0012653.92,042 0012703.98,040 0012754.05,038 0012804.12,035 0012854.19,033 0012904.26,032 0012954.32,031 0013004.39,030 0013054.46,031 0013104.53,033 0013154.60,034 0013204.66,035 0013254.73,038 0013304.80,040 0013354.86,042 0013404.93,045 0013455.00,047 0013505.07,049 0013555.14,050 0013605.21,053 0013655.27,054 0013705.34,055 0013755.41,057 0013805.48,057 0013855.54,058 0013905.61,059 0013955.68,060 0014005.75,061 0014055.82,061 0014105.88,062 0014155.95,062 0014206.02,063 0014256.09,064 0014306.15,064 0014356.23,064 0014406.29,065 0014456.36,065 0014506.43,066 0014556.49,065 0014606.56,065 0014656.63,066 0014706.70,066 0014756.77,066 0014806.83,067 0014856.90,067 0014906.97,067 0014957.04,067 0015007.11,067 END LOG

    Если все в порядке, тогда запускаем EXCEL и строим график

    Теперь все очень наглядно, частота резонанса - 13кГц.
    Должен сказать,что я примерно знал номинал индуктивности, по этому выбрал именно этот диапазон для снятия АЧХ

    Теперь самое время взять калькулятор и рассчитать индуктивность по известной формуле LC резонанса.
    У меня получилось 149,9 микрогенри, а сам дроссель взят из коробочки с надписью 150 микрогенри.

    Аналогичным образом снимается АЧХ любого четырехполюсника, главное обеспечить сигнал на входе Сх достаточной амплитуды.
    В дополнение
    - Если у Вас стандартный COM порт, а не TTL то тогда надо выбрать инверсную передачу. Но следует помнить, что не все порты понимают сигнал амплитудой всего 3 вольта.
    -Схема детектора должна иметь низкое выходное сопротивление, или шунтировать вход Сх конденсатором на землю. Но в последнем случае требуется не высокая скорость изменения частоты.

    Измерение емкости и сопротивления.

    Тут все просто,подключаем и смотрим





    Режим генерации произвольного сигнала. Редактирование, загрузка и выгрузка формы сигнала.

    Диапазон частот от 0,09 Hz до 600 кГц. Рекомендуется включать/отключать фильтра для качественного сигнала, в зависимости от формы и частоты.
    Все остальные параметры, режимы, управление соответствуют генератору синусоидального сигнала.
    Так же доступны все дополнительные режимы и их регулировки.
    Количество форм сигналов - 4, пронумерованных от #0 до #3. Размер таблицы на период - 256 отсчетов. Для каждого отсчета указывается амплитуда от 0 до 255.

    Генерация произвольного сигнала.

    Перейти в режим USER #x WAVE. Доступны регулировки частоты, амплитуды, сдвига по постоянному уровню и выбор номера сигнала

    Иллюстрации к настройкам и предустановленным сигналам



    Ручное редактирование произвольного сигнала.

    Перейти в режим USER #x EDIT.
    В процессе редактирования сигнал продолжает генерироваться с параметрами установленными в предыдущем разделе и его можно наблюдать, например на осциллографе.
    Первым делом нужно выбрать номер таблицы,которую будем редактировать, при входе в режим она совпадает с номером, выбранным в предыдущем режиме. И форма сигнала загрузится из той же таблицы.
    Если для образца редактирования требуется синусоида, то требуется зайти в меню генерации пользовательского сигнала, выбрать номер таблицы, затем прейти назад в режим свип-генератора и вернуться вперед в редактирование.
    В этом случае образцом редактирования будет синус и номер таблицы из предыдущего меню. Если в режиме редактирования изменить номер таблицы, то и форма сигнала будет перезагружена из пользовательских данных.

    Следующим пунктом выбирается редактирование сигнала.
    Выбирается вращением позиция в таблице POS от 0 до 255

    Нажимаем и выбираем амплитуду в этой позиции

    Нажимаем и попадаем в выбор следующей позиции.
    Для выхода требуется переход позиции из значения 255 в 0.
    Появится приглашение сохранения в память данной таблицы

    Вращением сохраним, или нажимаем и идем дальше.
    Следующее приглашение на экспорт на компьютер данной таблицы. Подключение к COM порту такое же как и в случае экспорта АЧХ. Также доступен экспорт в инверсии сигнала порта, как описано ранее, в следующем пункте.


    Сохранив аналогично описанному ранее получим масив данных,например такой

    START TABLE #3 OSKAR DDS VER=3.0.0 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 255,255,255,255,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, 000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000, END TABLE

    В этом режиме сигнал не генерируется, а идет ожидание данных с компьютера в формате
    #001:127 0x0D 0x0A
    Где # - признак начала, затем номер позиции - 3 цифры от 000 до 255, затем двоеточие - разделитель
    затем значение амплитуды 3 цифры от 000 до 255, затем коды конца строки и перевода каретки.
    Можно передавать сколько угодно данных пока не выйти из режима нажатием.
    Подключение только через USB-TTL переходник, TXD соединяется с клеммой SYN OUT после входа в режим загрузки.
    Подключение
    GND - GND
    TXD - SYN OUT

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

    Цифровая часть генератора

    Модуль PWM , общая информация.

    Генератор обеспечивает сигналы для всех типовых схем преобразователей в диапазоне частот от 50Гц до 320кГц.
    Типовые схемы преобразователей (упрощенные) и их подключение.

    Типовые временные диаграммы.

    Эта диаграмма для полумостового преобразователя.
    В обратноходовом отсутствует сигнал PWM1 и заполнение (FILL) может достигать 100% от периода.
    Для гарантированного отсутствия сквозных токов генератор формирует регулируемое время задержки от 0 до 7,937 микросекунды с шагом 62,2 nS для высокочастотного модуля и 1/200 периода для низкочастотного.
    Заполнение регулируется от 0 до 100% с шагом 1%.

    Предусмотрено два основных режима работы - стандартный и авто.
    В стандартном режиме сигнал с датчика тока R поступает на вход Сх и если он превышает 200mV то Модуль PWM отключится (выходной сигнал =0 на PWM и PWM1) до момента прекращения перегрузки. Если защита от перегрузки не нужна, вход Сх оставить не подключенным или соединить с GND для устранения наводок..

    В автоматическом режиме используется датчик выходного напряжения и через оптопару подается на вход Сх. Питание оптопары можно взять с аналоговой земли (если установлено нулевое смещение в аналоговом генераторе).
    При росте выходного напряжения оптопара открывается и напряжение на входе Сх растет. Генератор автоматически уменьшает заполнение вплоть до нуля. Чувствительность входа для полного выключения порядка 1 вольта.
    Для предотвращения перегрузки заполнение не может превысить установленного значения для основного режима. Таким образом если установить FILL = 50% и режим Авто то заполнение будет автоматически регулироваться в предела 0-50%

    Если обратная связь не требуется, вход Сх оставить не подключенным или соединить с GND для устранения наводок.
    Для высокочастотного преобразователя вместо параметра FILL выступает параметр Delay.

    К выходу генератора напрямую можно подключать только транзисторы в управлением по логическому уровню и небольшой емкостью затвора. На выходах уже присутствуют резисторы 100 Ом.
    Во всех остальных случаях требуется применение драйверов. Также они нужны для полумостовой схемы сетевого преобразователя, как в компьютерном блоке питания.
    Выходное напряжение выходов PWM "0" - 0V "1" - 3V
    Входное сопротивление входа Сх - 10 кОм.

    Модуль PWM LF HB, LF - низкая частота, Half Bridge - полумост

    Частоты - 50, 60 и 400 Гц.

    Заполнение 0-100%
    Гарантированный защитный интервал 1/200 периода.

    Типовая осциллограмма

    Регулируемые параметры
    Частота
    Заполнение
    Режим

    Иллюстрации отображения на индикаторе



    Переключение в ручной, автоматический, заполнение в автоматическом





    Основное применение - инверторы промышленной частоты.

    Модуль PWM LF FL, LF - низкая частота, FL - flyback – обратноходовый

    Диапазон частот 50 Гц - 4800 Гц с переменным шагом
    Режим работы - стандартный и авто.
    Заполнение 0-100%
    Гарантированный защитный интервал 1/100 периода.

    Типовая осциллограмма

    Сигнал генерируется на выходе PWM и дублируется на аналоговом выходе с возможностью регулировки амплитуды и смещения. Регулируемые параметры
    Частота
    Заполнение
    Режим
    Амплитуда
    Смещение

    Иллюстрации отображения на индикаторе

    Выбор режима, частоты, заполнения



    Переключение в ручной, автоматический, установка амплитуды



    Установка смещения, режим автоматической работы


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

    Модуль PWM HF HB, HF - высокая частота, Half Bridge - полумост

    Диапазон частот 3906Гц - 250кГц
    Режим работы - стандартный и авто.
    Защитный интервал (DELAY TIME) 250 nS - 7397 nS c шагом 62,5 nS в автоматическом режиме
    Защитный интервал (DELAY TIME) 0 - 7397 nS c шагом 62,5 nS в стандартном режиме
    Уменьшение мощности на выходе при обратной связи производится путем увеличения защитного интервала. На частотах 60 кГц и выше обеспечивается 100% шим регулирование, на более низких ШИМ заполнение не уменьшается до нуля.

    Типовая осциллограмма

    Регулируемые параметры
    Частота
    Время защитного интервала
    Режим

    Иллюстрации отображения на индикаторе

    Выбор режима, частоты, времени

    Стандартный, автоматический. Добавляется буква А.

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

    Модуль PWM HF FL, HF - высокая частота, FL - flyback – обратноходовый

    Диапазон частот 5 кГц - 320 кГц с переменным шагом
    Режим работы - стандартный и авто.
    Заполнение 0-100%
    Регулируемый защитный интервал (DELAY TIME) 0 - 7397 nS c шагом 62,5 nS

    Типовая осциллограмма

    Сигнал генерируется на выходе PWM. Дополнительно генерируется сигнал на PWM1. Высокий уровень во время выключенного PWM, с защитным интервалом, например для управления синхронным выпрямителем. Регулируемые параметры
    Частота
    Заполнение
    Время защитного интервала
    Режим

    Иллюстрации отображения на индикаторе

    Стандартный режим, автоматический режим

    Установка частоты, заполнения

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

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

    DDS генератор сигналов "OSKAR-DDS"
    Калибровка, настройка.

    Правильно собранный генератор из исправных деталей необходимой точности не нуждается в настройке.
    Что следует проверить
    Линейность работы ЦАП на матрице R-2R.
    Для этого запустить генератор пилообразного напряжения и проверить линейность наклонного участка. Если видна большая нелинейность то следует применить резисторы R30-R45 более высокого класса точности или подобрать. Для 8-битного ЦАП требуемая точность 0,5%. Но реально подобрать из вдвое большего количества обычных, 5%.
    Также проверить точность измерения резисторов и конденсаторов. Если не в допуске - подобрать R28. Или применять 1%. Он одновременно влияет и на измерение резисторов, и на измерение конденсаторов. Других настраиваемых элементов нет. Точность остальных резисторов и конденсаторов,кроме блокировочных по питанию и переходных достаточна 5%.
    Еще замечание, как оказалось 74HC4066 не все одинаково хороши, с микросхемами некоторых фирм наблюдается завал на ВЧ участке. Я стараюсь применять ST.
    Теперь осталось только одно, установить в корпус,по желанию. У меня прижилось в половинке корпуса Z-19 с литиевым аккумулятором и пружинными клеммами.

    DDS генератор сигналов "OSKAR-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 БП от компьютера, где уже присутствуют все необходимые напряжения.

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

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


    Что касается списка необходимых радиоэлементов для БП:
    • 3 линейных регулятора - LM7805, LM7812 и LM7912.
    • Диодный мост (B1).
    • 5 электролитических конденсаторов - C1, C7 (2х2000 мкФ) и C3, C5, C9 (3х100 мкФ).
    • 3 конденсатор (C4, C6, C10) - 0.1 мкФ.
    • Трансформатор (TR1) - 220В - 2x15В.
    • Плавкий предохранитель (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 2x16.
    • Кварц (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? "\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, в соответствующих местах в памяти:

    В статье использованы материалы канала Ютуб Паяльник TV. В практике радиолюбителя бывают ситуации, когда необходим генератор частот. Так, например, при настройке усилителя низких частот и при конструировании импульсных источников питания. В различных интернет-магазинах можно приобрести готовые генераторы или конструкторы. Например, цифровой конструктор, генератор частот синуса, меандра и пилы. Ориентировочная стоимость такого набора от 800 до 1000 рублей. Куплен он в китайском интернет-магазине , идет под наименованием “DDS Function Signal Generator Module DIY “.

    Поставляется такой набор в антистатическом пакетике. Что же у нас внутри? Итак, видим печатную плату, довольно высокого качества. Стеклотекстолит довольно толстый. На печатной плате изображены все номиналы необходимых компонентов. Дальше – пассивные компоненты, резисторы различные, непосредственно сама микросхема ATmega 16. Можно поближе её рассмотреть. Также панелька для неё. И ещё одна микросхемка восьминогая LN358. Жидкокристаллический дисплей, 16-разрядный, кажется. Штекеры для подключения выходов, разъёмы. Болтики для крепления дисплея на плату. Также стойки под болтики. Штыревые разъёмы. Ещё панелька. Переменные резисторы; один, уже можно по плате понять, для регулировки амплитуды; второй… разберёмся, для чего. И микропереключатели. Ещё один переменный резистор. К сожалению, в комплекте не хватает, а может, производитель просто решил, что радиолюбитель не нуждается в подробной инструкции…

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

    Собственно говоря, нет подробной инструкции, как собирать, как запускать, как пользоваться, и прочее. Но попробуем сами разобраться. В сборке, я думаю, проблем не будет, так как все номиналы подписаны. Также у конструктора нет никакого наименования, кроме как названия «DDS сигнал генератор», и некоторые маркировки TB207809. Не знаю, что это такое, номер модели или сама маркировка нашего конструктора. Не имею понятия.

    Давайте приступим к пайке компонентов. Начнём с пассивных. С резисторов. Проверим номиналы их. Это резисторы на 10 кОм, это на, видимо, кОм. С большим разбросом… Да, это на 20 кОм. Как видно по плате, у нас очень много одинаковых резисторов. Вот ряд из 10-килоомных, вот ряд из 20. Проблем с пайкой не будет. Начнём с 10-килоомных. Теперь впаяем 20-килоомные резисторы. Для надёжности также можно пропаять все резисторы с лицевой стороны дорожки. Так как все отверстия металлизированы, если вы вдруг где-то что-то не пропаяли, можно здесь эту проблему компенсировать. Паяем оставшиеся резисторы, предварительно проверив номинал. Это резистор на 100 Ом, вот он на плате. Итак, все постоянные резисторы на плате запаяны.

    Теперь впаяем конденсаторы, их у нас не так много. Кажется, всего 4 штучки… Так и есть. Итак, первый конденсатор, маркировка 104 – это 100 нФ. Также два конденсатора, мелких оранжевых, на 22 пФ. Они находятся справа и слева от кварцевого резонатора. Итак, все конденсаторы впаяны.

    Теперь впаяем наш кварц, он на 16 МГц. Стоит между двумя конденсаторами на 22 пФ. Полярность не важно какая. Ставим его ровненько, здесь подогнём ножки. Кварцевый резонатор впаян.

    Теперь впаяем панельки под микросхемы. Их у нас две. Начнём с большой. Одна панелька впаяна. Теперь впаяем маленькую панельку, LM358. Теперь впаяем два штыревых разъёмов на плате. Один из них – разъём «мама», он входит в плату в натяг в отверстие, поэтому его нигде фиксировать не нужно. И второй разъём – «папа», это входной разъём по питанию. Он тоже входит внатяг, фиксировать ничего не нужно.

    Теперь можно впаять наши кнопочки, или микропереключатели, кому как удобнее. Они тоже втыкаются в натяг. Всё переключается, всё прекрасно. Теперь впаяем три переменных резистора. Один у нас с маркировкой 102, это значит 10 и ещё два нолика, то есть 1 кОм. Он встанет вот на это место. Встаёт не совсем в натяг, поэтому придётся его придерживать. И первую пайку сделать немножко неаккуратно. Осталось впаять на этой плате два разъёма выходного сигнала. После пайки они держатся очень-очень крепко. Для того, чтобы микросхема плотно встала в свою панельку, нужно немножко подогнуть конденсаторы на 22 пФ, вот так. Теперь микросхемка встанет точно. Ключ должен располагаться, как по маркировке нарисовано. Теперь вставим вторую микросхемку. Также вставляем в соответствии с маркировкой. Ключ должен располагаться снизу. Вот так. Микросхема вставлена. Теперь можно впаять штыревой разъём на печатную плату дисплея. Предварительно нужно зафиксировать штыревой разъём, и выровнять его, чтобы вставал не криво. Для этого припаяем одну ножку. Так. С этой стороны тоже желательно. Смотрим, как он встал. Встаёт ровненько. Можно впаивать теперь полностью его. Теперь, для того, чтобы дисплей находился на своём месте, необходимо поставить стойки под болтики. Они устанавливаются в два места сюда и, соответственно, вот сюда. Для этого нам понадобится отвёрточка, можно крестовую, можно плоскую. Удобнее всё-таки крестовую. И следующим образом делаем ставим болтик, ставим стоечку, закручиваем. Одна. Вторая. Вот так.

    Теперь устанавливаем наш дисплей точно на свою позицию, то есть совмещаем отверстия, штыревой разъём «мама-папа», и втыкаем его сюда. Таким образом, наш дисплей должен находиться чуть-чуть выше микросхемы. Чуть-чуть выше нашего микроконтроллера, чтобы он не касался его. И вкручиваем два болтика стойки. Вот так. На этом сборку нашего генератора можно считать завершённой. Итак, перед тем, как тестировать наш генератор, настоятельно рекомендую вам промыть плату от остатков флюса, на всякий случай. Для того, чтобы запустить генератор, ему необходимо три напряжения. То есть, это 5 В, +12 В, -12 В, и, соответственно, земляной. Для этого можно собрать блок питания на двух трансформаторах, и сделать двуполярный выход, а по плюсовому плечу сделать стабилизацию на 5 В. Либо можно взять блок питания от компьютера, у него уже имеется выход и 5 В, и 12 В, и -12 В. Для того, чтобы его запустить, достаточно зелёный и чёрный провод закоротить перемычкой. Я воспользуюсь как раз блоком питания от компьютера. Отвёл от него уже необходимые провода. Синий – это -12 В, чёрный – земляной, жёлтый +12 В, и красный +5 В. Втыкаем его в наш штыревой разъём каким-то образом…

    Теперь можно включить наш блок питания в сеть. Итак, видим, что у нас загорелся экран. Ничего больше пока не видим. Но не пугайтесь, это не значит, что вы неправильно собрали. На сайте производителя я всё-таки нашёл необходимые инструкции по регулировке, и для того, чтобы у нас что-то начало показывать, нужно отрегулировать этот маленький переменный резистор 10 кОм. Крутим его в разных направлениях, и смотрим, что на экране появляется. То есть, крутим его вот так, против часовой стрелки, – у нас не происходит ничего. Крутим по часовой стрелке, и видим, что у нас начинают прорисовываться буковки. Ещё сильнее – у нас пиксели все начинают гореть. Отрегулируем так, чтобы был чистый текст. Вот так. Видим текст, надпись синусоиды SIN, 30 Гц, выключено. И для того, чтобы ещё лучше видеть, снимем защитную плёночку. Вот так. Теперь видим, что наш генератор окончательно заработал.

    Тест режимов работы генератора после сборки.

    Смотрим, какие у него есть режимы работы. Щёлкаем вниз, кнопочка DOWN. Здесь надпись SQUARE, это значит «прямоугольник». TRIANGLE, это значит «треугольник». SAWTOOTH, это значит «пила». REW SAWTOOTH, это «обратная пила». ECG, это один из видов сигнала тоже. И шаг частоты. А также есть шум, и высокочастотный сигнал. Влево-вправо мы меняем частоту нашу. Если зажать, он начнёт быстро менять. Кнопочкой «START» мы запускаем его. Кнопочкой «RESET» мы сбрасываем наши настройки. Можем изменять шаг частоты от 10 Гц… от 1 Гц, дальше 100, дальше 1000, дальше 10 000. То есть, допустим, выберем шаг 1 Гц. Выберем синусоиду. И можем менять по одному герцу сигнал. Не всегда будет удобно, это удобно только на низких частотах. Выберем, допустим, шаг 1000, выберем синусоиду, и посмотрим, какая максимальная. Итак, видим, что максимальная генерируемая частота обычным DDS выходом, это 65535 Гц на всех видах сигналов. То есть, смотрим, на прямоугольнике то же самое, прибавить не можем. Это закономерно, так на всех частотах. А минимальная частота, соответственно… Давайте посмотрим. Видим, от нуля. От нуля, и далее пошло, 1, 2, 3, 4, 5, 6, 7… И так далее. Ну что ж. Наш генератор заработал.

    Забыл сказать, что включение можете производить с любым положением резисторов переменных, это никак не отразится. Кроме, соответственно, этого, а этот вы подрегулируете когда включите. Теперь перейдём к проверке непосредственно качества сигнала нашего. Для тестов мне понадобится ноутбук с осциллографом USB, и осциллографический пробник вот такой, чтобы подключать его к осциллографу и генератору одновременно. Подключим сперва к DDS выходу, то есть, к выходу с низкочастотным сигналом. Поставим частому синуса от 1 Гц, и попробуем включить. Пока ничего… А ничего, потому что мы не подключили осциллограф. Видим, что у нас что-то появилось. Изменим развёртку осциллографа на, допустим, 200 мс. Вот. Видим синусоиду, низкочастотную очень. Частота по осциллографу 0, 95 Гц. Для хороших тестов прибавим немножко частоту. Допустим, 20 Гц. Теперь изменим развёртку снова на 10 мс. Видим очень чистую синусоиду частотой 19, 9 Гц. Попробуем поменять амплитуду сигнала. Касаться до платы лучше не нужно с обратной стороны, происходят такие нехорошие помехи. Поэтому касаться не будем. Как видим, амплитуда очень хорошо регулируется у нас вплоть от нуля и до… Амплитуда сигнала 18, 8, то есть, от нижнего пика до верхнего пика 18, 8 В. Соответственно, от нуля и до верхнего пика у нас получается чуть меньше 10 В. Для чего же нам нужен второй резистор переменный? Посмотрим. Синусоида поползла, скажем так, вверх. А теперь поползла вниз. Так вот, для чего же он нужен? Этот резистор у нас изменяет смещение сигнала. То есть, если нам нужна синусоида от нуля до какого-то значения напряжения, мы просто перетаскиваем её вверх, уменьшаем амплитуду сигнала, и вот у нас синусоида от нуля до 10 В. А если нам нужна синусоида переменная, то есть, от напряжения питания до минус напряжения питания, мы ползунок вращаем в другую сторону, потенциометр. Вот так вот. Меняем значение амплитуды у напряжения. И как видим, у нас синусоида от -9 до +9 В. То же самое со всеми остальными. Выберем, допустим, прямоугольник. Видим прямоугольник переменный, то есть, он также от минус напряжения питания до плюс, от -10 до +10 В. Изменяя ползунок, изменяя его положение, мы меняем нижнюю составляющую нашего сигнала. То есть, сейчас у нас прямоугольник чисто импульсный, от нуля до напряжения питания. Или же наоборот, от нуля до минус напряжения питания. Синхронизацию нужно поставить… Давайте прибавим немножко частоты, чтобы у нас быстрее всё шло. То есть, выберем сейчас шаг, FREQUENCU STEP, 100 Гц, допустим. Вот так. Так будет замечательно, 500 Гц. Включаем, видим 500 Гц прямоугольник, изменим развёртку. Фронт спад довольно пологий почему-то здесь, на 500 Гц. Посмотрим, что будет происходить на дальнейших частотах, поэтому пока не будем задаваться… Ставим развёртку пока 200… Нет, 1 мс. Выставим переменное положение, как-то так… Вот у нас прямоугольник, меняется у нас амплитуда. Выберем теперь дальше что у нас идёт… Треугольник. Смотрим треугольник то же самое, амплитуда спокойно у нас меняется, без всяких проблем. То же самое меняется и положение его относительно нуля. Вот можем видеть. Выставим обратно теперь. Далее у нас идёт пила. Смотрим на пилу. То же самое, всё прекрасно меняется, и туда, и сюда. И амплитудка также у неё меняется. Всё прекрасно. Хороший качественный сигнал. Дальше идёт обратная пила. Так же, амплитуда, положение относительно нуля. Дальше идёт ECG сигнал, такой он вид имеет. И также у него меняется положение относительно нуля, и амплитуда. Последний у нас идёт шум. У шума также у нас меняется положение относительно нуля, и также меняется амплитуда. Это мы проверяли низкие частоты. Теперь шаг изменим, пускай 10 000 будет. Поставим самую высокую частоту, практически самую высокую. Запускаем. Ух ты, что это? Очень печально, на самом деле. Прямоугольника здесь соответственно никакого нет. Хорошо, поставим частому в два раза меньшую. SQUARE… Пускай будет 25 кГц. должен быть прямоугольник, но у нас почему-то треугольник здесь. Почему-то у нас здесь треугольник. Интересно… А если менять амплитуду? Теперь у нас какая-то двухполупериодная выпрямленная синусоида какая-то получается. Прямоугольника здесь также нет. Хорошо… Ещё уменьшим частоту. Допустим, до 15 кГц. Вот уже хотя бы внешний вид какой-то есть. Вот так вот. Да, не совсем радужно всё, как я думал. Какие-то у нас полки дед-тайма появляются, эти вот. Откуда они – неизвестно. Ну что ж. До 5 кГц, в принципе, ещё юзабельный наш генератор, а после, судя по всему, уже видим, траектория у нас очень пологая. Я собирал генератор на обыкновенной логике, и она вплоть до 0 кГц выдавала стабильный прямоугольник, в отличие от этого. Посмотрим, как пила себя ведёт на таких же частотах… Не пила, а треугольник. С треугольником у нас проблем особо нет, то же самое, всё регулируется. Всё хорошо. А, допустим, пила? Спад очень пологий стал, нерезкий. Характеристики сильно меняются. И то же самое у обратной пилы. ECG, тут тоже непонятное что-то. Какие-то пирамиды Хеопса. И шум… Какой-то набор гармоник из прямоугольников. Тоже, судя по всему, уже плохо используемый… Ну что можно сказать? До 5 кГц ещё генератор справляется со своей задачей почти хорошо. То есть, на низких частотах до 500 Гц всё прекрасно, после начинаются уже какие-то уходы параметров, более пологие траектории. И от 5 кГц и выше очень сильное изменение характеристик, и на самой высокой частоте 65 кГц происходит какая-то ерунда, если откровенно. Совершенно невозможно использовать такой синус и остальные виды сигнала. Ну что ж, нужно посмотреть, что у нас с высокочастотным выходом. Переключаемся на HIGH-SPEED OUT. Здесь выбираем HIGH-SPEED. И посмотрим. Развёртку сразу поменяем до 100 нс. И посмотрим, что у нас получится. Видите, регулировка здесь уже… Положением уровней ничего не меняется. Соответственно, это уже совсем другой выход. Это выход непосредственно с микросхемы. Непосредственно с микроконтроллера. Видим здесь прямоугольник, довольно-таки хороший причём. То есть, то, что было на 65 кГц, невозможно даже сравнить с этим. Здесь уже очень качественный такой мегагерцовый прямоуголиничек. Чуть-чуть похуже у меня как раз выдавал сигнал на логике. Единственное что, амплитуда здесь, смотрю, не меняется. Сигнал стабильный будет амплитудой 5 В. Теперь посмотрим, что же будет, когда мы увеличим частоту, то есть поставим, допустим, 2 МГц. Включаем. Прямоугольник почти хороший. Амплитуда также не поменялась, 5 В осталась. Смотрим дальше. 4 МГц. На 4 МГц уже прямоугольник больше походит на синус; хотя у него осталась небольшая постоянная составляющая, но уже немножко не то. Очень пологий фронт и спад получаются. И амплитуда, кстати, тоже не поменялась, 5 В. И смотрим на 8 МГц. Амплитуда поменялась, 4, 5 В, и здесь у нас уже не прямоугольник, а явный синус. Увеличивая развёртку, видим уже явно здесь что-то похожее на синус. В розетке как раз такой синус, только 50 Гц. Такие же у него кривые характеристики. Не знаю, в какой аппаратуре можно использовать такой синус. Ну что ж, 1 и 2 МГц вполне юзабельные. Выключаем.

    Выводы.

    Что можно сказать в целом? В целом, наборчик неплохой. Процентов на 50 оправдал ожидания. Но, конечно, сильное изменение характеристик от 5 кГц – очень плохо. Не ожидал я, что будет такой плохой сигнал выдавать. Но до 5 кГц вполне можно использовать. Допустим, для тестов усилителей низкой частоты, звуковой частоты, вполне можно использовать этот набор. На 40 кГц, то есть, это частоты работы импульсных преобразователей, где-то от 25 и до 100 кГц, здесь уже ловить нечего, тут уже никакой хороший сигнал не получишь. На той же самой TL494 ШИМ контроллере сигнал получается в разы лучше. Также хочется дополнить, что производитель всё-таки сделал описание своего набора на сайте, который будет размещён в описании к видео. Здесь есть расположение компонентов всех, настройка переменного резистора для нормальной работы дисплея, шаги частот, принципиальная работа, принципиальная схема для нашего генератора, и также сама принципиальная схема.