Функциональный dds rенератор на плис. Функциональный генератор на микроконтроллере Самодельный генератор сигналов на микроконтроллере

Максимальная частота - 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 кГц.
генераторы Добавить метки

Сегодня на обзоре конструктор генератора 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 кГц.

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

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

  • простое схемотехническое решение, доступные компоненты;
  • односторонняя печатная плата;
  • сетевой источник питания;
  • специализированный выход частоты от 1 МГц до 8 МГц;
  • DDS выход с регулировкой амплитуды и смещения;
  • форма выходного DDS сигнала: синусоида, прямоугольные импульсы, пилообразные импульсы, треугольные импульсы, ЭКГ, шум;
  • для отображения текущих параметров используется двухстрочный ЖК дисплей;
  • пятикнопочная клавиатура;
  • шаг перестройки частоты: 1, 10, 10, 1000, 10000 Гц;
  • восстановление последней конфигурации при включении;
  • регулировка смещения: -5 В … +5 В;
  • регулировка амплитуды: 0 … 10 В;
  • регулировка частоты: 0 … 65534 Гц.

За основу прибора, а точнее алгоритм работы микроконтроллера, была взята разработка DDS генератора Jesper Hansen . Предложенный алгоритм был немного переработан и адаптирован под компилятор WinAVR-GCC

Сигнальный генератор имеет два выхода: выход DDS сигнала и выход высокочастотного сигнала (1 - 8 МГц) прямоугольной формы, который может использоваться для «оживления» микроконтроллеров с неправильными установками Fuse-битов или для других целей.

Высокочастотный сигнал поступает непосредственно с микроконтроллера, с вывода OC1A (PD5). DDS сигнал формируется микроконтроллером с использованием цепочки резисторов R2R (ЦАП), регулировка смещения и амплитуды возможна благодаря использованию низкопотребляющего операционного усилителя LM358N .

Блок-схема DDS генератора

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

Принципиальная схема источника питания изображена на рисунке ниже.

В источнике питания используются стабилизаторы напряжения LM7812 , LM7805 , LM7912 (стабилизатор отрицательного напряжения -12 В).

Внешний вид источника питания для генератора

Возможно использование компьютерного блока питания форм-фактора ATX, для этого необходимо распаять переходник в соответствии со схемой:

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

Для сборки прибора потребуется:

  • микроконтроллер ATmega16;
  • кварцевый резонатор 16 МГц;
  • стандартный двухстрочный ЖК индикатор на базе контроллера HD44780 ;
  • R2R ЦАП выполненный в виде цепочки резисторов;
  • сдвоенный операционный усилитель LM358;
  • два потенциометра;
  • пять кнопок;
  • несколько коннекторов и разъемов.

Рисунок печатной платы

Примененные компоненты, за исключением микроконтроллера и разъемов, в корпусах для поверхностного монтажа (smd).

Прибор смонтированный в корпусе

Тестовый запуск

Загрузки

Принципиальная схема и печатная плата (формат Eagle) -
Проект для симуляции в среде Proteus -

  • Кто пробовал сваять?
  • Смотрите ветку Функцинальный генератор, начиная с 4 поста идет обсуждение этой конструкции, и пользователи QED и куко собрали этот генератор. И в протеусе был проверен - работает.
  • скажите кто-нибудь, пожалуйста, перечень компонентов для блока питания используемые в первом(http://www..html?di=69926) варианте генератора. в частности интересует какой модель трансформатора и выпрямитель использовал автор. или хотя бы полные аналоги. из просьбы ясно, что я в электротехнике не силён, но думаю собрать осилю без углубления в дебри предмета. Просто форс-мажор. С конденсаторами и 3-мя стабилизаторами всё понятно. Собственно вот эта схема прикреплена.
  • Трансформатор любой маломощный с двумя вторичными обмотками с выходным напряжением 15 В (переменка). В частности автор использовал трансформатор TS6/47 (2х15 В/2х0.25 А) Диодный мостик тоже любой маломощный сгодится. На фотке в статье виден и трансформатор и диодный мостик.
  • а подскажите пожалуйста, какая связь должна быть между вторичным выходом трансформатора и выпрямителем, учитывая схему БП автора?:confused: ну имею ввиду, если на выходе трансформатора 15в (вроде нашел вот такой -ТПС-7.2(2х15В)сим.(7.2Вт)15Вх2_7.2Вт_сим.(0.24А)х2 - 160,00руб) , то какой выпрямитель к нему? и на случай, если 12в на выходе трансформатора?
  • Не совсем понял вопрос, честно говоря... Трансформатор указанный вами вроде подходит... Мостик вполне, думаю подойдет к примеру DB106
  • Vadzz, спасибо огромное за подсказку. если DB106 подходит, значит и имеющий аналогичные параметры W08 подойдет. это так? просто, именно его имеется возможность(желание) купить. и ещё не смог разобраться с номиналами конденсаторов на схеме автора, подскажите, пожалуйста. они в все в nF(нанофарад-нФ)?
  • W08 - вполне подойдет. Конденсаторы в схеме блока питания или в схеме самого генератора? Если блок питания - то там все кондеры в микрофарадах (2000 мкф, 100 мкф, 0.1 мкф). В схеме генератора - по-моему только два кондера в обвязке кварца 18 пикофарад.
  • Vadzz, безгранично благодарю. вроде все вопросы сняты. Со схемой самого генератора вроде немного проще(есть файл EAGLE). Буду воплощать в реальность. Если всё будет путём, то попробую выложить печатную плату (формат Eagle) Блока питания.
  • Обязательно должно все получиться у вас... Рисунок печатной платы выкладывайте, кому-то обязательно пригодится...
  • Я спаял и пользуюсь. Честно говоря по ходу возникли несколько проблем: 1) недостаток - невозможна перестройка частоты при включенном генераторе. Т.е. если нужно менять частоту, то сначала выключаем генерацию сигнала, потом перестраиваем частоту, потом снова включаем генерацию сигнала. Это зачастую неудобно, когда нужно следить за реакцией налаживаемого устройства на плавное изменение частоты. Например для управления оборотами шаговика перестраивать частоту нужно только плавно. 2) недостаток - дважды слетал EEPROM. Автор предусмотрел запоминание установленных режимов в EEPROM, но это совсем не обязательно. Уж лучше бы ничего не запоминал и не использовал его совсем. Или в крайнем случае при повреждении EEPROM грузил установки "по умолчанию" из FLASH. Зато был бы надежнее. В целом в остальном работой я доволен. Просьба к тем, кто смыслит в написании программ для AVR исправить эти два недостатка.
  • По поводу перестройки частоты "налету" тут скорее всего нужно использовть DMA, чего в подобных микроконтроллерах нет. Может я ошибаюсь... надо глянуть исходники генератора... Насчет "слетает EEPROM" - интересно конечно причину узнать, но два раза я думаю еще не показатель.
  • Готовые генераторы на ad9850(51) есть здесь: http://radiokit.tiu.ru/product_list/group_802113
  • Готовые генераторы на AD9850 это хорошие девайсы, но другое дело когда собираешь и налаживаешь сам...
  • Разрушение данных в EEPROM приводит к полной неработоспособности генератора. Очень неприятная проблема в самый неподходящий момент. Я обычно внутри корпуса генератора держу запасной запрограммированый контроллер. Но это же не выход из положения. Почему не предусмотреть сохранение только текущих данных, которые не повлияют в целом на работоспособность, если будет разрушение EEPROM? При потере данных из Flash грузим установки по умолчанию. Все остальное, что касается работоспособности программы хранится во Flash. Так надежнее будет работать. ПРЕДЛАГАЮ разместить список ссылок с другими проектами генераторов на AVR.
  • Тут несколько людей собирали этот генератор (с их слов конечно же), они ничего не говорили по этому поводу, есть ли такая проблема у них или нет...
  • Подскажите,в данном генераторе есть возможность менять только частоту или скважность тоже?
  • В характеристика генератора указано, что можно менять частоту, к сожалению возможности менять скованность нет...
  • парни подскажите по поводу RESET джампера -когда его включить и когда снять..... благодарю
  • Нормальное состояние джампера - разомкнут.И это скорее всего не джампер, а имелось ввиду разъем для возможности подключения кнопки, с помощью которой можно будет сбрасывать мк, если вдруг чего...

$15,3

Прежде всего, DDS — Direct Digital Synthesizer или цифровой синтезатор сигналов или электронный прибор, предназначенный для синтеза сигналов произвольной формы и частоты из опорной частоты.

Зачем в хозяйстве радиолюбителя нужен генератор объяснять не буду. Готовые генераторы стоят недешево и весят прилично, поэтому их пересылка тоже дорогая. Поэтому решено было присмотреться к DDS модулям без корпуса и блока питания.

Выбор DDS-модулей на просторах интернет оказался невелик. Из более-менее недорогих и с нормальным набором функций я нашел только 2 вида. Они одинаковые по функционалу, отличаются только расположением органов управления и питанием. Для работы одного из них было нужно три напряжения (+12В, -12В и +5В), второй работает от одного напряжения 7-9В. Это было решающим, проще потом запитать его от готового блока питания и не придется специально городить схему питания.

Из описания на сайте:

Operating voltage: DC7-9V
DDS frequency range: 1HZ-65534Hz.
High-speed frequency (HS) output up to 8MHz;
DDS signal amplitude of the offset amount can be adjusted separately by two potentiometers;
DDS signals: sine wave, square wave, sawtooth, reverse sawtooth, triangle wave, the ECG wave and noise wave.
1602 LCD menu;
Intuitive keyboard.
Section into the value: 1,10,100,1000,10000 Hz;
The power automatically restore the last used configuration.
Offset: 0.5pp-5Vpp
Amplitude amount: 0.5Vpp-14Vpp

Сама плата сделана очень качественно, пайка приличная, флюс смыт.

Так как под руками не нашлось блока питания на 9В с подходящим разъемом подключил блок питания на 5В. Как ни странно, все заработало. Пришлось только чуть подкорректировать контрастность LCD дисплея. Для этого под самим дисплеем имеется подстроечный резистор.

У генератора удобный алфавитно цифровой LCD дисплей 1602 с синей подсветкой и немало кнопок управления и 2 ручки настройки. Пойдем по порядку. Разъем питания 8-9В (как уже выяснили и от 5В работает уверенно). Кнопка включения/выключения питания. Светодиод, сигнализирующий включение.

  • вверх и вниз — выбор формы сигнала (функции);
  • вправо и влево — выбор частоты генерации (шаг задается в меню Freq Step).
  • центральная кнопка — старт/стоп генерации.

Две рукоятки управления:

  • амплтиуда;
  • оффсет 0,5 — 5В.

Сбоку 2 BNC разъема. Один для вывода DDS, второй для высокочастоного сигнала.

Генератор может формировать следующие формы импульсов:

  • ECG = электрокардиограмма (in the OFF state, the «left «and «right» keys to set the output frequency. Middle button start, all of the following waveform set)
  • NOISE = шум.
  • SawTooth = пила.
  • Rev Sawtooth = обратная пила.
  • Triangle = треугольные.
  • Sine=синусоида.
  • Square = прямоугольные.

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

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

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

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

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

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

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

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

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

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

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

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

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



glavpom.ru - Подстанции. Силовая электроника. Экология. Электротехника