DDS генератор на AD9833

Вопросы и замечания по статьям и схемам, представленным на нашем сайте

При поддержке РадиоКОТструктор.ру


Аватара пользователя
grott
Опытный кот
Сообщения: 793
Зарегистрирован: Пн ноя 02, 2009 18:00:05
Откуда: Украина Николаев

Re: DDS генератор на AD9833

Сообщение grott »

Много проще изменить направление энкодера сменой прошивки. В архиве DDS_23 обе прошивки. Есть изменения.
Раньше при выходе из меню настроек всегда выходили в режим SINE, теперь туда, где были ранее.

Добавлено after 33 minutes 56 seconds:
Пр просьбе leo476, а именно
В связи с этим есть к вам ,большая просьба доработать прошивку согласно приложенной схеме, если вас не затруднит и есть возможность.
Доработки:
1.Вывести на дисплей индикатор степени зарядки аккумулятора.
2.Включение длительным нажатием кнопки S1.
3.Выключение длительным нажатием кнопки S1.
4.При разрядке аккумулятора до 3.0 вольт отключать прибор и не давать его включать, пока напряжение на аккумуляторе не увеличится (защита от переразряда).
сделал это. В архиве DDS_4_BAT прошивка и схема, по которой он это сделал. Теперь так:
- включение длительным нажатием кнопки энкодера;
- выключаем длительным нажатием, при этом входим в меню сразу на пункт OFF и повторным нажатием выключаем;
- также в меню отображается напряжение батареи.
Вложения
DDS_4_BAT.zip
(65.53 КБ) 1103 скачивания
DDS_23.zip
(36.62 КБ) 920 скачиваний
Последний раз редактировалось grott Вт июн 05, 2018 10:52:00, всего редактировалось 1 раз.
Igor5264
Нашел транзистор. Понюхал.
Сообщения: 182
Зарегистрирован: Чт дек 31, 2015 15:12:54

Re: DDS генератор на AD9833

Сообщение Igor5264 »

Спасибо, в выходные залью.
Аватара пользователя
boka1733
Встал на лапы
Сообщения: 121
Зарегистрирован: Пт апр 16, 2010 12:00:19
Откуда: КМВ

Re: DDS генератор на AD9833

Сообщение boka1733 »

У меня вопрос к тем, у кого генератор на основе сабжа, все таки, заработал :)
Точность частоты, генерируемой AD9833, по эталонному генератору кто-нибудь проверял?
У меня платка с AD9833 и обвязкой от алиэкспресс. Купил готовую.
Достаточно качественно выполнена, промыта...я подключался только к цифровым сигналам управления.
Программа, экран, энкодер.. - это все понятно и работает :)
Выход пустил через усилитель с регулировкой амплитуды.
Но, и самое главное, сигнал на выходе моего генератора на 4 процента ниже установленной частоты.
Ставлю 1000Гц на эталонном частотомере вижу 960Гц, ставлю 10000Гц --> замеряю 9600 и т.п. на всех частотах (на "круглых" цифрах проще считать на сколько врет)
Частота выхода моего самодельного генератора занижена на 4% от установленной . По моему, это очень много.
Это что, на столько кривой кварц мне попался?
Выхода вижу два - менять плату с AD9833 (кварц на ней перепаять будет сложнее - все очень мелкое) да и не факт что новая будет более точная,
или сделать программную калибровку частоты - поправку, которая компенсирует неточность, по эталонному частотомеру.
Как у вас с точностью ?
s_erg
Открыл глаза
Сообщения: 40
Зарегистрирован: Пн окт 10, 2011 18:25:20
Откуда: Сергиев Посад

Re: DDS генератор на AD9833

Сообщение s_erg »

Здравствуйте. Собрал DDS по 3 вар активный кварц. ген. Спасибо автору за разработку. Основные проблемы были с индикатором (подсветка ) и MCP4011 в корпусе SO8 пришлось проводочки кидать. Кварц. ген. еще один остался (если нужен пишите в личку) По точности
5 МГц --- +184 Гц
1 МГц --- +37 Гц
1 КГц --- -0.4 Гц ошибся в девятках
100 Гц --- -0.07 гц
10 Гц --- -0.04 Гц
Последний раз редактировалось s_erg Пн авг 27, 2018 19:13:03, всего редактировалось 1 раз.
Аватара пользователя
boka1733
Встал на лапы
Сообщения: 121
Зарегистрирован: Пт апр 16, 2010 12:00:19
Откуда: КМВ

Re: DDS генератор на AD9833

Сообщение boka1733 »

Поправочка -- мой генератор ЗАВЫШАЕТ частоту на эти 4 процента.Сути это не меняет.
Чтобы получить настоящие 1000Гц мне надо выставлять 960Гц, и так по всему диапазону надо ставить на 4% меньше.
Если ставлю ровно 1.0 кГц - на эталонном частотомере вижу 1.04 кГц.
У товарища сообщением выше всего 4 Гц разница - в 10 раз лучше моего....
Неужели, у меня настолько генератор на борту AD врет.

Добавлено after 1 hour 22 minutes 4 seconds:
Всегда так - стоит написать в форум о проблеме, как тут-же, сам, находишь причину проблемы и решение :)
Я про завышение частоты моей версией генератора.
Мой генератор управляется ARDUINO, дисплей другой (16х2) но суть от этого не меняется.
Так вот программу (или скейч на языке ардуин) я взял у иностранного товарисча как основу, и стал переделывать под себя.
Интерфейс у него неудобный, сохранения настроек нет.... есть место для творчества.
Однако, базовая часть первоначальной инициализации и настроек AD9833 у всех должна быть одинаковая.
Вот я скопировал кусок кода, в котором идет инициализация AD на частоту 24МГц (в чужой схеме так сделано), а на моей плате стоит 25МГц генератор!
Отсюда и набегает жуткая погрешность.
Простая копипаста и банальная ошибка буквально в третьей строке кода, а месяц не мог понять что не так :(
Поставил AD9833 sigGen(10, 25000000);
вместо AD9833 sigGen(10, 24000000);
залил в контроллер - и все стало "по нулям" с точностью установки частоты!
Надо внимательнее перепроверять чужой код....
leo476
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Ср ноя 27, 2013 20:56:03
Откуда: Екатеринбург

Re: DDS генератор на AD9833

Сообщение leo476 »

Здравствуйте.
Собрал DDS на аккумуляторе в корпусе брал на али:
https://ru.aliexpress.com/item/New-ABS- ... 92892.html
Спасибо grott за прошивку.
Выкладываю фото:
Изображение Изображение Изображение Изображение Изображение Изображение
Есть четыре голых платы:
Изображение Изображение
Вложения
DDS_5_2.rar
(84.41 КБ) 1007 скачиваний
DarkWolf
Встал на лапы
Сообщения: 117
Зарегистрирован: Ср ноя 05, 2014 19:04:31

Re: DDS генератор на AD9833

Сообщение DarkWolf »

Доброго времени grott. Использую генератор на AD9833, но возникла проблемка.. все время на выходе одна и таже частота 609,7KHz. Может сталкивались с подобны и можете подсказать в в решении.
maxicooler
Родился
Сообщения: 1
Зарегистрирован: Пт окт 19, 2018 10:46:36

Re: DDS генератор на AD9833

Сообщение maxicooler »

Кто-нибудь может выслать плату в РБ?
davids58
Открыл глаза
Сообщения: 58
Зарегистрирован: Пт фев 04, 2011 15:14:17
Откуда: Украина, Львов

Re: DDS генератор на AD9833

Сообщение davids58 »

Уважаемый grott!
Мне очень понравился Ваш проект!
Я буду повторять Ваш проэкт, как только прийдет плата от наших "китайских товарищей".
У меня к Вам большая просьба: скорректируйте,пожалуйста, прошивку, чтобы можно было использовать стандартную ProMini(кварц 16 МГц) и готовую плату генератора.

:)
Аватара пользователя
grott
Опытный кот
Сообщения: 793
Зарегистрирован: Пн ноя 02, 2009 18:00:05
Откуда: Украина Николаев

Re: DDS генератор на AD9833

Сообщение grott »

Это невозможно, разгон был до 25Мгц не из моей прихоти, а для того, чтобы получить на цифровом выходе фронт в 1мкс необходимо было 25 машинных тактов.
Самый простой способ в вашем случае, это поменять кварц на про-мини-ардуино.
davids58
Открыл глаза
Сообщения: 58
Зарегистрирован: Пт фев 04, 2011 15:14:17
Откуда: Украина, Львов

Re: DDS генератор на AD9833

Сообщение davids58 »

grott писал(а):Это невозможно
Спасибо за оперативный ответ!
У меня про-мини с маленькими(смд) кварцами, а таких на 25 у меня, к сожалению нет. Но зато есть готовые платы-заготовки заводского производства(заказывал у китайцев), где разведены выходы под дисплей 5110 (D0...D4 - RST;CE;DC;Din;CLK). Есть ли возможность переназначить выводы микроконтроллера? Буду Вам очень признателен. Это очень бы мне помогло.
:)
Аватара пользователя
grott
Опытный кот
Сообщения: 793
Зарегистрирован: Пн ноя 02, 2009 18:00:05
Откуда: Украина Николаев

Re: DDS генератор на AD9833

Сообщение grott »

Переназначить ножки можно, только если это позволит сам микроконтроллер. Судя по-всему, плата "по индивидуальному пошиву" и остальным не интересна, поэтому обращайтесь в личку, помогу в силу своих возможностей.
shtepa
Первый раз сказал Мяу!
Сообщения: 24
Зарегистрирован: Пт мар 20, 2015 18:58:08

Re: DDS генератор на AD9833

Сообщение shtepa »

Продает кто-то плату в Украине?
ruslan_markiv
Открыл глаза
Сообщения: 45
Зарегистрирован: Вс июн 20, 2010 12:08:06

Re: DDS генератор на AD9833

Сообщение ruslan_markiv »

[uquote="grott",url="/forum/viewtopic.php?p=3133619#p3133619"]10 кГц в режиме PWM - это максимум, что можно было выжать (ну почти), не трогая основной алгоритм, ведь этот режим дописывался позже. Надо было, чтобы не возникали вопросы, всё-таки убрать незначащие нули. Контрастность и яркость дисплея регулируется из меню настройки, в которое можно войти долгим нажатием на кнопку.[/uquote]

Уважаемий grott а мочему би не добавить компаратор на аналоговий виход тогда с помощью регулирования усиления амплитуди треугольника можно получать на виходе регулируемий ШИМ в большом диапазоне частот.

Добавлено after 1 hour 12 minutes 53 seconds:
У вас в описании стоит AD8052а на схеме AD8092, с AD8092 есть какое то улучшение? Просто в Украине AD8052 дороже чем AD8092 а в китае наоборот!
Почему используете 2 канала усиления AD8092 одного разве не достаточно?
Из вашей статьи прочел:
"Чтобы минимизировать шумы, фильтр Баттерворта сделан пасивным" - а какие там могут бить шуми?
Там же вроде кроме кварца на частотах више 5МГц нечему шуметь а фильтр ниже 5МГц все равно пропустит.
У вас есть осцилограмми сигнала с фильтром и без него чтоб можно било увидеть разницу?
Прибор я еще не делал потому и задаю такие вопроси.

Ви не подумайте что я к вам придираюсь, я просто минималист - не вижу смисла да и не люблю использовать запчастей больше чем нужно!
Не вижу смисла делать усилитель на пяти каскадах усиления если при том же качестве можно сделать на двух, ви меня понимаете?
Ви разрабативали схему и совершенствовали ее, и в процессе етого вишел окончательний вариант такой как ми его наблюдаем но хочется же знать почему ви поставили фильтр (какой сигнал бил без него и как улучшился с ним), для чего 2 каскада усилителя (что вас не устраивало с одним каскадом), почему не поставили компаратор на виходе и не сделали ШИМ (может там есть какие то искажения какие трудно усунуть)?
Раскажите пожалуйста думаю другим тоже будет интересно и полезно узнать!
ruslan_markiv
Открыл глаза
Сообщения: 45
Зарегистрирован: Вс июн 20, 2010 12:08:06

Re: DDS генератор на AD9833

Сообщение ruslan_markiv »

Что то автор пропал! Или может обиделся и не хочет отвечать?
Аватара пользователя
grott
Опытный кот
Сообщения: 793
Зарегистрирован: Пн ноя 02, 2009 18:00:05
Откуда: Украина Николаев

Re: DDS генератор на AD9833

Сообщение grott »

Автор не пропал, а всё думает как корректно ответить. Если сравнить и не полениться два даташита, то AD8092 и AD8052 будут близнецами, поэтому в статье был специальный намёк на это. Два канала ОУ использовано не просто "потому-что", а первый канал это не только усилитель, но и формирователь нуля, второй канал - усилитель и аттенюатор, да и, между прочим, нельзя на высоких частотах ОУ использовать по усилению на максимум, потому что единичное усиление на максимуме одно, а на большем в два раза коэффициенте совсем не в два раз больше ОУ усиливает. Ну а в остальном, это очень нудно и напряжно всё рассказать. Просто повторите, а если хватает сил и и знаний, то усовершенствуйте схему и дайте сообществу свой труд безвозмездно.
blok88
Родился
Сообщения: 1
Зарегистрирован: Сб дек 07, 2019 19:24:33

Re: DDS генератор на AD9833

Сообщение blok88 »

Добрый день. Вопрос автору: за какое время ГКЧ делает проход от Fmin до Fmax?
Количество шагов у Вас 250, время я так понимаю ~30 мс на шаг, т.е ~7.5 c.
Поясните пожалуйста. Спасибо.
Аватара пользователя
grott
Опытный кот
Сообщения: 793
Зарегистрирован: Пн ноя 02, 2009 18:00:05
Откуда: Украина Николаев

Re: DDS генератор на AD9833

Сообщение grott »

Длительность одного кадра 30.72 ms. Если бы посмотрели исходник, то и вопроса бы не было
Спойлер// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
TCNT0=0xD0; //период 0,12288 ms х 250 = 30,72 ms
if(a==0) {
SQ_OUT=0;
freq_sweep=freq_low;
}
if(a<250) {
AD9833_usedFreqReg(b);
freq_sweep += freq_step;
if(b) AD9833_setFreq (WRITE_TO_FREQ0_REG, freq_sweep);
else AD9833_setFreq (WRITE_TO_FREQ1_REG, freq_sweep);
}
else {
AD9833_usedFreqReg(USE_FREQ0_REG);
AD9833_setFreq (WRITE_TO_FREQ0_REG, 0);
}
a++; b++;
if(a==255){
a=0;
SQ_OUT=1; //синхроимпульс на OUT_D
}
}
ruslan_markiv
Открыл глаза
Сообщения: 45
Зарегистрирован: Вс июн 20, 2010 12:08:06

Re: DDS генератор на AD9833

Сообщение ruslan_markiv »

[uquote="grott",url="/forum/viewtopic.php?p=3750727#p3750727"]а если хватает сил и и знаний, то усовершенствуйте схему и дайте сообществу свой труд безвозмездно.[/uquote]
Спасибо вам большое от меня и думаю что и от других пользователей за то что дали нам безвозмездно свои наработки!
Мне до вас еще далеко в плане знаний!
ruslan_markiv
Открыл глаза
Сообщения: 45
Зарегистрирован: Вс июн 20, 2010 12:08:06

Re: DDS генератор на AD9833

Сообщение ruslan_markiv »

grott, Подскажите пожалуйста! Нашел в интернете 2 библиотеки (1-ваша 2-я-с другой ветки ) они практически идентични, но при вводе частоти она идет в целих Герцах (шаг регулирования) а в документации написано что AD9833 имеет возможность настраивать частоту в 0.1 Гц. Ето в библиотеке просто сделали регулировку частоти с наименьшим шагом 1Гц или в документации ошибка?
Ответить

Вернуться в «Статьи»