Flip-fl0p 4 26 июня, 2017 Опубликовано 26 июня, 2017 (изменено) · Жалоба Отпишусь о результатах. Вроде получилось реализовать DPA на сдвигах фазы клока :disco: . Как минимум подстройка происходит, и на экране появляется изображение. Правда я пока вывожу только данные с одной линии. по этому на экране по большей части полная чушь, но очертания букв видны. Как доделаю проект, могу предоставить исходники. UPD. Немного наврал. Пока не динамическая подстройка, а автоматическая подстройка при включении на центр Sample window. Динамическую пока не сделал. Изменено 26 июня, 2017 пользователем Flip-fl0p Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 26 июня, 2017 Опубликовано 26 июня, 2017 · Жалоба Расскажите принцип работы системы, для каждой линии отдельный выход PLL используется? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 26 июня, 2017 Опубликовано 26 июня, 2017 · Жалоба Частоты какие? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 26 июня, 2017 Опубликовано 26 июня, 2017 · Жалоба Расскажите принцип работы системы, для каждой линии отдельный выход PLL используется? Да. Для каждой линии отдельный вывод PLL, отдельный модуль ALTLVDS_RX, отдельный автомат калибровки. Хотя вывод rx_data_align (для организации bitslip) я не применяю. Сдвигаюсь на нужный бит я при помощи сдвигов фаз частоты. На данный момент думаю над организации калибровки всех трех линий: основная проблема в том, что PLL может в один момент времени сдвигать только 1 частоту, поэтому необходимо придумать механизм калибровки всех линий. Частоты какие? Пока частота данных 40 МГц. В посылке 10 бит, поэтому частота десериализации 400 МГц. Частота VCO PLL так-же получилась 400 МГц, поэтому двигать могу 1\8 этой частоты , т.е порядка 315 пс. Была бы больше частота VCO была бы лучше калибровка, но я почему-то не могу найти в GUI настройку "enable phase shift step resolution" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
doom13 0 26 июня, 2017 Опубликовано 26 июня, 2017 · Жалоба А какую-нибудь Альтеровскую доку по этой теме нашли? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 26 июня, 2017 Опубликовано 26 июня, 2017 · Жалоба А какую-нибудь Альтеровскую доку по этой теме нашли? К сожалению нет. За основу брал доку от xilinx (xapp460), сам принцип определения границ бита, хотя и его несколько по-другому реализовал. Но пока у меня проект совсем-совсем сырой. Не удивлюсь, что переделок будет ещё очень много. Альтеровскую доку an433, я не очень понял. Думаю потом поглубже изучить её. Как я понял, там не рассматривается вариант, когда соотношения фазы частоты и данных не совпадает и может быть практически любым, и заранее неизвестным, как в случае приема DVI. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 26 июня, 2017 Опубликовано 26 июня, 2017 · Жалоба Пока частота данных 40 МГц. В посылке 10 бит, поэтому частота десериализации 400 МГц. Имхо. Выбросить ALTLVDS_RX, и самому все написать. Клок приемника немного сдвинуть по частоте относительно клока передатчика, настолько, чтобы гарантированно сохранялся знак разностной частоты. Принимать по 2 каналам с постоянным сдвигом по фазе, можно выделить и усреднить биения, по ним и синхронизироваться с передатчиком, выбирая нужный канал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 27 июня, 2017 Опубликовано 27 июня, 2017 (изменено) · Жалоба Имхо. Выбросить ALTLVDS_RX, и самому все написать. Клок приемника немного сдвинуть по частоте относительно клока передатчика, настолько, чтобы гарантированно сохранялся знак разностной частоты. Принимать по 2 каналам с постоянным сдвигом по фазе, можно выделить и усреднить биения, по ним и синхронизироваться с передатчиком, выбирая нужный канал. Да действительно ALTLVDS_RX проще выбросить нафиг, с ним одна морока. Поскольку этот гад требует для сигналов тактирования и разрешения вставлять специальный буфер между собой и PLL. Единственный плюс это то, что по даташиту ALTLVDS_RX умеет работать со скоростью 800Mpbs. На простых регистрах не думаю, что смогу достичь такой скорости. Тут думаю можно ускорить приём применяя DDR регистры.... Что-бы не думать над фазировкой клоков, я применяю FIFO для передачи между доменами, поскольку в моём случае фаза постоянно меняется.... Принимать по 2 каналам с постоянным сдвигом по фазе, можно выделить и усреднить биения, по ним и синхронизироваться с передатчиком, выбирая нужный канал. Вот тут можно чуть поподробнее объяснить принцип ? Если честно я не очень понял Вас. UPD Пока работает без ALTLVDS_RX. Приёмник свой написал. Изменено 27 июня, 2017 пользователем Flip-fl0p Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 27 июня, 2017 Опубликовано 27 июня, 2017 (изменено) · Жалоба A,B - сдвинутые по времени выборки, XOR дает биения, которые надо усреднить и использовать для коммутации A,B на выход. "Скольжение" всегда в одну сторону, если разностная частота не меняет знак. Использовал этот принцип в приемнике 100base-TX. Когда делал 100base-TX, динамически двигать фазу PLL не умел. Со сдвигом фазы можно добавить синхронный канал с динамическим сдвигом фазы. Изменено 27 июня, 2017 пользователем Leka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 27 июня, 2017 Опубликовано 27 июня, 2017 · Жалоба A,B - сдвинутые по времени выборки, XOR дает биения, которые надо усреднить и использовать для коммутации A,B на выход. "Скольжение" всегда в одну сторону, если разностная частота не меняет знак. Использовал этот принцип в приемнике 100base-TX. Когда делал 100base-TX, динамически двигать фазу PLL не умел. Со сдвигом фазы можно добавить синхронный канал с динамическим сдвигом фазы. Спасибо ! Интересная задумка. Подумаю на досуге. А можете порекомендовать какую-нибудь литературу где про такие вот интересности рассказывается ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 28 июня, 2017 Опубликовано 28 июня, 2017 (изменено) · Жалоба Тут просто стандартный метод выделения фронта + упор на ненулевую разностную частоту (такое не видел, но это вдвое все упрощает, имхо). Если частоты слишком высокие, и две выборки не помещаются в один битовый интервал, тогда можно анализировать биения пакетных ошибок (контрольные суммы и тп). Так тоже пробовал, работает. Изменено 28 июня, 2017 пользователем Leka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 29 июня, 2017 Опубликовано 29 июня, 2017 (изменено) · Жалоба Итак господа. Отпишусь о результатах. DVI приёмник работает, калибруется. Приём сигнала стабильный, и по прошествии несколько часов не сбивается. Но принимает данные некорректно . Т.е. изображение принимается, буквы, цифры отчетливо видны, но в цветах полная неразбериха. Либо я TMDS decoder неправильно написал, либо данные в DVI передаются не в формате RGB. Либо ещё что-то. Что странно, картина очень похожа на то, что разряды перепутаны, старший с младшим... буду проверять. В процессе проверки нашел ошибку в datasheet на плату, там перепутали разряды ЦАП для вывода VGA. Подкиньте идею как проверить корректность приема ? Есть у меня смутные подозрения что данные передаются не в RGB а в YCbCr. Завтра с утра постараюсь выложить картинку того, как принимаются данные. А может на свежую голову ещё какое решение придет. А если подскажите каким битом вперед передаются данные(младшим или старшим), то было бы вообще отлично. DVI spec 1.0 уже давно глаза мозолит, может и не заметил очевидной информации. Изменено 29 июня, 2017 пользователем Flip-fl0p Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dvladim 0 1 июля, 2017 Опубликовано 1 июля, 2017 · Жалоба Частота VCO PLL так-же получилась 400 МГц, поэтому двигать могу 1\8 этой частоты , т.е порядка 315 пс. Была бы больше частота VCO была бы лучше калибровка, но я почему-то не могу найти в GUI настройку "enable phase shift step resolution" Выставьте вручную множитель и делитель PLL. Таким образом сможете повысить частоту VCO и разрешение сдвига фаз. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flip-fl0p 4 4 июля, 2017 Опубликовано 4 июля, 2017 · Жалоба Итак. Мучения с DVI походят к концу. Сегодня получил стабильное изображение с корректными цветами. Очень долго времени не мог разобраться с некорректным отображением цветов по ряду причин: 1. Я принимал данные неправильно начиная со старшего. А данные передаются начиная с младшего бита. 2. В спецификации DVI 1.0 контрольные слова не соответствуют тому, что передается на самом деле. Контрольные слова соответствуют спецификации на HDMI. 3. Так совпало, что с неправильным приёмом данных, и с неправильными контрольными словами я получил стабильное изображение с некорректными цветами... Как по мне, так ошибка очень неочевидная. Поскольку с неправильным приёмом я получил правильные тайминги кадровой и строчной синхронизации для вывода на VGA... Думаю, как до "ума" доведу проект выложу его на Guthub. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kuzmi4 0 5 июля, 2017 Опубликовано 5 июля, 2017 · Жалоба ...как до "ума" доведу проект выложу его на Guthub. Было бы интересно взглянуть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться