Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AD9856, способ подачи входных данных
Форум разработчиков электроники ELECTRONIX.ru > Аналоговая и цифровая техника, прикладная электроника > Цифровые схемы, высокоскоростные ЦС
Anton75
Никак не разберусь с диаграммами подачи входных данных. Например, 12-bit input mode, Classic burst timing (в даташите на стр.18 рисунок 24)
Из рисунка видно, что сигнал TxENABLE переходит в состояние логической единицы и в нем сохраняется постоянно. Ниже нарисованы меняющиеся данные I и Q.
Неясно, каким образом микросхема "понимает", когда на вход подано I, а когда Q. Ведь никакого синхронизирующего сигнала для этого нет, кроме, возможно, тактовой частоты.
Значит ли это, что я обязан менять I и Q с частотой следования тактов? Первый фронт тактового импульса после поднятия TxENABLE запишет данные в I, второй - в Q, и так далее?

Задача - получить обычную амплитудную модуляцию. Для этого мне нужно, чтобы I менялось в соответствии с моими данными (довольно медленными - звуковая частота), а Q всегда было равно нулю.
Подскажите, как этого лучше добиться? Думаю, лучше всего здесь подходит Continuous Mode и Alternate TxENABLE timing (рис.25)?
dm.pogrebnoy
Емнип, после подъема TxEnable нужно выдавать на каждом такте компоненты с чередованием и дальше придерживатся этого порядка, до следующего подъема TxEnable, т.е. придерживаться временной диаграммы 24, как она нарисована. Впринципе оба варианта имеют свои достоинства и недостатки, но второй вариант выглядит более наглядным.
Anton75
Внезапно осознал, что для получения простой АМ необязательно разделять I и Q, можно давать одно и то же мгновенное значение огибающей сразу в оба канала, это приведет к выигрышу в уровне выходного сигнала, поскольку максимальное значение sin(x)+cos(x) больше единицы. Однако, с вопросом разделения данных хочется разобраться.

Цитата(dm.pogrebnoy @ Apr 20 2013, 00:41) *
выдавать на каждом такте компоненты с чередованием


Т.е. на первый такт после подъема TxENABLE выдаю I, на второй Q, и так далее?

Цитата(dm.pogrebnoy @ Apr 20 2013, 00:41) *
придерживаться временной диаграммы 24, как она нарисована


В том то и дело, что тактовый сигнал там не нарисован, потому и возник вопрос. Не вспомните, по фронту или по срезу тактового сигнала происходит запись? А если я использую внутренний умножитель частоты, то к тактам не привязаться?
shf_05
точно привязываться к тактовым сигналам не надо - в даташите пишут примерно по середине времени пока на входах висит I или Q компонента данных идет захват во внутренние регистры. см стр. 16 последний абзац и стр.17 первый абзац.
я сверхточно (точнее чем 0,01 от data valifd time) ничего не синхронизировал- и в том и в др. способе все работало без проблем, гланое данные подавать примерно в одно и то же время и заранее, тогда внутренняя схема синхронизации будет защелкивать данные куда надо.
я использовал ПЛИС, с нее данные висели на входах 9856, если напрямую к контроллеру, то имхо - только через дополгнительные D триггеры получится, т.е. прямо на шину данных не повесить.
Anton75
Цитата(shf_05 @ Apr 22 2013, 21:10) *
точно привязываться к тактовым сигналам не надо - в даташите пишут примерно по середине времени пока на входах висит I или Q компонента данных идет захват во внутренние регистры. см стр. 16 последний абзац и стр.17 первый абзац.
я сверхточно (точнее чем 0,01 от data valifd time) ничего не синхронизировал- и в том и в др. способе все работало без проблем, гланое данные подавать примерно в одно и то же время и заранее, тогда внутренняя схема синхронизации будет защелкивать данные куда надо.
я использовал ПЛИС, с нее данные висели на входах 9856, если напрямую к контроллеру, то имхо - только через дополгнительные D триггеры получится, т.е. прямо на шину данных не повесить.


А почему не повесить? Контроллер не одновременно все биты изменяет при записи в порт?
Т. е. AD9856 сама как-то определяет, что данные изменились, и записывает новоые данные после каждого изменения? Не очень понимаю, как это может работать. А если, например, после записи Q0 нужно записать точно такое же значение в I1, как быть? Данные не изменятся, как микросхема "поймет", что надо снова записать то же самое?
Сейчас в режиме Burst Mode и 12-битных входных слов управляю сигналами вручную: выставляю на шине данных определенное значение и поднимаю TxENABLE (т.е. записываю значение в I), и смотрю сигнал на выходе. Амплитуда увеличивается при изменении данных от 0 до 2048, а от 2048 до 4096 почему-то начинает падать.

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

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

посмотрите диаграммы ведь есть и для того и для другого метода записи данных!

ну наверно 12 бит это со знаком, само число то 11бит будет? - больше 2048 выходит это "переполнение типа"?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.