Андрей Смирнов
Время чтения: ~10 мин.
Просмотров: 4

Цифровой генератор от 1Hz до 40 МНz, это просто.

ДомойДля начинающих

IMG_20170710_180645.jpgAD9850 — это микросхема DDS (Ddirect Digital Synthesizer — прямой цифровой синтезатор), которая отличается хорошим быстродействием, ценой и доставаемостью. На ней можно построить неплохой генератор сигналов. В этой статье пойдет речь о модуле который продается на Aliexpress и стоит относительно недорого, а также о том как этот модуль подключить к МК и получить синусоидальный или прямоугольный сигнал. Модуль поставляется в антистатическом пакете.

IMG_20170710_180615.jpg Теперь немного пояснений. Управляется он по параллельной шине, или по SPI. Разница лишь в быстродействии. Команды управления подробно описаны в даташите на AD9850. Суть в том что в команде мы посылаем нужную частоту и микросхема устанавливает ее на выходе.

IMG_20170710_180706.jpg Питание 3.3 Вольта, но работает и от 5-ти Вольт без проблем. Имеет 4 выхода: 2 для синусоидального сигнала смещенных по фазе на 180 Град., и 2 прямоугольных сигнала также смещенных друг относительно друга. Амплитуда синусоидального сигнала 1.5 В, прямоугольного — в зависимости от питания либо 3.3 либо 5В. На модуле есть подстроечный резистор — он служит для установки коэффициента заполнения прямоугольного сигнала.

Верхняя рабочая частота указана 30 МГц. На плате установлен кварц на 120 МГц. То есть рабочая частота этого синтезатора 120 МГц, следовательно, на 30 МГц мы получим всего лишь 120/30=4 точки на период. Можете представить какая будет синусоида построенная по 4 точкам. Принято считать что должно быть порядка 10 точек на период, поэтому следует полагать что верхняя рабочая частота для синуса это 10-12 МГц. Для запуска модуля рекомендую такую схему.

Это самая простая схема, у меня заработала сразу и без проблем. Прошивка и фьюзы МК в конце статьи. Конечно, для полноценного генератора нужен хороший аналоговый выход, с возможностью регулировки выходной амплитуды, и возможностью работы на нагрузку 50 Ом. В качестве выходного операционного усилителя видится применение  LT1210CR. Этот ОУ имеет достаточную мощность и полосу пропускания. Но для его полноценной работы понадобиться двухполярный источник питания на 15В.

СХЕМА ПРОШИВКА И ФЬЮЗЫ

DDS синтезатор на AD9850, привлекает радиолюбителей своей простотой и возможностями.

Данный модуль особенно распространено  используется в конструкциях простых трансиверов, и измерителей АЧХ. Для КВ диапазонов подходит полностью. Конструкций на этом устройстве в интернете огромное количество. В статье  вариант схемы управления энкодером,  с 6-ю кнопками быстрой установки частоты.

Обычно цифровые генераторы частоты, в которых требуемое значение частоты устанавливают с помощью клавиатуры, как правило,  выполнены на микроконтроллере, диапазон генерируемых частот ограничен несколькими мегагерцами, а получение точного значения частоты в широких пределах затруднительно. Описываемый в статье генератор тоже содержит микроконтроллер, но использован он только для управления специализированной микросхемой — синтезатором частоты AD9850 . Применение этой микросхемы позволило расширить диапазон генерируемых частот от 0Hz  до 40 МНz, в пределах которого можно получить любое значение частоты с точностью 1Hz.

Данный генератор выполнен на базе микросхемы AD9850 фирмы Analog Devices, представляющей собой полный DDS(Direct Digital Synthesis) синтезатор частоты с встроенным компаратором. Такие синтезаторы уникальны своей точностью, практически не подвержены температурному дрейфу и старению . Благодаря высоким техническим характеристикам DDS синтезаторы в последнее время вытесняют обычные аналоговые синтезаторы частоты. Их основное преимущество — очень высокое разрешение по частоте и фазе, управление которыми осуществляется в цифровом виде. Цифровой интерфейс позволяет легко реализовать микро­контроллерное управление.

Рис.1

Структурная схема синтезатора AD9850 изображена на рис. 1. Его основа — аккумулятор фазы, формирующий код мгновенной фазы выходного сигнала. Этот код преобразуется в цифровое значение синусоидального сигнала, который с помощью ЦАП превращается в аналоговый и подвергается фильтрации. Компаратор позволяет получить выходной сигнал прямоугольной формы. Его частота fout(в герцах) определяется формулой

         где

Fout— выходная  частота, Hz;

Fin— тактовая частота, Hz;

 ∆ – 32-битное значение кода частоты.

Мак­симальное значение Fout не может превосходить половины тактовой частоты.

Основные технические характеристики AD9850 (при напряжении питания ).

2 выходных сигнала

Частота тактового генератора, МНz:                                               1…125

Максимальный потребляемый ток (при fin=125 МГц), мА                      95

Число разрядов ЦАП                                                                              10

Максимальный выходной ток ЦАП (при Rset=3,9 кОм), мА                    10,24

Максимальная интегральная нелинейность ЦАП, МЗР                           1

Компаратор имеет подстройку, переменным резистором R13.

Напряжение на выходе компаратора, В:

минимальное высокого уровня                                                               4,8

максимальное низкого уровня                                                                 0,4

Для загрузки данных в микросхеме AD9850 предусмотрены параллельный и последовательный интерфейсы.

 В последнем случае данные (слово длиной 40 бит) вводят через ее вход DАТА.

 Каждый бит данных сопровождают импульсом положительной полярности на входе синхронизации W_CLK.

После загрузки управляющего слова по импульсу положительной полярности на входе FU_UD происходит замена параметров генерации новыми..

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

 Управляет синтезатором DD2 микроконтроллер DD1.

рис. 2.

Управление происходит с помощью энкодера Sk1 с кнопкой Кн0, и дополнительных кнопок Кн1Кн6.

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

Кн0* задает шаг установки частоты с помощью энкодера Sk1 (1Hz, 10Hz, 100Hz, 1kHz, 10kHz, 100kHz, 1MHz, выбор значений по «кольцу» , данный режим работы кнопки Кн0* актуален только в версии программы 1.0).

Значение выходной частоты выставляется с точностью порядка 1Hz, что достаточно для большинства случаев.

Кнопки Кн1Кн6, это кнопки быстрого доступа, с их помощью можно устанавливать определенную частоту  генератора одним нажатием кнопки.

Каждая кнопка Кн1Кн6, это есть ячейка с памятью.

 В них прописывается значение частоты следующим образом: сначала устанавливаем нужную нам частоту на экране ЖКИ  с помощью энкодера Sk1,

 нажимаем и длительно удерживаем Кн0 , на экране появится надпись «record» , не отпуская Кн0,  нажимаем любую кнопку Кн1 – Кн6 нужной нам ячейки, на экране это будет отражено надписью «is made», запись в ячейку произведена.

Введенные в ячейки значения частоты сохраняются в энергонезависимой памяти микроконтроллера.

А так же еще следует знать, что при старте МК всегда считывается установка частоты с ячейки Кн1.

А значение, записанное в ячейке кнопки   Кн6, управляет выходом РD7(13 ножка МК), которое в свою очередь по цепочке D1 R1 отключает генерацию прямоугольного сигнала генератора  AD9850.

К сожалению, DDS выдаёт побочные сигналы, уровень которых зависит от тактовой и выходной частот (при частоте более 5MHz (или любое значение частоты, внесенное в ячейку Кн6) по цепочке D1 R1 можно с МК подать лог . 1 ,  при этом не будут,  вносится искажения в синусоидальный сигнал генератора, это в случае если это требуется пользователю прибора, в противном случае цепочку из деталей D1 R1 не устанавливать).

FUSE:

Программа написана для работы МК на тактовой частоте 8 МГц. МК тактируется от внутреннего RS осциллятора.

Примеры работы генератора, в фотографиях.

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

Прошивка V1.0,+ Proteus. 

/*****************************************************  This program was produced by the  CodeWizardAVR V2.05.3 Standard                                               Соединение Меги с AD9850:                                               MOSI ---> D7                                               SCK ---> W_CLK                                               PB2 ---> FQ_UD   Date    : 26.05.2013  Author  : PerTic@n  Company : If You Like This Software,Buy It  Chip type               : ATmega8  AVR Core Clock frequency: 8,000000 MHz  *****************************************************/  #include <mega8>  #include <spi>  #define FQ_UD PORTB.2         // подключен вывод FQ_UD AD9850  /*********** Переменные **************/       union un_dataword                  //5 Байт, объединение  содержит данные для передачи AD9850       {       unsigned long dataword_freq;      // 32 бит слово,  для управления частотой        unsigned char dataword_byte[5]; // массив для побайтного доступа       }un;  unsigned long freq =0;        // частота Гц  unsigned char i;                             // счетчик  float k = 34.359738368;    // коэффициент  4294967296/F = 34.359738368 для 125MHz тактовой                 void set_frq(void)  {            un.dataword_byte[4]=0b00000000;  // два младших бита (0 и 1) Обязательно = 0.                                          // бит 2 устанавливает режим Power-Down                                           // пять старших бит управляют фазой.             un.dataword_freq = freq*k;       //  частота             FQ_UD =1;             FQ_UD =0;                       for (i=0; i<5; i++)                        {                       spi(un.dataword_byte[i]);                       }              FQ_UD =1;             FQ_UD =0;    }        void main(void)  {  PORTB=0x00;  DDRB=0x2D;  PORTC=0x00;  DDRC=0x00;  PORTD=0x00;  DDRD=0x00;  TCCR0=0x00;  TCNT0=0x00;  TCCR1A=0x00;  TCCR1B=0x00;  TCNT1H=0x00;  TCNT1L=0x00;  ICR1H=0x00;  ICR1L=0x00;  OCR1AH=0x00;  OCR1AL=0x00;  OCR1BH=0x00;  OCR1BL=0x00;  ASSR=0x00;  TCCR2=0x00;  TCNT2=0x00;  OCR2=0x00;  MCUCR=0x00;  TIMSK=0x00;  UCSRB=0x00;  ACSR=0x80;  SFIOR=0x00;  ADCSRA=0x00;  // SPI initialization  // SPI Type: Master  // SPI Clock Rate: 2000,000 kHz  // SPI Clock Phase: Cycle Start  // SPI Clock Polarity: Low  // SPI Data Order: LSB First  SPCR=0x70;  SPSR=0x00;    TWCR=0x00;    while (1)        {                 set_frq();                 freq = 500000;               }  }</spi></mega8>

Выбор шага настройки производится при нажатой кнопке энкодера Кн0** ,вращением энкодера вправо-влево(**отличие управления КнО от версии 1.0).

Версия прошивки названа как 1.2 — 1.3.( это одна и та-же прошивка, хоть и называется по разному, отличия см. ниже).Версия 1.2 под генератор с микросхемой AD9850.Версия 1.3 под генератор с микросхемойAD9851.Версию под нужный  генератор AD9850 или AD9851, можно выбрать программно,делается так;при подаче питания на МК удерживаете Кн0 , при запуске на экране соответственно версии, будет приветственная надпись AD_9850 V1.2 или AD_9851 V1.3 .При несоответствии повторить перезапуск МК с подачей питания (по умолчанию , при первой прошивке МК , по умолчанию устанавливается версия 1.2 под AD9850)Прошивка V1.2-1.3.

На основе базовой схемы и программы,  вариант программы с названием Версия 2.2(2.3)Применено другое схемное решение для подключения ЖКИ.

Вариант программы с названием Версия 3.2(3.3)

По своим свойствам эти программы полностью идентичны логике работы, описанной в статье.Отличия схем заключаются в таких моментах,-применен микроконтроллер ATmega168,-программа работает от внешнего кварца 16МГц,-в программе не задействованы порты МК, подключаемые к UART.Это дает возможность применить для этой схемы, вариант готовой платки типа Arduino mini, с возможность загрузки программы через бутлоадер.В архиве проект протеуса и прошивка 

ФОРУМ

Видео от Samodelkinа,  демонстрация работы собранной схемы Цифровой генератор от 1Hz до 40 МНz.

                             Электронные компоненты на http://aliexpress.com
Digital LCD Power Timer  ATMEGA8A  TQFP-32 Часы + будильник. DC 100V 10A V / A Микросхема AD9850
LCD 20X4 5V Blue nokia 5110 lcd ST7920  Шаг. двиг. 28BYJ-48 5V 1602 ЖК (синий экран) 
   
Nano Atmega328 8-channel  relay 5V SLA-12VDC Relay 30A T90  SRA-12VDC-CL 20A  5V  Relay Module 
     
Плата AD9850 Transmitter-Receive DSO138 2.4  SIM800L GPRS GSM   Генератор до 10МГц
 
Клемник 2Pin 5.0 мм  99pcs-Titanium-Steel-Drill. Red Light 250V 40 Pin Single Генератор NE555
Titanium Bits 3-20mm Multi-function electric PCB mini drill Bit carbide  PCB DIY   PCB  thermal  paper 
     
LM2596s DC-DC 5A quartz resonator mini DC-DC 3A    Rotary Encoder  RM-065 5kOm
     
Transistor Tester ESR  test hook clip   Probe Oscilloscope X1 X10  12V 5A 60W 110V-220V 12V 5A 60W 
 
MQ-135 Air Sensor  HC-SR505 sensor switch
MAX7219 Module LED DC 12 В  100PCS-5mm-LED  LED-Display 4*4 Matrix Array  
 
Transmitter-Receiver  TF card U disk MP3 Player WIFI модель ESP-12E (Esp8266) Д/У для ворот Soldering-Kits-T12  
 

На главную Используемые источники:

  • https://elschemo.ru/dlya-nachinayushhix/generator-signalov-na-ad9850/
  • https://www.sxem.org/2-vse-stati/24-izmereniya/11-ts

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации