Свежие обсуждения
Измерения

DDS-генератор на AVR - нужна помощь

1 102 189

Полином чему равен?

По-моему, регистры r28, r27 здесь не нужны, так как биты просто сдвигаются внутри регистров, внося задержку и только.

 

В теорию не вникал, а просто взял из статьи http://vrtp.ru/index.php?showtopic=9500 - там есть пара файлов с коэффициентами.
Мне удобно было взять три полинома для 32 разрядов:
polynom 1 (32,30,26,25) - 1 в разряды 8,6,2,1 регистра YH
polynom 2 (32,31,30,29,27,25) - 1 в разряды 8,7,6,5,3,1 регистра YH
polynom 3 (32,30,28,27,26,25) - 1 в разряды 8,6,5,3,2,1 регистра YH
В наушнике ТОН-2 шумело очень хорошо.

r26, r27 и r28 сдвигаются через сarry, таким образом двигается по кольцу 32 бита. Или я чего-то не понял?

Для 20МГц тактовая сдвига получится 2 Мгц, до 250кГц шум можно считать белым. Может и в правду шумовой код еще влезет, а выводить можно в старший разряд?

 

DWD: GM: А вообще, народ, нужен нам чумовой генератор, что скажете?
Господа, а какое практическое применение шума в любительских (и не очень далеко от них) целях? А то вопросов больше чем ответов с ним получается. Есть где нибудь сурьезное описание параметров генерируемого псевдослучайного сигнала, взаимосвязь его моментов с коэффициентами полинома, способы перехода от белого к розовому и остальным? А то опять GM задача повышенной сложности ставится, а его энергию можно использовать и в мирных целях На мой взгляд шум слишком геморройная и специфичная опция.
С другой стороны, есть более приземленные и близкие данному проекту задачки. Например, здорово было бы организовать модуляцию выходного сигнала. Есть же два источника в приборе, грех не воспользоваться такой возможностью.

 

GM: Объясните, чем...

Разнополярное питание нужно для смещения пульсирующего (0...+5В) выходного напряжения ЦАП в минус, для преобразования его в переменное.

Ключи нужны в любом варианте - хоть в токовом, хоть в другом.

GM: Ток по делителю течёт всё время и в одну сторону, т.е. нет никакого перезаряда емкостей...

Но он коммутируется. Значит всегда есть перезаряд емкостей.

GM: На + ОУ подать половину источника питания цапа - чистый синус ьез смещения у нас в кармане.

Подать напряжение какой полярности?
Если плюс, то нет смысла, так как на выходе ЦАП и так напряжение положительное.
А если минус, то потребуется двухполярный БП...

В общем, я, например, не понял, что Вы спросили...
Сформулируйте, пожалуйста, свой вопрос иначе и по-конкретней.

GM: Конечно, в качестве ОУ брать не К140УД1, если кто помнит такой.

Так он, наоборот, лучше - граничная частота 20МГц...

 

madgrey: А то опять GM задача повышенной сложности ставится, а его энергию можно использовать и в мирных целях

Так он и сам по началу был против.
Но если теперь он изменил мнение, значит, видит возможность реализации без особых затрат...

madgrey: С другой стороны, есть более приземленные и близкие данному проекту задачки. Например, здорово было бы организовать модуляцию выходного сигнала. Есть же два источника в приборе, грех не воспользоваться такой возможностью.

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

 

smg123: r26, r27 и r28 сдвигаются через сarry, таким образом двигается по кольцу 32 бита. Или я чего-то не понял?
Разобрался, всё так. Нельзя убирать r28, r27. В общем нормальный генератор шума, я его модернизировал до 8 тактов, теперь можно управлять с помощью нашего протокола.

 

Коллеги, сегодня поработал немного над программой, свежая версия
http://atlab.narod.ru/dds/ddscontrol_023.zip
проверяем работу.

Одновременно проверял работу программы вместе с генератором.
Наиболее интересно было посмотреть режим качания частоты. "АЧХометра" на нужный диапазон нет, так что для разглядывания обошелся сигналом с PD5 - он устанавливется в 1, при начале sweep цикла на Fнач. и сбрасывается в 0 на Fметки. Таким образом, на цифровом осциллографе по фронту этого сигнала можно посмотреть и период Fнач. и период Fкон. Картинки моих наблюдений и комментарии к ним можно взять здесь:
http://atlab.narod.ru/dds/pictures_023.zip

GM: мне не дает покоя Ваше сообщение, что программа намертво повисала. А не была ли у Вас одновременно с нею запущена терминальная программа?

 

Ну, намертво, возможно сильно сказано...Кнопки нажимались, числа не менялись кажется, не помню, однако тиня ничего не принимала и не мигала после приёма полного пакета из 5 байт, следовательно она их не принимала. Я снимал вашу программу с "довольствия", запускал реалтерм, вводил 16-ричные числа, тиня начинала отвечать. Иногда, после снятия вашей программы приходилось снимать питание тини. Больше ничего не делал, тиня адекватно реагировала на команды от реалтерма, адекватно в том смысле, что делала то, что требовалось.

Программы одновременно не запускались, т.к. реалтерм сразу сообщал, что компорт занят другой программой.

 

DWD: Но он коммутируется. Значит всегда есть перезаряд емкостей

В одном случае ток течёт по 2R через ключ1 на землю или ток течёт по 2R в ТУ ЖЕ сторону через ключ2 на виртуальный ноль. Возможен подзаряд.

В другом случае ток течёт по 2R через ключ1 на -5В или ток течёт от +5В по 2R в ДРУГУЮ сторону через ключ2. Полный перезаряд с + на - и наоборот.

 

DWD: GM: На + ОУ подать половину источника питания цапа - чистый синус без смещения у нас в кармане.
Подать напряжение какой полярности? Если плюс, то нет смысла, так как на выходе ЦАП и так напряжение положительное.

ОУ должен питаться от +-5..+-15В. Мы все знаем, что выход ОУ зависит от разности напряжений на входе+ и входе- (ну и от Ку). Если цап запитан от 5В, то на входе+ должно быть 2.5В. Пусть цап выдаёт синус размахом от 0 до 5В, если вход- больше входа+, то на выходе ОУ будет отрицательная полуволна (от 0 до -5..-15В), и наоборот.