Функциональный dds генератор на базе микросхемы ad9833

Категории блога

  • Справочная информация и советы
    (144)
  • Авторские разработки и исследования
    (133)
  • Радиолюбительский эфир
    (96)
  • Авторское ПО
    (83)
  • делимся опытом
    (67)
  • Авторские библиотеки
    (57)
  • Новости технологий
    (57)
  • юмор
    (52)
  • Работа с сетью
    (46)
  • ЦОС
    (44)
  • Антенны
    (43)
  • Голосовой контроль и умный дом
    (37)
  • Промышленная автоматика
    (37)
  • ESP8266
    (35)
  • Публикации в СМИ
    (33)
  • Wi-Fi
    (25)
  • Отдыхаем
    (25)
  • ПЛИС
    (20)
  • Полезные утилиты
    (20)
  • альтернативная энергетика
    (20)
  • RTL и SDR
    (17)
  • IP камеры на природе
    (14)
  • Вебинары и конференции
    (13)
  • Arduino
    (12)
  • YAGI
    (11)
  • ЭКиС
    (11)
  • Baofeng
    (10)
  • Tektronix
    (10)
  • Датчики
    (10)
  • Метеостанция
    (10)
  • Раритеты
    (10)
  • Lua
    (9)
  • OpenGL
    (8)
  • VBS
    (8)
  • Обзоры
    (8)
  • Солнечная панель на балконе
    (8)
  • Kankun
    (7)
  • Автоматизация документооборота
    (7)
  • Agilent
    (6)
  • SMS
    (6)
  • Modbus
    (5)
  • Кулинария
    (5)
  • Радиомикрофон
    (5)
  • Угадай-ка
    (5)
  • метео
    (5)
  • ADC
    (4)
  • AIMP
    (4)
  • Bluetooth
    (4)
  • RTL2832
    (4)
  • Контроль доступа
    (4)
  • периодические издания для плисоводов
    (4)
  • прогнозирование заморозков по Броунову
    (4)
  • DDS
    (3)
  • FA-VA5
    (3)
  • FT-857
    (3)
  • FT-897
    (3)
  • OCR и распознавание текста
    (3)
  • PCB
    (3)
  • Rasperry Pi
    (3)
  • SSD1306
    (3)
  • SWR
    (3)
  • UR3QQJ
    (3)
  • Антенный коммутатор
    (3)
  • РЛС
    (3)
  • Сборник решений и задач по ТОЭ
    (3)
  • работа с весами
    (3)
  • ATU-100 mini 5×5
    (2)
  • DHT11
    (2)
  • DVB-T2
    (2)
  • GP
    (2)
  • M-Link
    (2)
  • MSP430
    (2)
  • Modbus TCP
    (2)
  • NOISE
    (2)
  • OPC
    (2)
  • Satcom
    (2)
  • Sonoff
    (2)
  • TeleTec
    (2)
  • UHF
    (2)
  • USB
    (2)
  • VHF
    (2)
  • VoIP
    (2)
  • WinAPI
    (2)
  • Автотюнер
    (2)
  • КСВ-метр
    (2)
  • Многотарифный электросчетчик
    (2)
  • Мотылек
    (2)
  • Оригами
    (2)
  • Си-Би
    (2)
  • Тонометр
    (2)
  • Фридрисхафен
    (2)
  • антенна из рулетки
    (2)
  • генератор Хартли
    (2)
  • ионистор
    (2)
  • как передать данные из WEB-интерфейса в COM-порт
    (2)
  • конкурсы
    (2)
  • макрос перевода в Excel
    (2)
  • направленный ответвитель
    (2)
  • прогнозирование облачности
    (2)
  • прозрачный мост Wi-Fi/UART
    (2)
  • 1090MHz
    (1)
  • 3D IP WiFi камера
    (1)
  • AC/DC to Logic Interface
    (1)
  • ADS-B
    (1)
  • AWRDE
    (1)
  • BME280
    (1)
  • DVB-S
    (1)
  • DVB-S2
    (1)
  • Downgrade
    (1)
  • EAN-13
    (1)
  • Echolink
    (1)
  • FPGA
    (1)
  • FTDI
    (1)
  • Firmware upgrade NanoVNA
    (1)
  • GmAvtovaz.DLL
    (1)
  • HAMFEST-2019
    (1)
  • HC-05
    (1)
  • History
    (1)
  • I2C
    (1)
  • ICQ
    (1)
  • ISE
    (1)
  • Icom
    (1)
  • Instrustar ISDS205A
    (1)
  • KXO
    (1)
  • MIDI
    (1)
  • MTX 1A10
    (1)
  • MTX 1A10.DF.2Z0-CO4
    (1)
  • Microwave
    (1)
  • Modbus индикатор
    (1)
  • NanoVNA
    (1)
  • OBDII
    (1)
  • ON5RZ
    (1)
  • QSO
    (1)
  • RFID
    (1)
  • Remote control NanoVNA
    (1)
  • Renesas
    (1)
  • Serial EEPROM
    (1)
  • Soft DVR
    (1)
  • UR3QQC
    (1)
  • UT61E
    (1)
  • X-ray
    (1)
  • Xilinx
    (1)
  • Yaesu
    (1)
  • Yosan Commander
    (1)
  • Zello
    (1)
  • iButton
    (1)
  • iFilter
    (1)
  • Аккумуляторный шуруповерт в сетевой
    (1)
  • Г5-56
    (1)
  • ГСЧ
    (1)
  • Голосовой контроль плеера AIMP
    (1)
  • Игры
    (1)
  • КПИ
    (1)
  • Новый Год
    (1)
  • Путешествия
    (1)
  • РД-09
    (1)
  • РТФ
    (1)
  • Раскрытие Baofeng
    (1)
  • С Днем Радио
    (1)
  • Тропо
    (1)
  • Удаленный COM порт
    (1)
  • ФСС
    (1)
  • альтиметр
    (1)
  • беспроводная зарядка
    (1)
  • векторный антенный анализатор
    (1)
  • генерация штрих-кода
    (1)
  • жизнь
    (1)
  • космос
    (1)
  • манпак
    (1)
  • органический сцинтиллятор
    (1)
  • панорамный анализатор спектра
    (1)
  • поворотка
    (1)
  • попугай
    (1)
  • программа управления DDS
    (1)
  • простой эхо-репитер
    (1)
  • радиолокация
    (1)
  • расширитель порта
    (1)
  • скользящая медиана
    (1)
  • скользящее среднее
    (1)
  • считывание штрих-кода
    (1)
  • точка росы
    (1)
  • турецкий автоканал
    (1)
  • циклическая запись
    (1)
  • шлюз Интернет-рация
    (1)

The Circuit

The circuit is based on the
AD9850 DDS Module which is available
from various sources such as eBay, Banggood, etc. Although it claims to operate up to 40 MHz, I found the output voltage started to drop off
at about 2.6 MHz — both the 50 MHz digital ‘scope and the 20 MHz analogue ‘scope showed identical results. Therefore, I’ve limited the
available frequency range from 10 Hz to 10 MHz in the software.

The desired frequency is set in the AD9850 module by clocking data to its DATA pin. The ATmega328 digital pins D5, D6, D7 and D8
connect to the AD9850 module’s pins RESET, DATA, FQ_UD and W_CLK respectively. «In phase» sine and square wave outputs
are available from the AD9850 module pins 10 and 7. The square wave’s duty cycle is adjusted with a pre-set potentiometer on the module
itself. I did consider removing the pot and using a panel-mounted one instead but I decided against it for this simple project. I just
adjusted the pot for a 50% duty cycle (ie equal mark-space ratio) and left it at that.

Over the 10 Hz to 2.5 MHz frequency range, the peak-to-peak sinewave output is consistent at about 1.08 volts. The square wave is around 5 volts peak-to-peak.

An interrupt-driven rotary encoder, connected to the ATmega328 interrupt pins (D2 and D3), adjusts the frequency between 10 Hz and 10 MHz in pre-set steps. Pushing
the rotary encoder’s button (connected to D4) resets the frequency to 1 kHz.

The steps
are set with a second rotary encoder (not interrupt-driven) connected to ATmega328 pins A2 and A3.

The steps
are determined in software — I’ve set them to 1 Hz, 10 Hz, 50 Hz, 100 Hz, 500 Hz, 1 kHz, 2.5 kHz, 5 kHz, 10 kHz, 100 kHz and 500 kHz. Pushing the encoder’s button —
connected to A4 — resets the step to 1 Hz.

The 1.8″ TFT display connects to the ATmega328 pins A1, A0, D13, D12, D11 and D10. D10 to D13 are the
ATmega328’s SPI pins and the software uses an Adafruit library. Pin D9 connects to the display’s LED pin via a 100 ohm
resistor. D9 is a PWM pin so the display’s backlight brightness can be adjusted if desired. I’ve set it in software to ‘255’ -ie
maximum brightness.

There are some very similar 1.8″ TFT displays available — the one I used has an ST7735 controller IC. Some of the other displays use a different
controller (and different Adafruit library) and — not provided for in the PCB layout — require 1k series resistors in each IO lead.

I’ve used a 5 volts 1.5A regulator in the power supply section. With a 12v DC input, the regulator does run slightly warm so I fitted it with
a small heatsink. I included a jumpered link in the PCB design so an on/off switch could easily be added.

The two rotary encoders are soldered to the small front-panel-mounted PCB with the track side up. The encoders I used had metal bases so I slipped
a piece of thin insulation under them.

Оцените статью:
Оставить комментарий
Adblock
detector