DDS генератор
Часто, в практиці радіолюбителів необхідний простий функціональний DDS (прямий цифровий синтез частоти) генератор. Для отримання певної частоти...
Я розробив простий генератор синуса на мікросхемі від Analog Devices AD9832. Схема генерувала синусоїду від 0.005 до 12 МГц з кроком 0.005 Гц. Але, поки я чекав доставки мікросхеми AD9832, був розроблений простий DDS генератор з використанням мікроконтролера AT90S2313 і резистивною матрицею.
Генератор управляється через RS232 невеликою Windows-програмою і може генерувати такі форми сигналів: синус, трикутник, пила, прямокутник в діапазоні частот, починаючи з 0.07 Гц до 200-300 кГц з кроком 0.07 Гц (залежить від застосовуваного кварца).
Я не хочу вдаватися в деталі роботи DDS-генератора. Исходний код додається, він дуже простий і в ньому легко розібратися.
Схемотехніка пристрою також проста, в ній є 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 Гц. Цілком достатня точність для радіолюбителя.
Комунікаційний код програми також простий і дозволяє записувати значення в акумулятор фази і вибирати тип форми сигналу.
Нижче ви можете завантажити вихідний код на асемблері та програму під Windows
Список радіоелементів
Обозначення | Тип | Номінал | Кількість | Примітка |
---|---|---|---|---|
IC1 | Мікроконтролер | AT90S2313P | 1 | |
IC2 | Лінійний регулятор |
MAX603
|
1 | |
IC3 | ІС RS-232 інтерфейсу |
MAX202
|
1 | |
D1 | Випрямляючий діод |
470 Ом
|
1 | |
C1-C4 | Конденсатор | 4 | ||
С5, С6 | Конденсатор | 22 пФ | 2 | |
С7 | Конденсатор | 0.1 мкФ | 1 | |
С8, С11 | Електролітичний конденсатор | 10 мкФ 16 В | 2 | |
R1 | Резисторний блок | 10/20 кОм | 1 | |
R2 | Резистор |
470 Ом
|
1 | |
R5 | Резистор |
4.7 кОм
|
1 | |
Q1 | Кварцовий резонатор | 11.0592 МГц | 1 | |
X1 | Роз'єм | RS232 | 1 | |
Х2 | Роз'єм виходу сигналу | 1 |
Прикреплені файли:
- minidds.rar (70 Кб)