Перейти к содержанию
    

AD9915 модуляция с параллельного порта

Стоит задача запустить модуляцию с параллельного порта на данной ДДСке. Она управляется с ПЛИСины. Контроллер в ПЛИСине на старте заполняет настроечные регистры и регистры ядра - амплитуды-частоты-фазы. Частота 756МГц, фаза нулевая, а амплитуда в процессе работы изменялась - через параллельный порт насовывались то синусоида, то ступенчатые переключения. и в процессе работы появляются периодические тычки. Допустим на границе 2 соседних уровней амплитуды - плавное, на несколько периодов, увеличение амплитуды ВЫШЕ уровня, на который переключаемся, и такое же плавное опускание до этого нового уровня (см. рис). Тычки появляются не на каждом переключении. На синусоиде тоже бывают подобные выбросы посреди синусоиды. Появление от прошивки к прошивке в разных местах (в разные моменты переключения). Но в пределах одной прошивки стабильно в одном и том же месте (на синусоиде - в одном месте в рамках периода, на ступенчатом переключении - на одних и тех же переходах)

 

собственно вопрос - что это, и как с этим бороться?

 

зы

при работе с профилями, в данной ДДСке, старшие товарищи столкнулись с тем, что в момент переключения профиля (выставление кода профиля на 4 пина), ДДСка переключалась с лагом. Допустим был выставлен код "0011". ДДСка сначала видела его как "0010", переключалсь на 2 профиль и только потом добегал нулевой бит и код воспринимался как "0011". Т.е. имел место некий рассинхрон бит на шине. Собственно мое предположение касательно параллельной шины был такое же - имеет место разбежка бит. В момент переключения где то в старших разрядах приходят единицы от нового значения, наслаиваются на старое и дают выброс, который больше нового значения. Которое, в свою очередь, больше чем было старое. На следующем такте шина выравнивается, на ней стабильное новое значение и диаграмма приходит в соответствие новому значению. Только не совсем понятно - почему изменение плавное, на несколько периодов несущей...

 

ззы

опора ДДСки 2ГГц, соответственно внутренняя рабочая частота - опора/16 - 125Мгц. ДДСка настроена на работу по фронту рабочей частоты (а не по ИО_апдейт). Т.е. значения с шины передаются в регистры на каждом такте

 

Безымянный.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 часов назад, MegaVolt сказал:

Изменения с одним изменившимся битом в коде отрабатывает верно?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 hours ago, GAYVER said:

старшие товарищи столкнулись с тем, что в момент переключения профиля (выставление кода профиля на 4 пина), ДДСка переключалась с лагом. Допустим был выставлен код "0011". ДДСка сначала видела его как "0010", переключалсь на 2 профиль и только потом добегал нулевой бит и код воспринимался как "0011". Т.е. имел место некий рассинхрон бит на шине. Собственно мое предположение касательно параллельной шины был такое же - имеет место разбежка бит. В момент переключения где то в старших разрядах приходят единицы от нового значения, наслаиваются на старое и дают выброс, который больше нового значения. Которое, в свою очередь, больше чем было старое. На следующем такте шина выравнивается, на ней стабильное новое значение и диаграмма приходит в соответствие новому значению. Только не совсем понятно - почему изменение плавное, на несколько периодов несущей...

 

а требования PARALLEL PORT TIMING и  Parallel Data Clock (SYNC_CLK) точно выполняются?

А плавности может не быть из-за того что в период символьной частоты данных не укладывается целое количество периодов моделируемой частоты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

26 минут назад, des00 сказал:

а требования PARALLEL PORT TIMING и  Parallel Data Clock (SYNC_CLK) точно выполняются?

Они не связаны. По крайней мере логически. PARALLEL PORT TIMING это про режим доступа к внутренним регистрам х00-1В (CFR1? CFR2, итд). При этом с параллельной шины используется только часть бит (адрес/данные/стробы). А параллельная модуляция - все биты параллельной шины идут напрямую в регистры ядра - амплитуды-частоты-фазы.

34 минуты назад, des00 сказал:

А плавности может не быть из-за того что в период символьной частоты данных не укладывается целое количество периодов моделируемой частоты.

Не совсем понял что тут имеется в виду под плавностью. В свете первого предложения - то что по параллельной шине идет несколько передач (1 значение - 2 или 4 передачи, в зависимости от настройки) с новым значением, но применяются они не когда будет принято последнее, а после окончания каждой передачи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, GAYVER сказал:

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

Вопрос был в изменении любого бита. Не обязательного младшего. Потому что звучала идея про то что проблема в том когда переключаются несколько бит и из-за глюков на шине происходит несколько загрузок разных значений. Вот и я предлагаю проверить работает ли всё когда изменяется только один бит. Т.е. должна быть чёткая ступенька. Если её нет проблема не в загрузке значения а в чём то другом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, GAYVER said:

Они не связаны. По крайней мере логически. PARALLEL PORT TIMING это про режим доступа к внутренним регистрам х00-1В (CFR1? CFR2, итд). При этом с параллельной шины используется только часть бит (адрес/данные/стробы). А параллельная модуляция - все биты параллельной шины идут напрямую в регистры ядра - амплитуды-частоты-фазы.

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

Quote

Не совсем понял что тут имеется в виду под плавностью. В свете первого предложения - то что по параллельной шине идет несколько передач (1 значение - 2 или 4 передачи, в зависимости от настройки) с новым значением, но применяются они не когда будет принято последнее, а после окончания каждой передачи?

 Ну в смысле не регулярные выбросы на синусе могут быть если параметры амплитуды/частоты меняются не синхронно с переходом через 0. На осциллографе будут выглядеть как скачки. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

32 минуты назад, des00 сказал:

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

Нет, коллеги не с времянками столкнулись. Они работали через профили. При старте системы контроллер заполнял все настроечные регистры (в том числе и регистры профилей) через последовательный интерфейс. Потом в процессе работы нужный профиль выбирали через отдельные пины ДДСки. И параллельный интерфейс и режим модуляции с параллельного порта - это разные вещи, не связанные между собой никак. Кроме того что используют параллельный порт

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

23 minutes ago, GAYVER said:

Нет, коллеги не с времянками столкнулись. Они работали через профили. При старте системы контроллер заполнял все настроечные регистры (в том числе и регистры профилей) через последовательный интерфейс. Потом в процессе работы нужный профиль выбирали через отдельные пины ДДСки. И параллельный интерфейс и режим модуляции с параллельного порта - это разные вещи, не связанные между собой никак. Кроме того что используют параллельный порт

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

upd

вместе с опытным системщиком пришли к выводу что эти выбросы дает фильтр, стоящий на плате между ДДС и ПЛИС

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...