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

Автор: с2. Опубліковано в Вимірювання

AD9850-DDS

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

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

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

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

DDS синтезатор AD9850

Рис.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 осциллятора.

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

                
              

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

 

Архив файлов под генератор AD9850 , версия 1.0.

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

Исходный код для начальной работы с AD9850.
 
/*****************************************************
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.h>
#include <spi.h>
#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;       
      }
}

Архив файлов под генератор AD9850 (AD9851) , версия 1.2 (1.3).

Выбор шага настройки производится при нажатой кнопке энкодера Кн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.

Модернизированный вариант схемы AD9850 (AD9851) , версия№2 - версия №3.


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


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

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

ФОРУМ

 

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

 

 
 

 

 

 

Joomla Plugins