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

Непонятная проблема с LVDS

Да дело ещё и в том, что АЦП почти всегда придавлено энерго сбережением - при этом с неё клоки не идут

А тогда все ясно: если у DCM клок на входе останавливался - ее обязательно надо сбрасывать (не забыв подождать, пока PLL в АЦП раскачается), иначе она может глючить. Причем DCM может подло не сбрасывать LOCK, когда на входе пропала частота, а просто тихо глючить.

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


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

Ну, даташит обещает, что сигнал LOCKED поднимется после захвата входной частоты, а упадет по сигналу RST. При пропаже входной частоты нужно выставить сигнал RST, тогда захват отработает правильно. Входную частоту можно отследить по сигналу DO[1], который "CLKIN stopped".

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


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

Во-первых, были какие-то ерраты по поводу того, что DO[1] при каких-то условиях не срабатывает. Во-вторых, RST надо держать до появления CLKIN и еще 200 ms (ug070 стр. 61). А ресет в свою очередь нельзя держать более 10 секунд (http://www.xilinx.com/support/answers/21127.htm). Еще см. атрибут DCM_AUTOCALIBRATION. Вобщем, даташит обещает, а практика показывает.

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


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

Не согласен. Если даташит не обещает снятия сигнала LOCKED после пропажи входной тактовой частоты, то надеяться на это несколько наивно. Более того, если после появления в течение определенного времени входной сигнал останется в фазе, то LOCKED останется в захвате. Единственно верный сигнал DCM в этом случае как раз DO[1]. Если Вам не нравится этот сигнал по какой-либо причине, то пожалуйста - ISE предлагает на все случаи жизни соответствующий макрос, который и решает все проблемы. Не знаю, какая у Вас там практика, но ничего шаманского с DCM не происходит и делать магические пассы руками не надо.

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


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

да блин шаманство - существуют платы , которые не глючат в принципе

 

существуют платы которые глючат иногда.

 

разници никакой - я уже описывал проблему и нацарапал автомат, который её решает и сбрасываю DCM . дожидаюсь захвата гружу сдвиг дожидаюсь выполнения. конфигурирую iserdes и проверяю

 

плохо - делаю заново. 30 плат из 32 всегда с 1го раза 2 тупят и со второго и с третьего. так и живём уже год.

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


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

Ну, если Вам кажется, что проблема в DCM, то давайте еще раз пробежимся по пунктам для ясности:

1) Какой speed grade у ПЛИСа?

2) Проверяли ли Вы джиттер и скважность тактовой частоты, пришедшей на ПЛИС?

3) Проверяли ли Вы качество питания? Требования к питанию достаточно жесткие, а потребление у DCM на таких частотах должно быть приличное.

4) Хватает ли Вам задержки в 7 нс для подстройки клока?

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


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

1. 11

2. скважность по осциллографу 50 процентов, джиттер померить нечем

3. питание и 1.2 и 2.5 и 3.3 вроде чистое

4. про задержку не понял?? имеется ввиду сдвиг фазы DCM??? если да, то хватает - типовое значение сдвига 150 шагов сдвига (работает от 50 до 250)

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


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

3) Проверяли ли Вы качество питания? Требования к питанию достаточно жесткие, а потребление у DCM на таких частотах должно быть приличное.

Потребление DCM от частоты не зависит.

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


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

Тогда дальше. Правильно я понял, что на вход DCM подается 50 МГц, с выхода 1Х снимается 50 МГц, с выхода 2Х снимается 100 МГц, а с выхода FX снимается 300 МГц? В каком режиме работает DCM: Low Frequency или High Frequency?

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


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

4. про задержку не понял?? имеется ввиду сдвиг фазы DCM??? если да, то хватает - типовое значение сдвига 150 шагов сдвига (работает от 50 до 250)

 

Если я не ошибаюсь, то для входной частоты 50 МГц максимальное значение сдвига будет 179. БОльшие задать будет можно, но сдвиг будет ограничен этим значением. Поправьте меня, если что не так.

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


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

в системе 2 клок менеджера

 

построено всё так.

 

со стабильного генератора, стоящего рядом с ацп идёт клок 50 мегагерц и подаётся для тактирования собственно АЦП и далее на клоковый вход плис и в ней на DCM1.

 

параметры DCM1 установлены такие, какими их ставит визард для 403 или 405 отладочной платы, при входном клоке 50 мегагерц

 

DCM1 выход 0 - 50 мегагерц обработчик 2х - 100 шина fx - 300 процессор

 

также с ацп на плис идёт 6 дифф линий (4 данных) , кадровый и битовый клоки 50 и 300 соответственно.

 

разводка платы сделана неверно и использовать BUFR не удаётся, поэтому

 

битовый клок подаётся на DCM2 с которого получаем 300 и делённую 50 имитируя сигналы, получаемые с помощью BUFR, и эти сигналы подаём на систему десереализации

 

параметры DCM2

 

BEGIN my_dcm_adv

PARAMETER INSTANCE = dcm_lvds

PARAMETER HW_VER = 1.00.a

PARAMETER C_CLK0_BUF = TRUE

# PARAMETER C_CLK90_BUF = TRUE

PARAMETER C_CLK180_BUF = TRUE

# PARAMETER C_CLK270_BUF = TRUE

PARAMETER C_CLKDV_BUF = TRUE

# PARAMETER C_CLKFX_BUF = TRUE

# PARAMETER C_CLKFX_DIVIDE = 3

# PARAMETER C_CLKFX_MULTIPLY = 2

PARAMETER C_DESKEW_ADJUST = SOURCE_SYNCHRONOUS

PARAMETER C_CLKDV_DIVIDE = 6.0

PARAMETER C_CLKIN_PERIOD = 3.300000

PARAMETER C_CLK_FEEDBACK = 1X

PARAMETER C_DFS_FREQUENCY_MODE = HIGH

PARAMETER C_DLL_FREQUENCY_MODE = HIGH

PARAMETER C_PHASE_SHIFT = 0

PARAMETER C_CLKOUT_PHASE_SHIFT = DIRECT

# PARAMETER C_CLKFX_MULTIPLY = 2

PORT CLKIN = D_clk_to_dcm

PORT CLK0 = pll_out_0

# PORT CLK90 = pll_out_90

PORT CLK180 = pll_out_180

# PORT CLK270 = pll_out_270

PORT CLKFB = pll_out_0

PORT CLKDV = div6_dclk

PORT RST = dcm_rst

PORT LOCKED = dcm_lvds_lock

PORT DADDR = dcm_daddr

PORT DCLK = dcm_dclk

PORT DEN = dcm_den

PORT DI = dcm_di

PORT DWE = dcm_dwe

PORT DRDY = dcm_drdy

# 220109

PORT PSEN = net_gnd

PORT PSCLK = dcm_dclk

PORT PSDONE = dcm_psdone

END

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


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

Че то в голову ничего толкового не приходит. Можно ли сделать клок с АЦП непрерывным в тестовых целях? Потом, у Вас же есть цифра на 300 МГц - залейте непрерывный битовый поток в память и рассмотрите его при сбое. Тогда картина немного прояснится.

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


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

Уже давно просмотрел и проанализировал и кое - что прояснил.

при отсутствии сигнала шумит около уровня 2048

при переходе через 2048 разом меняются все биты и выставляется один старщий

фактически-же в этот момент число меняется на 3412 или 682 ну и плюс минус пару разрядов шума.

 

оба этих отклонения имеют различие с 2048 в примерно 1364 единици

 

разложим двоично 0101010 - то есть каждый второй не изменяется, а остаётся старым значением.

 

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

 

также и при обратном переходе в область ниже 2048.

 

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

 

помогает пересброс DCM - опять-же на большинстве плат этого не требуется.

на некоторых 1 раз из 100 включений начинает работать со второго раза на единицах почти каждое включение требует 3-7 перезапусков.

 

если изменить параметр PARAMETER C_DESKEW_ADJUST = SOURCE_SYNCHRONOUS на систем - неправильное включение будет на всех платах 70 раз из 100

 

файл данных даю

int.txt

Изменено пользователем rv3dll(lex)

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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