DmitryR 0 11 апреля, 2009 Опубликовано 11 апреля, 2009 · Жалоба Да дело ещё и в том, что АЦП почти всегда придавлено энерго сбережением - при этом с неё клоки не идут А тогда все ясно: если у DCM клок на входе останавливался - ее обязательно надо сбрасывать (не забыв подождать, пока PLL в АЦП раскачается), иначе она может глючить. Причем DCM может подло не сбрасывать LOCK, когда на входе пропала частота, а просто тихо глючить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grumbler_2002 0 12 апреля, 2009 Опубликовано 12 апреля, 2009 · Жалоба Ну, даташит обещает, что сигнал LOCKED поднимется после захвата входной частоты, а упадет по сигналу RST. При пропаже входной частоты нужно выставить сигнал RST, тогда захват отработает правильно. Входную частоту можно отследить по сигналу DO[1], который "CLKIN stopped". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DmitryR 0 13 апреля, 2009 Опубликовано 13 апреля, 2009 · Жалоба Во-первых, были какие-то ерраты по поводу того, что DO[1] при каких-то условиях не срабатывает. Во-вторых, RST надо держать до появления CLKIN и еще 200 ms (ug070 стр. 61). А ресет в свою очередь нельзя держать более 10 секунд (http://www.xilinx.com/support/answers/21127.htm). Еще см. атрибут DCM_AUTOCALIBRATION. Вобщем, даташит обещает, а практика показывает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grumbler_2002 0 13 апреля, 2009 Опубликовано 13 апреля, 2009 · Жалоба Не согласен. Если даташит не обещает снятия сигнала LOCKED после пропажи входной тактовой частоты, то надеяться на это несколько наивно. Более того, если после появления в течение определенного времени входной сигнал останется в фазе, то LOCKED останется в захвате. Единственно верный сигнал DCM в этом случае как раз DO[1]. Если Вам не нравится этот сигнал по какой-либо причине, то пожалуйста - ISE предлагает на все случаи жизни соответствующий макрос, который и решает все проблемы. Не знаю, какая у Вас там практика, но ничего шаманского с DCM не происходит и делать магические пассы руками не надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rv3dll 0 14 апреля, 2009 Опубликовано 14 апреля, 2009 · Жалоба да блин шаманство - существуют платы , которые не глючат в принципе существуют платы которые глючат иногда. разници никакой - я уже описывал проблему и нацарапал автомат, который её решает и сбрасываю DCM . дожидаюсь захвата гружу сдвиг дожидаюсь выполнения. конфигурирую iserdes и проверяю плохо - делаю заново. 30 плат из 32 всегда с 1го раза 2 тупят и со второго и с третьего. так и живём уже год. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grumbler_2002 0 14 апреля, 2009 Опубликовано 14 апреля, 2009 · Жалоба Ну, если Вам кажется, что проблема в DCM, то давайте еще раз пробежимся по пунктам для ясности: 1) Какой speed grade у ПЛИСа? 2) Проверяли ли Вы джиттер и скважность тактовой частоты, пришедшей на ПЛИС? 3) Проверяли ли Вы качество питания? Требования к питанию достаточно жесткие, а потребление у DCM на таких частотах должно быть приличное. 4) Хватает ли Вам задержки в 7 нс для подстройки клока? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rv3dll 0 15 апреля, 2009 Опубликовано 15 апреля, 2009 · Жалоба 1. 11 2. скважность по осциллографу 50 процентов, джиттер померить нечем 3. питание и 1.2 и 2.5 и 3.3 вроде чистое 4. про задержку не понял?? имеется ввиду сдвиг фазы DCM??? если да, то хватает - типовое значение сдвига 150 шагов сдвига (работает от 50 до 250) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rloc 57 15 апреля, 2009 Опубликовано 15 апреля, 2009 · Жалоба 3) Проверяли ли Вы качество питания? Требования к питанию достаточно жесткие, а потребление у DCM на таких частотах должно быть приличное. Потребление DCM от частоты не зависит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grumbler_2002 0 15 апреля, 2009 Опубликовано 15 апреля, 2009 · Жалоба Тогда дальше. Правильно я понял, что на вход DCM подается 50 МГц, с выхода 1Х снимается 50 МГц, с выхода 2Х снимается 100 МГц, а с выхода FX снимается 300 МГц? В каком режиме работает DCM: Low Frequency или High Frequency? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grumbler_2002 0 15 апреля, 2009 Опубликовано 15 апреля, 2009 · Жалоба 4. про задержку не понял?? имеется ввиду сдвиг фазы DCM??? если да, то хватает - типовое значение сдвига 150 шагов сдвига (работает от 50 до 250) Если я не ошибаюсь, то для входной частоты 50 МГц максимальное значение сдвига будет 179. БОльшие задать будет можно, но сдвиг будет ограничен этим значением. Поправьте меня, если что не так. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rv3dll 0 16 апреля, 2009 Опубликовано 16 апреля, 2009 · Жалоба в системе 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Grumbler_2002 0 16 апреля, 2009 Опубликовано 16 апреля, 2009 · Жалоба Че то в голову ничего толкового не приходит. Можно ли сделать клок с АЦП непрерывным в тестовых целях? Потом, у Вас же есть цифра на 300 МГц - залейте непрерывный битовый поток в память и рассмотрите его при сбое. Тогда картина немного прояснится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rv3dll 0 17 апреля, 2009 Опубликовано 17 апреля, 2009 (изменено) · Жалоба Уже давно просмотрел и проанализировал и кое - что прояснил. при отсутствии сигнала шумит около уровня 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 Изменено 17 апреля, 2009 пользователем rv3dll(lex) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться