|
Синтезатор частоты, Как задействовать ЦАП? |
|
|
|
Jan 24 2011, 11:09
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 20-01-11
Из: Махачкала
Пользователь №: 62 364

|
Добрый день. Есть Altera Cyclone III Starter Board и THDB-ADA. Мне надо научиться работать с этой плиской. Работаю в Quartus II. Сейчас работаю над тестированием работы АЦП и ЦАП. Сперва - ЦАП. Надо на выходе ЦАПа получить синусоиду, которую надо зафиксировать осциллографом. Для этого синус надо подать на цап в цифровом виде... На THDB-ADA есть AD9767. Подсказали сгенерировать синус на плиске, и подать ее на цап. Сказали попробовать DDS. Почитал про это на 'http://rf.atnn.ru/s6/DDS_1.htm' и еще кое-где. По схеме получается, что на плис я собираю регистр, аккумулятор фазы, ПЗУ, и использую clock на самой плате StarterBoard. И должен отправить всё это на THDB-ADA в ЦАП. 1. Добавил в схему lpm_add_sub и lpm_ff (аккум-р фазы) и lpm_rom (ПЗУ). 2. У пзу есть файл sin_tab.mif, куда я записал в ячейки 90 значений синуса в hexadecimal-формате. 3. На рисунке (см. аттач.) видны все выходы с ПЗУ, которые пойдут с StarterKit через HSMC на THDB-ADA и далее на параллельный вход AD9767. Как clock_50MHz с платы плиски отправить на THDB-ADA? И вроде надо как-то энейблить этот цап? Кто делал или понимает - подскажите. P.s. Здесь на форуме была немного открыта подобная тема, но что-то она осталась непродолженной...
Эскизы прикрепленных изображений
|
|
|
|
3 страниц
< 1 2 3
|
 |
Ответов
(30 - 41)
|
Feb 2 2011, 06:21
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 20-01-11
Из: Махачкала
Пользователь №: 62 364

|
Цитата(ViKo) А вы поменяйте местами, что подаете в ЦАПы. ЦАП у меня один. Каналы разные. А сигнал один и и тот же и подается параллельно на оба канала ЦАПа. Цитата(vadimuzzz) если ТС покажет/посмотрит сам сигналы в цифровом виде (в том же сигналтапе), то вопросы отпадут. Это что-то типа vecotr waveform? Я не смог там просимулировать систему.
|
|
|
|
|
Feb 2 2011, 08:03
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 20-01-11
Из: Махачкала
Пользователь №: 62 364

|
Просимулировал. Все такты на месте. Биты каналов ЦАПа один-в-один совпадают. Значит сам ЦАП как-то неправильно, или неодинаково их переводит.
|
|
|
|
|
Feb 4 2011, 12:32
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 20-01-11
Из: Махачкала
Пользователь №: 62 364

|
Цитата(ViKo @ Feb 4 2011, 10:30)  И какие новости за прошедшие два дня? Ничего хорошего  Перечитал еще и еще раз pdf'ку на ЦАП. Вроде два абсолютно одинаковых канала (по сути два параллельно работающих ЦАПа). В оба отправляю одни и те же данные - и всё равно на канале "B" искажение. Пробовал и разрядность менять. Не могу понять и поведение сигнала. Что происходит с ним? Переполнение, обрезка, потеря..? Что касается симулятора. Сначала сделал режим "Functional", потом "Timing". В функц-м режиме всё так, как должно выглядеть. Сверял по таблице синусов. Т.к. это сигнал на ПЛИС, то возможно искажения появляются после этого (ближе к самому ЦАПу или же в нем). Во втором режиме вообще интересно. Ладно то, что не все биты одновременно приходят. Но там вообще не те биты, которые нужны. Из рисунка видно, что сигналы несколько раз "попрыгают", а потом старшие переходят в "1", младшие в "0", а средние так и прыгают с частотой, равной половине тактовой... Не понятно. Мысль, что может быть дефект при пайке отпадает.
Эскизы прикрепленных изображений
|
|
|
|
|
Feb 7 2011, 07:12
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 20-01-11
Из: Махачкала
Пользователь №: 62 364

|
Упс. Ошибочка вышла. Исправил. И теперь показания и в "timing", и в "functional" одинаковые. В обоих каналах ЦАПа одинаковые биты.
Но это всё на плиске. Т.е. на ее выходе. А вот то, что происходит при попадании этого всего на ЦАП - происходит непонятое...
|
|
|
|
|
Feb 7 2011, 08:54
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 20-01-11
Из: Махачкала
Пользователь №: 62 364

|
По логике вещей - если для одного канала соблюдаются - значит и для другого должны быть... Я пошел искусственным путем. Я проанализировал синусоиду второго канала. Как я понял - полупериоды были смещены отн-но оси Х. Верхняя часть - вниз, а нижняя - вверх. Что я сделал. Я добавил компаратор и сумматор. Если значение выше оси Х - отнимал 5000(dec), если ниже - прибавлял 5000. Т.е. сместил полупериоды друг относительно друга.
Эскизы прикрепленных изображений
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|