|
Дифференциальные приёмники на Spartan 3 |
|
|
|
Sep 28 2006, 21:24
|
Частый гость
 
Группа: Новичок
Сообщений: 154
Регистрация: 7-03-06
Пользователь №: 15 051

|
Рассматривая примитивы Xilinx, столкнулась со следующей проблемой. Для Spartan 3/3E на сайте приведена следующая табличка (примитив IBUFDS): Inputs Outputs I IB O 0 0 No Change 0 1 0 1 0 1 1 1 No Change Ну, c 0 и 1 вроде бы всё понятно, а вот как понимать "No Change"? Не означает ли это, что в высокоимпедансном состоянии ресивер держит на цифровой линии предыдущее состояние? Если так, так польза данного устройства для межплатных и кабельных соединений кажется сомнительной; выдь обычно "нормальные" LVDS-устройства удерживают некий фиксированный уровень (как правило, 1) не только при разрыве линии, но и при коротком замыкании - см., в частности, продукцию Maxim. Есть ли у кого-то реальный опыт работы с данными ресиверами в качестве портов ввода-вывода, и если да, то как они ведут себя при обрыве, или закорачивании линии, а также выдаче на неё третьего состояния? Ведь судя по той же документации, OBUFTDS, имея отдельный вход ~enable, может это. Адрес документа - http://toolbox.xilinx.com/docsan/xilinx7/b...edl0025_17.html
Сообщение отредактировал dryadae - Sep 28 2006, 21:35
|
|
|
|
|
Sep 29 2006, 09:22
|
Частый гость
 
Группа: Новичок
Сообщений: 154
Регистрация: 7-03-06
Пользователь №: 15 051

|
Цитата(m_y @ Sep 29 2006, 09:46)  No change означает, что состояние выхода останется в предыдущем состоянии. Чтобы не было проблем при обрыве, или закорачивании линии, а также выдаче на неё третьего состояния можно использовать pullup или pulldown. То есть опознавать подобные ситуации - никак? Только pull-up до нейтрального уровня?
|
|
|
|
|
Sep 29 2006, 11:48
|
Частый гость
 
Группа: Новичок
Сообщений: 154
Регистрация: 7-03-06
Пользователь №: 15 051

|
Или использование выходного pull-up позволит получить тот же результат, что и с использованием внешнего MAX9111- 9113 ?
|
|
|
|
|
Oct 5 2006, 10:52
|
Частый гость
 
Группа: Новичок
Сообщений: 154
Регистрация: 7-03-06
Пользователь №: 15 051

|
Цитата(DmitryR @ Oct 5 2006, 12:25)  Цитата(m_y @ Sep 29 2006, 09:46)  Чтобы не было проблем при обрыве, или закорачивании линии, а также выдаче на неё третьего состояния можно использовать pullup или pulldown.
А не приведет ли это к рассогласованию импеданса линии? Какой? Дифференциальной? Но ведь pull-up'ы, как я правильно поняла, предполагается ставить за приёмником, где гуляют уже обычные CMOS/TTL. Или что вы имели в виду?
|
|
|
|
|
Oct 9 2006, 10:31
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 11-06-05
Из: М. О.
Пользователь №: 5 926

|
Цитата(dryadae @ Sep 29 2006, 01:24)  Рассматривая примитивы Xilinx, столкнулась со следующей проблемой. Для Spartan 3/3E на сайте приведена следующая табличка (примитив IBUFDS): Inputs Outputs I IB O 0 0 No Change 0 1 0 1 0 1 1 1 No Change Ну, c 0 и 1 вроде бы всё понятно, а вот как понимать "No Change"? Не означает ли это, что в высокоимпедансном состоянии ресивер держит на цифровой линии предыдущее состояние? Если так, так польза данного устройства для межплатных и кабельных соединений кажется сомнительной; выдь обычно "нормальные" LVDS-устройства удерживают некий фиксированный уровень (как правило, 1) не только при разрыве линии, но и при коротком замыкании - см., в частности, продукцию Maxim. Есть ли у кого-то реальный опыт работы с данными ресиверами в качестве портов ввода-вывода, и если да, то как они ведут себя при обрыве, или закорачивании линии, а также выдаче на неё третьего состояния? Ведь судя по той же документации, OBUFTDS, имея отдельный вход ~enable, может это. Адрес документа - http://toolbox.xilinx.com/docsan/xilinx7/b...edl0025_17.html"No Change" в данном документе означает, что при одинаковых уровнях входов, выход элемента остается в том же состоянии, в каком он был до установления одинаковых уровней на входе. Переключения выхода происходят только при различных уровнях на входах. Высокоимпедансноого состояния вовсе нет. Выход элемента доступен только внутри ПЛИС.
|
|
|
|
|
Oct 9 2006, 22:50
|
Частый гость
 
Группа: Новичок
Сообщений: 154
Регистрация: 7-03-06
Пользователь №: 15 051

|
To DmitryR: Теперь уже я не понимаю. Вы же сами вроде советовали использовать выходной pull-up для "притяжки" плавающего состояния к "1" (именно выходной, да? это ведь не PECL какой-нибудь, право же  ) . Цитата "No Change" в данном документе означает, что при одинаковых уровнях входов, выход элемента остается в том же состоянии, в каком он был до установления одинаковых уровней на входе. Переключения выхода происходят только при различных уровнях на входах. Высокоимпедансноого состояния вовсе нет. Выход элемента доступен только внутри ПЛИС. Все дифф. приёмники так работают - за исключением того, что никому пока что не приходило в голову хранить предыдущее состояние на выходах (а действительно, зачем?) Ну вот в этом-то и вопрос - как получить дифф. приёмник Спартана в качестве MAX1111-1113. d>-100 mV, высокий импеданс, "коротыш" - преобразуются в "1", всё остальное - соответственно в "0". Цитата Высокоимпедансноого состояния вовсе нет. Выход элемента доступен только внутри ПЛИС. Как это это? А если, например, эти ноги спаять вместе, или вовсе оставить ни к чему не присоединёнными??? Приведу простой пример - скажем, по LVDS связываются две платы, и на одной из них вдруг пропадает питание. Как об этом узнать без дополнительных single-ended линий? Мне кажется, через Hi-Z более определённого промежутка времени - а иначе ноль превратится в бесокнечный период, и думай потом, что хочешь...
Сообщение отредактировал dryadae - Oct 9 2006, 22:51
|
|
|
|
|
Oct 11 2006, 14:10
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 11-06-05
Из: М. О.
Пользователь №: 5 926

|
А не флуд ли это? Вроде вполне доступно в прошлый раз написал... Ладно, в последний раз: Цитата(dryadae @ Oct 10 2006, 02:50)  ...Вы же сами вроде советовали использовать выходной pull-up для "притяжки" плавающего состояния к "1" (именно выходной, да? это ведь не PECL какой-нибудь, право же  ) . Никакого "плавающего состояния" на выходе обсуждаемого примитива быть не может (смотрите приведенную Вами же таблицу истинности), следовательно и выход притягивать никуда не требуется. Цитата(dryadae @ Oct 10 2006, 02:50)  Все дифф. приёмники так работают - за исключением того, что никому пока что не приходило в голову хранить предыдущее состояние на выходах (а действительно, зачем?) Ну вот в этом-то и вопрос - как получить дифф. приёмник Спартана в качестве MAX1111-1113. d>-100 mV, высокий импеданс, "коротыш" - преобразуются в "1", всё остальное - соответственно в "0". Сделано как раз очень разумно - для того, чтобы исключаить ложные переключения при недействительных комбинациях входных сиггналов - помехоустойчивость. Цитата Высокоимпедансноого состояния вовсе нет. Выход элемента доступен только внутри ПЛИС. Цитата(dryadae @ Oct 10 2006, 02:50)  Как это это? А если, например, эти ноги спаять вместе, или вовсе оставить ни к чему не присоединёнными??? Если входы соединить, выход переключаться не будет, если входы будут висеть, то в зависимости от того, что на них наведется. Цитата(dryadae @ Oct 10 2006, 02:50)  Приведу простой пример - скажем, по LVDS связываются две платы, и на одной из них вдруг пропадает питание. Как об этом узнать без дополнительных single-ended линий? Мне кажется, через Hi-Z более определённого промежутка времени - а иначе ноль превратится в бесокнечный период, и думай потом, что хочешь... Не очень вразумительно, но Z на входе даже при пропадании питания передатчика все равно не будет - там д. б. согласующая цепь. Однако приведенную в Вашем примере задачу не решает и МАХ1111-1113, т.к 1 на его выходе при верной комбинации входных сигналов не отличается от 1 при КЗ или ХХ.
|
|
|
|
|
Oct 12 2006, 15:48
|
Частый гость
 
Группа: Новичок
Сообщений: 154
Регистрация: 7-03-06
Пользователь №: 15 051

|
Цитата А не флуд ли это? Вроде вполне доступно в прошлый раз написал... Ну, во-первых, ничего нового Вы не написали - всё это уже было выше, в посте от m_y. Цитата Чтобы не было проблем при обрыве, или закорачивании линии, а также выдаче на неё третьего состояния можно использовать pullup или pulldown. Не уверена, что понимаю, о каком именно pull-up'е идёт речь. Читаем ( http://www.interfacebus.com/Design_Connector_LVDS.html): LVDS Pull-up/Pull-Down Resistors LVDS uses a single 100 ohm termination resistor at the Receiver side of the bus. The Receiver provides failsafe bias so Pull-up/down resistors are not required. Noisy environments may require the addition of bias resistors.The Pullup/Down Resistors (Idle-line failsafe) are used to keep the +/- inputs of the Receiver(s) inputs at a minimum of 200mV differential or higher. Normally required once the system has reached it's quiescent state, when no drivers are driving the bus. Only one end of the bus requires the resistor network. По аресу http://www.interfacebus.com/Design_Connector_RS644.htmlесть пример использования этих самых "bias resistors", но оттуда непонятно, можно ли применить нечто подобное на LVDS-to- LVDS линии. В общем, странное поведение ресиверов (в теории) остаётся фактом - непонятно, почему бы им не вести себя так же, как и, скажем, стандартные продукты - DS90LV048A, UT54LVDS032LV, а также вышеозначенные Максимы... Может, кто-то знает, зачем нужно хранить предыдущее состояние на выходе в отсутствии изменений, или обрыве на линии, если обычной практикой является притягивание к " 1"?
Сообщение отредактировал dryadae - Oct 12 2006, 15:49
|
|
|
|
|
Oct 16 2006, 12:08
|
Профессионал
    
Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770

|
Теперь понятно, откуда весь этот шум про pullup. Документ ужасно старый, там еще 5V. Короче, так не делают. Для noisy environment делают так: каждый провод LVDS пары на стороне приемника соединяют резисторами номиналом в дифференциальное сопротивление с питанием и землей. Питание для Spartan-3 имеет смысл взять с того же полигона, с которого питаются приемники. Собственно, точно так работает например DCI. Но это не pullup/pulldown, это будет просто делитель, формирующий в проводе пол-питания, что есть опорный DC для LVDS. При обрыве оба провода будут под одним потенциалом. Цитата(dryadae @ Oct 12 2006, 19:48)  Может, кто-то знает, зачем нужно хранить предыдущее состояние на выходе в отсутствии изменений, или обрыве на линии, если обычной практикой является притягивание к "1"? Да какая разница? Ну будет у Вас притянут к единице, все равно не поймете, это передатчик гонит константную единицу или у Вас обрыв. А если передатчик не может гнать константный сигнал - то Вы и по заморозке состояния поймете, что обрыв.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|