DDS генератор

Схема:


Часто, в радиолюбительской практике необходим простой функциональный DDS (прямой цифровой синтез частоты) генератор. Для получения определенной частоты.
Был разработан простой генератор синуса на микросхеме от Analog Devices AD9832. Схема генерировала синусоиду от 0.005 до 12 МГц с шагом 0.005 Гц. Но, пока я ждал доставки микросхемы AD9832, был разработан простой DDS генератор с использованием микроконтроллера AT90S2313 и резистивной матрицей.

Генератор управляется через RS232 небольшой Windows-программой и может генерировать следующие формы сигналов:
- синус
- треугольник
- пила
- прямоугольник
в диапазоне частот начиная с 0.07 Гц до 200-300 кГц с шагом 0.07 Гц (зависит от применяемого кварца).


Схемотехника устройства очень простая, в ней есть 4 главных детали: регулятор напряжения, приемопередатчик RS232, микроконтроллер AT90S2313P и резистивная матрица (R2R). Матрица R2R подключена к выводам МК portB, т.о. образуя простой ЦАП и позволяющая получить 256 уровней напряжения.

Микросхема MAX603 также используется для реализации функций включения/выключения генератора, через последовательный интерфейс RS232 (сигнал DTR). Когда вы закрываете программу генератора на компьютере, то и DDS-генератора по поступившему сигналу выключается, т.о. экономя батарейки.

Программный код написан на ассемблере. Код небольшой и отличается большим быстродействием главного цикла. Это сердце кода генератора. Главный цикл содержит 7 строчек кода.
Остальной код — таблицы форм сигналов и коммуникационный код.

Аккумулятор фазы — 24 бит, при помощи него устанавливается разрешение. Максимально генерируемая частота и разрешение также зависит от используемого кварца:
Разрешение = Частота кварца/150994944
fOut = Аккумулятор * Разрешение
В моем случае кварц был на 11.059200 МГц, т.о. разрешение составило 0.073242188 Гц.
Для того, чтобы получить выходную частоту 1 кГц, необходимо в аккумулятор фазы записать значение 0x003556 (13654 dec). Это даст 1000.048835 Гц. Вполне достаточная точность для радиолюбителя.

Коммуникационный код программы прост и позволяет записывать значения в аккумулятор фазы и выбирать тип формы сигнала.
DDS генератор




Исходник, программа

2 комментария

a_komolow 27 февраля 2013 18:06
300 кГц? Маловато будет
sanyok 21 мая 2015 17:28
Всем привет
у кого заработало?
поделитесь HEX файлом !
Ваше имя: *
Ваш e-mail: *
Войти через
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Введите два слова, показанных на изображении:
© 2010-2017 Все права соблюдены.