на главную
Карта сайта
English version
Вы читаете:

Лабораторный генератор сигналов

Разное
4 года назад

Лабораторный генератор сигналов на DDS под управлением Arduino

12

Прототипом этого генератора стала найденная автором в Интернете конструкция [1]. Она дополнена аттенюатором, которым управляет микроконтроллер, буферный усилитель собран на микросхеме другого типа, внесены изменения в программу микроконтроллера модуля Arduino Nano.

Микросхемы прямого цифрового синтеза частоты (DDS) обычно применяют в задающих генераторах и перестраиваемых гетеродинах радиостанций [2, 3], лабораторных генераторах сигналов [4, 5]. Микроконтроллерное управление ими легко позволяет реализовать генератор качающейся частоты [6]. В последнее время сложилась ситуация, когда приобретение отдельно микросхемы DDS и микроконтроллера дороже, чем готовых содержащих их модулей. В предлагаемом лабораторном генераторе синусоидальных сигналов применены модуль синтезатора частоты HC-SR08 на микросхеме DDS AD9851 и микроконтрол-лерный модуль Arduino Nano.

Генератор имеет три режима работы:

1 - генерация синусоидального сигнала частотой от 1 Гц до 70 МГц, устанавливаемой с минимальным шагом 1 Гц;

2 - генерация сигнала качающейся частоты. Качание происходит от установленного на ЖКИ значения в сторону повышения частоты. Полосу и шаг качания можно устанавливать произвольно во всём диапазоне генерируемых частот, но шаг должен быть меньше полосы. Число шагов в одном цикле качания равно ширине полосы качания, делённой на длину шага, плюс единица. Период повторения циклов равен этому числу, умноженному на 660 мкс. В начале каждого цикла качания для синхронизации развёртки осциллографа генерируется импульс низкого логического уровня длительностью 11 мкс;

3 - генерация сигнала, частота которого отличается от заданной на одно из следующих фиксированных значений: 450 кГц, 455 кГц, 460 кГц, 465 кГц, 1,6 МГц, 1,8 МГц, 5,5 МГц, 10,7 МГц и 21,4 МГц. Выходная частота равна сумме установленного на индикаторе значения и выбранного смещения.

Аттенюатор ослабляет выходной сигнал на 0-110 дБ ступенями по 10 дБ. Экспериментально снятые графики зависимости амплитуды выходного напряжения от частоты при различном ослаблении аттенюатора показаны на рис. 1. Генератор, внутреннее сопротивление которого 50 Ом, был нагружен только входным сопротивлением осциллографа (около 1 МОм).

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

Рис. 1. Экспериментально снятые графики зависимости амплитуды выходного напряжения от частоты при различном ослаблении аттенюатора

 

Принципиальная схема генератора изображена на рис. 2. Он состоит из готовых модулей Arduino Nanо (А1), HC-SR08 (A2) на базе микросхемы DDS AD9851 и самодельных плат питания и органов управления, аттенюатора (2 шт.), буферного усилителя. Позиционные обозначения элементов, находящихся на самодельных платах, снабжены цифровыми префиксами, равными условному номеру платы. Информация о работе генератора выводится на ЖКИ HG1.

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

Рис. 2. Принципиальная схема генератора

 

Внешнее напряжение питания генератора (14,5...20 В) подают на разъём 3XS1 от внешнего источника. Потребляемый от него ток не превышает 150 мА. Выключатель питания 3SA1 расположен на передней панели корпуса генератора. На плате питания и органов управления установлены три интегральных стабилизатора: на 12 В (3DA1), на 10 В (3DA3) и на 5 В (3DA2). Напряжение 10 В на выходе стабилизатора 3DA3 точно устанавливают подборкой резисторов 3R7 и 3R8. Конденсаторы 3C1-3C9 и 4C1-4C4 фильтруют питающие напряжения.

Модуль A1 питается напряжением 12 В от стабилизатора 3DA1, при этом действует установленный в модуле стабилизатор напряжения 5 В, которое использовано для питания ЖКИ HG1. Напряжением 12 В питают реле, установленные на платах аттенюаторов. Модуль A2 получает питание от стабилизатора 3DA2, что позволило избавиться от помех, создаваемых микроконтроллером модуля A1. ОУ 4DA1 в буферном усилителе питается напряжением 10 В от стабилизатора 3DA3.

Всеми узлами генератора управляет по загруженной в него программе микроконтроллер ATmega168P или ATmega328P, установленный в модуле Arduino Nano. Применён модуль с индексом R3, в котором преобразователь интерфейса USB-COM выполнен на микросхеме CH340G.

ЖКИ HG1 и меет две строки по 16 символов и встроенный контроллер, совместимый с HD44780. Плата ЖКИ была подвергнута доработке. Имевшийся на ней резистор R8 (рис. 3) сопротивлением 100 Ом, ограничивающий ток подсветки экрана, был заменён резистором сопротивлением 220 Ом. Это понизило ток, потребляемый подсветкой, с более чем 20 мА до 10 мА. При этом яркость подсветки практически не уменьшилась. На этой же плате были смонтированы после подборки резисторы R1 и R2, задающие контрастность изображения на экране индикатора.

Плата ЖКИ

Рис. 3. Плата ЖКИ

 

Вращением ручки энкодера3S1 увеличивают или уменьшают генерируемую частоту шагами, длину которых можно изменять нажатиями на эту ручку. Нажатиями на кнопку 3SB1 изменяют коэффициент ослабления аттенюатора, а с помощью кнопки 3SB2 сменяют режимы работы генератора. В режиме 1 нажатием на кнопку 3SB3 устанавливают шаг перестройки равным 1 кГц. Нажатиями на эту же кнопку в режиме 2 циклически выбирают частоту начала сканирования, ширину полосы качания и длину шага перестройки частоты. В режиме 3 этой кнопкой задают смещение генерируемой часто-ты относительно показанной на индикаторе. Все входы модуля A1, к которым подключены контакты кнопок и энкоде-ра, соединены с цепью питания +5 В через резисторы 3R1-3R6 для поддержания на них высокого логического уровня при разомкнутых контактах.

Детали стабилизаторов напряжения питания и органов управления размещены на односторонней печатной плате, представленной на рис. 4. Кнопки и энкодер устанавливают на ней со стороны печатных проводников. Энкодер крепят гайкой к корпусу генератора. К нему же без изоляционных прокладок прижимают теплоотводящие фланцы стабилизаторов 3DA1 и 3DA2. Стабилизатор 3DA3 работает без дополнительного теплоотвода. Конденсаторы 3C3 и 3C5 монтируют на плату лишь при необходимости устранить сбои в работе энкодера.

Печатная плата

Рис. 4. Печатная плата

 

Внешний вид модуля HC-SR08 показан на рис. 5. Генерируемый им сигнал снимают с имеющегося в модуле нагрузочного резистора LC-фильтра нижних частот. Провода, идущие от модуля к буферному усилителю, припаяны непосредственно к этому резистору (R5). На рис. 5 он находится у правого среза платы вверху.

Внешний вид модуля HC-SR08

Рис. 5. Внешний вид модуля HC-SR08

 

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

С модуля DDS сигнал поступает на буферный усилитель с коэффициентом усиления 2, собранный на ОУ 4DA1 (OPA642N), через конденсаторы 4C5 и 4C6, не пропускающие его постоянную составляющую. С помощью резисторов 4R1, 4R2 и блокировочных конденсаторов 4C1-4C4 создана искусственная средняя точка питания ОУ. Для устранения постоянной составляющей выходной сигнал ОУ поступает на аттенюатор через конденсаторы 4C7 и 4C8. Резистором 4R6 задано выходное сопротивление генератора.

Буферный усилитель собран на односторонней печатной плате, изображённой на рис. 6. Она рассчитана на установку компонентов для поверхностного монтажа. Резисторы и конденсаторы - типоразмера 1206, допускается установка резисторов типоразмера 0805.

Печатная плата буферного усилителя

Рис. 6. Печатная плата буферного усилителя

 

Усиленный сигнал поступает через аттенюаторы на выходной разъём XW2 (СР50-73). Для управления коэффициентом ослабления в аттенюаторах использованы реле HLS-4098-DC12V с сопротивлением обмотки 720 Ом. Транзисторы 1VT1, 1VT2, 2VT1, 2VT2 управляют этими реле по командам модуля A1. Обмотки реле для подавления выбросов напряжения самоиндукции зашунтированы диодами 1VD1, 1VD2, 2VD1, 2VD2.

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

Платы двух аттенюаторов

Рис. 7. Платы двух аттенюаторов

 

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

На практике почти невозможно найти резистор, сопротивление которого в точности равно написанному на нём номиналу. Поэтому необходимо, измерив реальное сопротивление имеющихся в наличии резисторов, выбрать тот, сопротивление которого близко к требуемому Rрасч, но больше его. Затем, подставив сопротивление выбранного резистора R1 в формулу   R2 = (Rрасч - R1 )/Rрасч · Rнайти сопротивление резистора R2, который следует подключить параллельно первому. В таблице представлены некоторые возможные комбинации резисторов для различных ступеней аттенюаторов.

Таблица

Ослабление, ДБ

Расчётное сопротивление, Ом

Комбинации резисторов, Ом

Отклонение от расчётного, %

10

96,25

150 и 270

0,19

160 и 240

-0,26

71,15

91 и 330

0,25

110 и 200

-0,26

20

61,11

75 и 330

0,00

82 и 240

0,01

247,50

270 и 3000

0,08

390 и 680

0,14

40

51,01

56 и 390

-4,00

подбор из 51

 

2499,75

3000 и 15000

0,01

3600 и 8200

0,08

 

Генератор собран в алюминиевом корпусе фирмы Gainta BX23B-1 (120х х100х31 мм) с крышкой BX23T-1 (120х100х4 мм). Могут быть использованы более современные корпусы той же фирмы BO23 или BS23, укомплектованные крышками. Внутри корпус разделён на отсеки перегородкой из фольгированного стеклотекстолита, изображённой на рис. 8. Она отделяет платы аттенюаторов от модуля DDS с буферным усилителем и от платы питания и управления. Расположение основных узлов внутри корпуса представлено на рис. 9. Разъёмы XW1 и XW2 - СР50-73. Вид прибора со стороны лицевой панели - на рис. 10.

Вид корпуса

Рис. 8. Вид корпуса

 

Расположение основных узлов внутри корпуса

Рис.9. Расположение основных узлов внутри корпуса

 

Вид прибора со стороны лицевой панели

Рис. 10. Вид прибора со стороны лицевой панели

 

Между платами аттенюатора для исключения замыканий проложена изолирующая прокладка. Плата буферного усилителя с той же целью обмотана ПВХ изоляционной лентой. Платы аттенюаторов, буферного усилителя и модуля DDS в корпусе не закреплены. ЖКИ зафиксирован между дном корпуса и его крышкой четырьмя винтами длиной 30 мм.

Модуль Arduino Nano закреплён поверх платы ЖКИ на изолирующей прокладке из пластика от коробки для CD.

Программа микроконтроллера модуля Arduino Nano и библиотека к ней имеются здесь.

Литература

1. Arduino DDS - синтезатор частоты на базе AD9851 под управлением Arduino. - URL: https://frompinskto.wordpress.com/ 2016/09/19/arduino-dds-синтезатор-частоты-на-базе-ad9851-под-упр/ (14.08.17).

2. Тарасов А. Синтезатор частоты для КВ трансивера. - Радио, 2004, № 5, с. 62-64; 2004, № 6, с. 64-67.

3. Денисов В., Попов В. Синтезатор частот для любительской коротковолновой радиостанции. - Радио, 2005, № 3, с. 68-71.

4. Хлюпин Н. Лабораторный генератор сигналов на DDS. - Радио, 2009, № 8, с. 15- 17.

5. Кулешов С. Генератор на PIC16F84A и AD9850. - Радио, 2004, № 3, с. 27-29.

6. Каминский С. ГКЧ из синтезатора на основе DDS AD9835. - Радио, 2012, № 4, с. 19, 20.

Автор: С. Алтухов, г. Вольск Саратовской обл.

Мнения читателей
  • Mikhail/30.06.2020 - 21:23

    Собрал схему предложенного генератора, получил удовольствие, работает, есть практическое применение. Спасибо!

  • Дмитрий/06.03.2020 - 21:26

    И кстати AD9850 с этой прошивкой не работает. Даже после подправки частоты в скече.

  • Дмитрий/06.03.2020 - 21:24

    На сайте прошивка и библиотека рабочие. Прошил недавно. Все ок.

  • Сергей/04.03.2020 - 10:50

    Где можно скачать рабочую прошивку? Кто собрал-поделитесь, пожалуйста.

  • Дмитрий/16.02.2020 - 13:29

    Не могу прошить Arduino Nano. Программа выдает что неверные библиотеки.Где взять верные. Спасибо.

  • Дмитрий/09.01.2020 - 15:24

    На схеме не правильно указаны номиналы резисторов аттюнеаторов, в таблице вроде правильно)

  • Дмитрий/06.01.2020 - 09:36

    Владимир, модуль генератора не использует библиотекНужно всего-лишь заменить макс. частоту в коде: вместо 70000000 прописать 40000000 // конец обработки валкодера if ((rx+rif) >70000000){rx=(70000000-rif);}; // ВЕРХНИЙ VFO LIMIT if (rx 70000000){delta=(70000000-rx);}; // ВЕРХНИЙ лимит качания if (delta delta){sstep=delta;}; // ВЕРХНИЙ лимит шага if (sstep

  • Владимир/21.12.2019 - 12:42

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

  • Дмитрий/10.12.2019 - 21:20

    Что-то прошивка не качается

  • Валерий/09.04.2019 - 10:28

    Вот читаю отзывы и удивляюсь. А как вы дисплей умудрились запустить? В таком виде верхняя строка должна только кубики рисовать. Вывод дисплея R/W по схеме прицеплен к +5в а должен к земле.

Вы можете оставить свой комментарий, мнение или вопрос по приведенному выше материалу:

Поля, обязательные для заполнения

Изготовление печатных плат