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

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

1 104 189

madgrey: кто-нибудь вживую так пробовал?
Я пробовал, для работы со звуком.
Выпускаются спецприборы, в которых есть третьоктавный спектроанализатор, эквалайзер и генератор шума. Шумом (розовым) настраивается сквозной тракт по звуковому давлению, причем в автоматическом режиме. Быстро, удобно и практично. Настраивать или проверять АЧХ аудиоэлектронники с помощью белого шума не вижу смысла. Тут нужна точность, и раз уж речь зашла о быстрой и качественной проверке звуковых трактов, упомяну о хорошей программе RMAA. Сам пользовался неоднократно, рекомендую.

Проверил 544УД2 с питанием +/-5В и закороченными выводами 1-8. В штатном включении TL7524 АЧХ на выходе ОУ монотонно задрана (на глаз децибела на 2-3).
А фильтр проверки не выдержал.
Так что, если использовать свип для измерений, к фильтру надо отнестись серьезней. У меня обычные аксиальные дроссельки и керамика кондеры.

 

Запустил генератор шума, добил нопами до 10 тактов. Весь экран - полоса 0-500 кГц

Ссылка тыц

Сам шум

 

8 тактов. Весь экран - полоса 0-500 кГц

Ссылка

Шумовой сигнал

 

8 тактов. Весь экран - полоса 0-1250 кГц

Здесь ссылка

 

GM: Запустил генератор шума,
Как по мне, так вполне шумный шум Хотя я больше по борьбе с ними, а не по их генерации. Я понял, что в шумовом режиме ничего не настраивается в тиньке, она шумит и ладно?
Кстати GM, а полосовой шум никак не реально организовать? Типа 50-60 кГц или 100 кГц-макс??

Да, помнится читал где-то, что крутой спад ФНЧ наболее эффективно реализуется каскадным включением эллиптического фильтра (дает наилучший переход ПП-ПЗ) и одного из классических (придавливает пульсации коэффициента передачи эллиптического фильтра в ПЗ). Вроде это наиболее рациональный метод и применяется в проф аппаратуре при решении проблем, аналогичных нашей.

 

Можно настроить исходное состояние регистра сдвига, можно полином выбрать (их всего три). Я не большой спец по шумам, только шумовое число активного 4-х полюсника знаю , наверное, проще шум пропустить через полосовой аналоговый фильтр. Можно ещё в цифре всё сделать, там можно приблизиться к идеалу, не на авр, конечно. Я делал линейку БИХов на биквадах, так у меня там коэффициенты были 32-х разрядные, а арифметические операции - 64-х разрядные, один отсчёт считался целую микросекунду. Ну, FIA была удовлетворена.

 

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

1. Частоту генератора удаёться изменить, форму сигнала нет. Всегда "синус". Вроде как за форму отвечают три старших бита, байта команды.
Например отправлял команды 23 E3 53 00 00, 43 E3 53 00 00, 33 E3 53 00 00. Всё время "синус" 10Гц.
2. Команда 02 00 00 00 00 вроде должна остановить генерацию, этого не происходит.
3. Какая последовательность команд должна быть чтоб запустить swip разобраься не удалось, т.е. какой бит определяет начальную частоту какой конечную. Если не сложно приведите пример.

 

Так у вас что, таки заработало?

 

С терминала могу изменить частоту генерируемого контролером сигнала и больше пока ни чего.

 

Протокол управления генератором и свипом

1) Посылка пакетов ведётся на скорости 9600 бит/с, между пакетами должен быть временной зазор не менее 1.5 мс для синхронизации. При первом включении МК выдаёт информацию о программе. Для контроля линии связи самый первый пакет посылается обратно, после этого исполняется. Последующие пакеты обратно не посылаются.

2) Общий формат пакета управления - команда CMD и четыре байта данных B1,B2,B3,B4 (всего 5 байт).

CMD для генератора
- 001-00-011 - запуск синуса на ддс1
- 100-00-011 - запуск треугольника на ддс1
В1-В4 байты кода частоты для 32-битного аккумулятора фазы, В1 - младший байт.

CMD для свипа
- 001-01-001 - выдача на свип1 начальной частоты свипирования fНАЧ
- 010-01-001 - выдача на свип1 частоты метки fМЕТ
- 100-01-001 - выдача на свип1 конечной частоты свипирования fКОН
В1-В3 байты кода частоты для 24-битного аккумулятора фазы, В1 - младший байт, В4=0х00.

3) Для перехода из режима генератора в режим свипа и обратно необходимо прежде выключить текущий режим, т.е. выдать полный пакет (5 байт) с командой стоп для текущего режима, при этом конкретное содержимое байт B1,B2,B3,B4 не имеет значения.

- ххх-00-010 - CMD стоп для генератора ддс1
- ххх-01-000 - CMD стоп для свип1

4) Прошу обратить внимание на разную битность аккумуляторов фазы в режиме генератора и в режиме вобулятора - 32 и 24.