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.

Сохранить

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

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

 

Метки: , , ,

62 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

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

     
  4. Igor

    23.01.2018 at 12:49

    Доброго времени суток! При использовании синтезатора в режиме генератора возникла необходимость при включении использовать не значение стартовой частоты прописанное в строке (int_fast32_t rx=1000000; // Стартовая частота VFO), а последнее набранное валкодером. Как можно это реализовать в этом скетче. Спасибо!

     
  5. krepsky

    26.01.2018 at 20:59

    Насчёт сохранения значений попробуйте тут почитать:
    http://robocraft.ru/blog/arduino/82.html
    или тут:
    https://soltau.ru/index.php/arduino/item/378-kak-khranit-dannye-v-arduino
    или к примеру вот тут:
    http://radioprog.ru/post/117

    Это первые три ссылки, которые выдал Google.

     
  6. Igor

    29.01.2018 at 09:07

    Спасибо, что не прошли мимо! Ответ нашёл по ссылке
    http://raxp2.blogspot.com/2015/05/dds-ad9850-hc-sr08-vbs.html . Всё отлично работает. Ещё раз спасибо всех благ и удачи!

     
  7. юрий

    11.02.2018 at 10:51

    собрал всё правильно но частоту выдаёт в полтара раза меньше чем на дисплее либо кварц на dds на 20 мгц либо умножение на 4 может кто даст совет

     
  8. john john

    24.05.2018 at 17:01

    А синхронизацию для входа Х осциллографа где с него брать?

     
  9. Юргент

    27.06.2018 at 21:45

    скажите пожалуйста, что за тип выходных разъемов используется в данном приборе?

     
  10. Аноним

    27.06.2018 at 21:48

    Юргент, BNC

     
  11. Karal Ural

    09.08.2018 at 18:26

    генератор до 150МГц реально разогнать? хотелось повторить проект но потолок в 60МГц меня останавливает 😦

     
  12. krepsky

    10.08.2018 at 16:01

    для этого синтезатора потолок 70 мгц. если надо выше, то как вариант синтезатор на si5351. там можно до 200 мгц. правда не синус, а меандр.

     

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

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

Логотип WordPress.com

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

Google+ photo

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

Фотография Twitter

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

Фотография Facebook

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

Connecting to %s

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