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

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

1 105 189

AlexM, swipe - в переводе с английского значит стибрить. Шутю .

 

AlexM: Например отправлял команды 23 E3 53 00 00, 43 E3 53 00 00, 33 E3 53 00 00. Всё время "синус" 10Гц.
Пошлите 83 E3 53 00 00 (см.протокол), будет треугольник

 

GM: Пошлите 83 E3 53 00 00 (см.протокол), будет треугольник

Послал на выходе синус.

 

Зависит от настроек реалтерм, но я посылал так 0х83,0хE3,0х53,0х00,0х00

 

Ну, не знаю...специально зашил код, проверил
Вот, что посылаю с помощью реалтерм

http://i023.radikal.ru/1101/9c/0f155dd02e77.jpg

Вот, что получается, если послан верхний пакет

http://s016.radikal.ru/i337/1101/d2/c2ac4a08fda4.tif

Вот, что получается, если послан нижний пакет

http://s002.radikal.ru/i199/1101/6e/663135f9034b.tif

 

GM: но я посылал так 0х83,0хE3,0х53,0х00,0х00

Спасибо за информацию. Треугольник и свип так и не удаётся запустить.

Попробовал посылать стринг как у Вас.
Отсылаю строку 0x23 0x9C 0xC4 0x20 0x00 на выходе синус 1000Гц
Отсылаю строку 0x23 0x37 0x89 0x41 0x00 на выходе синус 2000Гц
Отсылаю строку 0x83 0x9C 0xC4 0x20 0x00 на выходе синус 1000Гц
Отсылаю строку 0x83 0x37 0x89 0x41 0x00 на выходе синус 2000Гц

Ниже скрин терминала и снифера.

Со свипом тоже не получается , нет качания частоты я посылал стринг:
0x02 0x00 0x00 0x00 0x00 0x29 0xC5 0x20 0x00 0x00 0x49 0xC5 0x20 0x00 0x00 0x89 0x89 0x41 0x00 0x00
После этого контроллер вообще перестают воспринимать команды пока не сбросишь питание.

 

GM: Для контроля линии связи самый первый пакет посылается обратно, после этого исполняется.
У меня первый пакет возвращается, но не выполняется. Т.е. чтоб изменить частоту после включения нужно пакет послать как минимум два раза.

 

Похоже контроллер "подвисает" (перестаёт реагировать на команды) после получения стринга 0x02 0x00 0x00 0x00 0x00.
Т.е. посылаю:
0x02 0x00 0x00 0x00 0x00 стоп ген.1
0x08 0x00 0x00 0x00 0x00 стоп свип1
0x23 0x9C 0xC4 0x20 0x00 1000Гц
команда не выполняется.

Вернуть его к жизни можно только сбросом питания.

 

madgrey: Вы ж все таки прибор измерительный конструируете, поэтому не стоит закладывать в ЦАПовые резисторы погрешность в пол пролета того чугунного моста...

Ну что Вы... Всё по науке!

Нашёл вчера, как вычислять погрешность резистров в зависимости от количества разрядов:
Rd/R=2^-n/2, где:

Rd - погрешность,
R - сопротивление,
n - количество разрядов.

Получается, что для нашего случая (разрядов 8, матрица 1КОм и 2КОм):
Rd=2000*2^-8/2=3.9Ом, или 0,2%.
То есть, довольно точные резисторы должны быть.

Но, скажем, до 5-го разряда включительно требуется допуск не менее 1.5%.
А для 1-го - аж 25%, по этому-то у меня и не удавалось толком заметить нарушение линейности при изменении сопротивления на +-30%.
Погрешность находилась в середине младшего значащего разряда. Что бы заметить разницу, нужно было брать не меньше значения для этого разряда, то есть - +-50%.

Не страшно и то, что для старших разрядов нужны резисторы с точностью 0,2%, так как из взятых наугад нескольких резисторов с допуском 1% реальное значение сопротивления уложилось в 0,4%. То есть, по крайней мере вплоть до 7-го разряда резисторы можно найти.
Интересно, что взятые наугад ресколько резисторов с допуском 5% уложились в тот же интервал - 0,5%...

Если ещё учесть, что нам важно не абсолютное значение сопротивления а относительное, то купив полоску одинаковых резисторов, пожалуй, запросто уложимся в допуск.

 

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

А осциллограмму?..
Сам на него присматривался, на случай, если не найду что-то посовременнее.

smg123: А фильтр проверки не выдержал.

В смысле? Сгорел, что ли, от постоянного тока?..