RSS

Arduino DDS — синтезатор частоты на базе AD9851 под управлением Arduino.

19 Сен
Arduino DDS — синтезатор частоты на базе AD9851 под управлением Arduino.

Это мой вариант широко известного синтезатора частоты на базе китайской
платы на микросхеме AD9851 под управлением Arduino UNO.
Синтезатор частоты обладает несколькими дополнительными функциями, вроде генератора качающейся частоты и работы в качестве гетеродина (с вычитанием промежуточной частоты). Подробно об этом под катом.

view1


примерная схема платы DDS такова: (представлена для варианта на AD9850)
ad9850-module
В моём варианте устройства предусмотрены 3 режима работы (переключение тумблером на 3 положения):

1. Режим генератора.
В этом режиме синтезатор работает как генератор синусоидального сигнала от 5Гц до 60МГц (микросхема AD9851 позволяет синтезировать частоты до 70 мгц, но, учитывая снижение при частотах выше 50 МГц амплитуды сигнала и его качества, я ограничил диапазон). Шаг изменения можно последовательно менять кнопкой энкодера от 1 ГЦ до 1 МГц (1Гц, 10Гц, 100Гц, 1КГц, 10КГц, 100КГц, 1МГц). Так же при нажатии на дополнительную кнопку в режиме генератора происходит переключение к величине шага 1КГц из любой позиции.

2. Режим работы в качестве гетеродина
В этом режиме на дисплей выводится частота с учётом ПЧ (Fвых = Fдисп + Fпч).
Нужные значения ПЧ заносятся в программу перед заливкой её в Arduino. Выбор ПЧ
последовательно осуществляется дополнительной кнопкой.

3. Режим качания частоты
В этом режиме происходит качание частоты начиная от частоты на дисплее и вверх до достижения выбранного предела. Ширина качания в этом режиме выбирается нажатием на дополнительную кнопку.

В данной программе установлены следующие величины ширины качания:
1КГц — шаг 1Гц
5КГц — шаг 1Гц
10КГц — шаг 2Гц
50КГц — шаг 5Гц
100КГц — шаг 10Гц

При необходимости величины ширины и шага можно настроить самостоятельно в программе перед заливкой её в Arduino.

Схема соединений следующая:

ardu_dds_dig

Китайская плата обеспечивает размах выходного напряжения порядка 0.8-1.0 Vp-p.
Я решил добавить в своё устройство выходные усилители.
Первый — на операционном усилителе TL082C.

ARDU_DDS_LF.JPG

Диапазон частот этого усилителя 5Гц-100КГц. Максимальный неискажённый сигнал в диапазоне частот при напряжении питания 12V составил 8Vp-p. Входным потенциометром я выставил уровень входного сигнала для получения на выходе 4Vp-p. Конденсатор С4 служит для компенсации возможного снижения коэффициента усиления на ВЧ (мне не понадобился).

Второй усилитель предназначен для усиления в диапазоне 10КГц — 60МГц. (Реально коэффициент усиления линеен от 5 КГц)

ardu_dds_hf

Конденсатор С3 (необязателен) служит для компенсации снижения амплитуды сигнала выше 30 Мгц. Регулировкой  потенциометра R2 добиваются напряжения на эммитере VT2 равного половине напряжения питания. (Получается порядка 180-200 ом, можно попробовать запаять простой резистор).
Кроме того на схеме не обозначено, что питание на усилитель идёт через RC цепочку R=27Ом, С=0.1мкф.
Входным потенциометром я так же выставил уровень выходного сигнала 4Vp-p.

Кроме того я добавил переключатель, включающий между DDS и усилителями аттенюатор (резистор 20к) дающий ослабление порядка -20ДБ.

Печатная плата усилителей (двухсторонняя):

amp_plate

Фото платы усилителей:

amp_pic

Главная плата:

main

Схемы питания не отображены на принципиальных схемах. Лишь замечу, что использованный трансформатор выдаёт по вторичке 7V — использовано для питания Arduino и получения 5V стаб. для платы DDS и LCD, и 14V — получено 12V стаб. для питания выходных усилителей. Стабилизаторы простейшие на 7805 и 7812. По плате «разбросаны» конденсаторы по питанию 0.1 мкф. В общем всё стандартно — даже лень рисовать.

topview

Скачать печатные платы для Sprint Layout 6.

Программа для Arduino UNO лежит по этой ссылке. Тут же и библиотека для энкодера. Возможно программа несовершенна, но работоспособна и снабжена большим количеством комментариев. Так что флаг в руки — если кто интересуется, разбирайтесь переделывайте, совершенствуйте.

Вид сзади:

back
Примеры устройства в работе:

mode_osc

Режим генератора

mode_sweep

Генератор качающейся частоты (sweep)

mode_vco

Режим гетеродина (отображение ПЧ = 455кГц)

sweep

Гифка — демо в режиме ГКЧ. Начальная частота 1 КГц, ширина качания — 5КГц

ССЫЛКИ:
Печатные платы для Sprint Layout 6.
Библиотека «rotary» для обработки энкодера под Arduino.
Программа синтезатора частоты под Arduino.

Сохранить

Реклама
 
53 комментария

Опубликовал на 19.09.2016 в Электроника

 

Метки: , , ,

53 responses to “Arduino DDS — синтезатор частоты на базе AD9851 под управлением Arduino.

  1. streametch

    15.01.2018 at 20:23

    Да, заработало, из макета спаял на плате и всё заработало 🙂 Спасибо!

     
  2. Ant Sapelov

    17.01.2018 at 06:32

    Набрал в поиске «ардуино генератор синуса» куча народа паяет R-2R ЦАП на макетной плате, считает таблицы синусов. Сначала подумал, что в дурдом попал… Спасибо за вменяемый подход к проблеме, 9851 заказал, будем пробовать.

     
  3. Igor

    17.01.2018 at 17:59

    Всё заработало без проблем. Автору огромное спасибо!!!

     

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

 
%d такие блоггеры, как: