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

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

1 101 189

AlexM: GM, спасибо, получил. Вот только у меня эта "связка" не работает. Софт не управляет контроллером. После посылки команды контроллер начинает генерировать сигнал и больше никакие команды не принимает
Ну, вы знаете, телепаты в отпуске, а я сам не обладаю паранормальными способностями. Поэтому подробнее описывайте, что не работает, что вы делаете, что вы видите...Для отладки было сделано, что ТОЛЬКО первая команда, посланная тиньке, посылается обратно, затем исполняется, надо было удалить, но пока оставил, воспользуйтесь. Далее, в режиме ддс после приёма команды светодиод сд1 (по памяти) меняет своё состояние, как у вас?

У меня нормально управляется от realterm, вручную подавал команды, все отрабатываются. С ddscontrol (верс.021) - с трудом и не всегда, но тоже работала. Почитайте отсюда http://pro-radio.ru/measure/5801-86/2011/01/05/14-53-11/ и трясите ATLab, он автор данного софта.

 

GM: частоты можно посылать начальное значение регистра сдвига.
Лучше ничего не посылать , хочется надеятся, что при включении начальное значение будет случайным.

 

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

На п.2 ответьте.

 

GM: DWD, снимаю шляпу.
+1!
GM: нужен нам чумовой генератор, что скажете?
Мое мнение - в этом проекте - нет. Его изюминка в другом.
Шум можно рассматривать как опцию - для желающих. Иначе начнется: одним белый, другим розовый, третим коричневый подавай.
Когда-то делал генератор ПСП на Tiny13, 10 тактов для 32 разрядов по кольцу.

 

GM: Какой там полином?
Я в теорию не вникал . В "Искусстве схемотехники " том 2, стр. 96 есть таблица , где приведены
практические параметры. Я выбрал m=33 , n=20

 

Так, примера для...

ЦАП на резистивной матрице с отдельными ключами.

Из минусов - нужно "аж" три корпуса мс CD74HC4053 ($1 за три штуки).
Зато плюс хороший - есть два вывода для подключения опорного напряжения +-5В в любом сочетании.

Если на один подать +5В, а на другой -5В, то автоматом получаем привязку генерируемого сигнала к нулю.
Изменяя эти напряжения, получим постоянное смещение.

Можно и электронные регулировку уровня с аттенюатором реализовать...

В общем, получается обычный перемножающий ЦАП.

 

GM: А вообще, народ, нужен нам чумовой генератор, что скажете?

Чумовой - нет. А если шумовой...
Если без особых проблем влезет в то, что есть и не вместо чего-то другого, то не плохо.

Тут изначально проявилась функциональная модульность прибора. Так может шум сделать опцией?
Типа если хочешь - ставь ещё один блочёк на МК...
Просто шум как-то не того... А вот разноцветный - было бы нормально... Но фильтры понадобятся...
То есть, выливается в законченное устройство.

GM: Еще вариант - добавить шим и шум в другой тиньке, вместо второго ддс и свипа.

Вместо второго не нужно. Как уже говорилось, два самостоятельных но совмещённых генератора - штука полезная.
По этому либо в том же конструктиве, если память МК позволит, либо отдельным функциональным блоком с собственным МК.

Хм... Интересный приборчик вырисовывается...
И пока - без особых затрат или "многомикросхемности"...

 

GM: Придётся ужимать генератор в 10 тактов.
Пока ужалось до 13.
smg123: 10 тактов
Посмотрел, мне показалось там 19
DWD: И пока - без особых затрат или "многомикросхемности"...
Вот на ARMе было бы - при включении нужный программный модуль копируется ОЗУ и запускается .

 

Объясните, чем разнополярное питание и ключи лучше токового варианта, когда все 2R резисторы коммутируются либо на вход ОУ, либо на землю? Ток по делителю течёт всё время и в одну сторону, т.е. нет никакого перезаряда емкостей, ОУ поддерживает виртуальный нуль на входе на уровне десятых-сотых милливольта, и преобразовывает ток в напряжение. Всё просто и функционально. На + ОУ подать половину источника питания цапа - чистый синус ьез смещения у нас в кармане. Конечно, в качестве ОУ брать не К140УД1, если кто помнит такой.

 

Alexey: Посмотрел, мне показалось там 19
10 тактов на вывод в порт очередного значения , там еще по прерываниям ШИМ пилу формирует - можно не учитывать,
смотрите последний вариант на тини13 с парафазной пилой. Вот код:

Регистры X и Y (r26-r29) - 32 разрядный регистр сдвига.
После загрузки в регистр r20 полинома основной цикл:

$0029: LSR r29 (сдвигаемся вправо)
$002A: ROR r28
$002B: ROR r27
$002C: ROR r26
$002D: BRCC $31 (C=0)
$002E: EOR r29,r20 (YH ^ polynom)
$002F: SBI p$18.2 (1 -> OutNoise)
$0030: JMP $29
$0031: CBI p$18.2 (0 -> OutNoise)
$0032: JMP $29