реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Приём LVDS с динамической подстройкой фазы, Как это реализовать на Altera, не имея спец. блоков DPA
Flip-fl0p
сообщение Jun 26 2017, 12:28
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 409
Регистрация: 11-06-13
Пользователь №: 77 140



Отпишусь о результатах.
Вроде получилось реализовать DPA на сдвигах фазы клока disco.gif . Как минимум подстройка происходит, и на экране появляется изображение. Правда я пока вывожу только данные с одной линии. по этому на экране по большей части полная чушь, но очертания букв видны. Как доделаю проект, могу предоставить исходники.
UPD. Немного наврал. Пока не динамическая подстройка, а автоматическая подстройка при включении на центр Sample window. Динамическую пока не сделал.

Сообщение отредактировал Flip-fl0p - Jun 26 2017, 12:44
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 26 2017, 14:51
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 308
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Расскажите принцип работы системы, для каждой линии отдельный выход PLL используется?
Go to the top of the page
 
+Quote Post
Leka
сообщение Jun 26 2017, 15:21
Сообщение #18


Знающий
****

Группа: Участник
Сообщений: 961
Регистрация: 30-09-05
Пользователь №: 9 118



Частоты какие?
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Jun 26 2017, 15:34
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 409
Регистрация: 11-06-13
Пользователь №: 77 140



Цитата(doom13 @ Jun 26 2017, 17:51) *
Расскажите принцип работы системы, для каждой линии отдельный выход PLL используется?

Да. Для каждой линии отдельный вывод PLL, отдельный модуль ALTLVDS_RX, отдельный автомат калибровки. Хотя вывод rx_data_align (для организации bitslip) я не применяю. Сдвигаюсь на нужный бит я при помощи сдвигов фаз частоты.
На данный момент думаю над организации калибровки всех трех линий: основная проблема в том, что PLL может в один момент времени сдвигать только 1 частоту, поэтому необходимо придумать механизм калибровки всех линий.

Цитата(Leka @ Jun 26 2017, 18:21) *
Частоты какие?

Пока частота данных 40 МГц. В посылке 10 бит, поэтому частота десериализации 400 МГц.
Частота VCO PLL так-же получилась 400 МГц, поэтому двигать могу 1\8 этой частоты , т.е порядка 315 пс.
Была бы больше частота VCO была бы лучше калибровка, но я почему-то не могу найти в GUI настройку "enable phase shift step resolution"
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 26 2017, 17:44
Сообщение #20


Профессионал
*****

Группа: Свой
Сообщений: 1 308
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



А какую-нибудь Альтеровскую доку по этой теме нашли?
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Jun 26 2017, 18:01
Сообщение #21


Местный
***

Группа: Участник
Сообщений: 409
Регистрация: 11-06-13
Пользователь №: 77 140



Цитата(doom13 @ Jun 26 2017, 20:44) *
А какую-нибудь Альтеровскую доку по этой теме нашли?

К сожалению нет.
За основу брал доку от xilinx (xapp460), сам принцип определения границ бита, хотя и его несколько по-другому реализовал. Но пока у меня проект совсем-совсем сырой. Не удивлюсь, что переделок будет ещё очень много.
Альтеровскую доку an433, я не очень понял. Думаю потом поглубже изучить её. Как я понял, там не рассматривается вариант, когда соотношения фазы частоты и данных не совпадает и может быть практически любым, и заранее неизвестным, как в случае приема DVI.
Go to the top of the page
 
+Quote Post
Leka
сообщение Jun 26 2017, 18:35
Сообщение #22


Знающий
****

Группа: Участник
Сообщений: 961
Регистрация: 30-09-05
Пользователь №: 9 118



Цитата(Flip-fl0p @ Jun 26 2017, 18:34) *
Пока частота данных 40 МГц. В посылке 10 бит, поэтому частота десериализации 400 МГц.

Имхо. Выбросить ALTLVDS_RX, и самому все написать.
Клок приемника немного сдвинуть по частоте относительно клока передатчика, настолько, чтобы гарантированно сохранялся знак разностной частоты.
Принимать по 2 каналам с постоянным сдвигом по фазе, можно выделить и усреднить биения, по ним и синхронизироваться с передатчиком, выбирая нужный канал.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Jun 27 2017, 11:08
Сообщение #23


Местный
***

Группа: Участник
Сообщений: 409
Регистрация: 11-06-13
Пользователь №: 77 140



Цитата(Leka @ Jun 26 2017, 21:35) *
Имхо. Выбросить ALTLVDS_RX, и самому все написать.
Клок приемника немного сдвинуть по частоте относительно клока передатчика, настолько, чтобы гарантированно сохранялся знак разностной частоты.
Принимать по 2 каналам с постоянным сдвигом по фазе, можно выделить и усреднить биения, по ним и синхронизироваться с передатчиком, выбирая нужный канал.

Да действительно ALTLVDS_RX проще выбросить нафиг, с ним одна морока. Поскольку этот гад требует для сигналов тактирования и разрешения вставлять специальный буфер между собой и PLL. Единственный плюс это то, что по даташиту ALTLVDS_RX умеет работать со скоростью 800Mpbs. На простых регистрах не думаю, что смогу достичь такой скорости. Тут думаю можно ускорить приём применяя DDR регистры....
Что-бы не думать над фазировкой клоков, я применяю FIFO для передачи между доменами, поскольку в моём случае фаза постоянно меняется....
Цитата
Принимать по 2 каналам с постоянным сдвигом по фазе, можно выделить и усреднить биения, по ним и синхронизироваться с передатчиком, выбирая нужный канал.

Вот тут можно чуть поподробнее объяснить принцип ? Если честно я не очень понял Вас.
UPD
Пока работает без ALTLVDS_RX. Приёмник свой написал.

Сообщение отредактировал Flip-fl0p - Jun 27 2017, 11:17
Go to the top of the page
 
+Quote Post
Leka
сообщение Jun 27 2017, 17:31
Сообщение #24


Знающий
****

Группа: Участник
Сообщений: 961
Регистрация: 30-09-05
Пользователь №: 9 118



A,B - сдвинутые по времени выборки, XOR дает биения, которые надо усреднить и использовать для коммутации A,B на выход.
"Скольжение" всегда в одну сторону, если разностная частота не меняет знак.
Использовал этот принцип в приемнике 100base-TX.

Когда делал 100base-TX, динамически двигать фазу PLL не умел.
Со сдвигом фазы можно добавить синхронный канал с динамическим сдвигом фазы.

Сообщение отредактировал Leka - Jun 27 2017, 17:25
Прикрепленные изображения
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Jun 27 2017, 19:35
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 409
Регистрация: 11-06-13
Пользователь №: 77 140



Цитата(Leka @ Jun 27 2017, 20:31) *
A,B - сдвинутые по времени выборки, XOR дает биения, которые надо усреднить и использовать для коммутации A,B на выход.
"Скольжение" всегда в одну сторону, если разностная частота не меняет знак.
Использовал этот принцип в приемнике 100base-TX.

Когда делал 100base-TX, динамически двигать фазу PLL не умел.
Со сдвигом фазы можно добавить синхронный канал с динамическим сдвигом фазы.

Спасибо ! Интересная задумка. Подумаю на досуге.
А можете порекомендовать какую-нибудь литературу где про такие вот интересности рассказывается ?
Go to the top of the page
 
+Quote Post
Leka
сообщение Jun 28 2017, 15:03
Сообщение #26


Знающий
****

Группа: Участник
Сообщений: 961
Регистрация: 30-09-05
Пользователь №: 9 118



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

Сообщение отредактировал Leka - Jun 28 2017, 15:06
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Jun 29 2017, 19:58
Сообщение #27


Местный
***

Группа: Участник
Сообщений: 409
Регистрация: 11-06-13
Пользователь №: 77 140



Итак господа. Отпишусь о результатах. DVI приёмник работает, калибруется. Приём сигнала стабильный, и по прошествии несколько часов не сбивается. Но принимает данные некорректно wacko.gif . Т.е. изображение принимается, буквы, цифры отчетливо видны, но в цветах полная неразбериха. Либо я TMDS decoder неправильно написал, либо данные в DVI передаются не в формате RGB. Либо ещё что-то. Что странно, картина очень похожа на то, что разряды перепутаны, старший с младшим... буду проверять. В процессе проверки нашел ошибку в datasheet на плату, там перепутали разряды ЦАП для вывода VGA.
Подкиньте идею как проверить корректность приема ?
Есть у меня смутные подозрения что данные передаются не в RGB а в YCbCr. Завтра с утра постараюсь выложить картинку того, как принимаются данные. А может на свежую голову ещё какое решение придет.
А если подскажите каким битом вперед передаются данные(младшим или старшим), то было бы вообще отлично. DVI spec 1.0 уже давно глаза мозолит, может и не заметил очевидной информации.

Сообщение отредактировал Flip-fl0p - Jun 29 2017, 20:08
Go to the top of the page
 
+Quote Post
dvladim
сообщение Jul 1 2017, 10:43
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 623
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



Цитата(Flip-fl0p @ Jun 26 2017, 18:34) *
Частота VCO PLL так-же получилась 400 МГц, поэтому двигать могу 1\8 этой частоты , т.е порядка 315 пс.
Была бы больше частота VCO была бы лучше калибровка, но я почему-то не могу найти в GUI настройку "enable phase shift step resolution"

Выставьте вручную множитель и делитель PLL. Таким образом сможете повысить частоту VCO и разрешение сдвига фаз.
Go to the top of the page
 
+Quote Post
Flip-fl0p
сообщение Jul 4 2017, 10:35
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 409
Регистрация: 11-06-13
Пользователь №: 77 140



Итак. Мучения с DVI походят к концу. Сегодня получил стабильное изображение с корректными цветами.
Очень долго времени не мог разобраться с некорректным отображением цветов по ряду причин:
1. Я принимал данные неправильно начиная со старшего. А данные передаются начиная с младшего бита.
2. В спецификации DVI 1.0 контрольные слова не соответствуют тому, что передается на самом деле. Контрольные слова соответствуют спецификации на HDMI.
3. Так совпало, что с неправильным приёмом данных, и с неправильными контрольными словами я получил стабильное изображение с некорректными цветами... Как по мне, так ошибка очень неочевидная. Поскольку с неправильным приёмом я получил правильные тайминги кадровой и строчной синхронизации для вывода на VGA...
Думаю, как до "ума" доведу проект выложу его на Guthub.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 5 2017, 12:52
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 3 241
Регистрация: 13-02-07
Из: 49°25′58″ 11°53′5″
Пользователь №: 25 329



Цитата(Flip-fl0p @ Jul 4 2017, 13:35) *
...как до "ума" доведу проект выложу его на Guthub.

Было бы интересно взглянуть
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th October 2017 - 05:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01328 секунд с 7
ELECTRONIX ©2004-2016