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

Резисторы в шинах цифровых сигналов

Гость impatt

На модулях DIMM, на интерфейсах IDE винчестеров, ещё кое-где, встречаются резистивные сборки.

По каком принципу выбирают, ставить их или нет (например, касательно памяти SDRAM - кто-то их ставит, а в доке на память про них ничего не говорится), и если ставить, то какого номинала ?

 

Спасибо.

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


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

...кое-где, встречаются резистивные сборки. По каком принципу выбирают, ставить их или нет...

Вот это почитайте: High-Speed Board Designs

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


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

Идея проста : представте сигнальную дорожку в качестве линии передачи и рассматривайте режимы распространения волн в ней. Отсюда следует, что если линия несогласована на стороне приемника, часть сигнала отразится и вернется к передатчику, а если нет согласования еще и со стороны передатчика, то отраженный сигнал будет блуждать между ними по линии передачи, постепенно затухая. Ни к чему хорошему, понятно, это не приведет. Чтобы согласовать линию передачи, на ее конце у приемника ставят резисторы, замкнутые на землю (терминаторы). Сопротивление резисторов выбирается исходя из того, какое сопротивление линии передачи и сопротивление приемника (если оно достаточно низкое, его тоженадо учитывать). Делать выбор, ставить или нет, я думаю, следует по результатам моделирования на целостность сигналов или по результатам практического тестирования (что конечно надежнее, но в случае неудачи макет можно будет выкинуть в мусорку, если потребуется терминация, а вы ее не предусмотрели). Также при практическом изучении сигналов следует учесть влияние емкости пробника осциллографа, лучше всего использовать специальные высокоскоростные активные пробники, у них маленкая емкость (доли пф) и достаточно большое сопротивление, чтобы не влиять на результат измерений.

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


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

На модулях DIMM, на интерфейсах IDE винчестеров, ещё кое-где, встречаются резистивные сборки.

По каком принципу выбирают, ставить их или нет (например, касательно памяти SDRAM - кто-то их ставит, а в доке на память про них ничего не говорится), и если ставить, то какого номинала ?

 

Резисторы для интерфейса IDE (винчестера) совершенно точно указаны в спецификации ATA.

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


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

Гость impatt
Идея проста :

Да, понял, спасибо. Так-то это понятно, конечно всё... Но вот как посчитать заранее эти резисторы.. Видимо, надо рпосто иметь большие наработки в области проектирования плат на высокие частоты. Умение пользоваться соответствующим софтом (и иметь его у себя).

 

Спасибо всем ответившим :)

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


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

Да, понял, спасибо. Так-то это понятно, конечно всё... Но вот как посчитать заранее эти резисторы.. Видимо, надо рпосто иметь большие наработки в области проектирования плат на высокие частоты. Умение пользоваться соответствующим софтом (и иметь его у себя).

 

Спасибо всем ответившим :)

 

 

Я подбирал такие резисторы самостоятельно. У меня сигналы идут на Altera. Так вот ести ставить терминатор 1кОм - его не хватает (наводки с соседних дорожек иногда вызывают ложное срабатывание входного триггера). 680 Ом - почти совсем нет ложных срабатываний. 100 Ом - вообще нет, даже если к исследуемой дорожке припаять антеннку в виде проволочки длиной 5 см. Вот такие испытания я проводил... и остановился на 100 Ом-ах.

Кроме того совсем не надо таких резисторов для сигналов, которые потом будут стробироваться. А вот для тактовых частот или самих стробирующих сигналов - надо.

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


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

я делаю следующим образом:

 

если длина всех дорожек по отдельности не больше 1/8 длины волны - резисторы можно не ставить, иначе - 22...33 Ом последовательно, со стороны источника или процессора (если шина двунаправленная - шина данных).

 

дорожки для шины должны быть более-менее одинаковые по длине, клок чуть длиннее (делаю "змейкой")

 

в принципе все работает на частотах до 250 МГц, если выше, думаю, здесь уже надо моделировать, и обычно используются другие уровни сигналов (SSTL, HSTL,... там уже требуется согласование у Altera это расписано, показано)

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


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

Сопротивление резисторов зависит еще и от толщины платы (или слоя диэлектрика, где расположены дорожки). На плате 1.5 мм - сопротивление порядка 130 Ом для FR4 и ширины дорожки 0,25 мм, для 4-хслойной платы при равной толщине диэлектриков и той же ширине дорожки - уже 90. Соотвественно и сопротивление ризисторов следует менять. Сомневаетесь - моделируйте, осталисть еще сомнения - проводите измерения на реальном приборе.

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


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

Если Вы действительно хотите разобраться зачем ставят резисторы на высокоскоростных платах, советую почитать "Конструирование высокоскоростных цифровых устройств" Говард Джонсон и Мартин Грэхем есть на русском языке в печатном виде.

В книге в доступной форме объясняются и последовательная (на стороне источника) и параллельная (на стороне приемника) терминация.

Есть очень хорошая программа для такого моделирования - HyperLynx

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


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

Гость impatt
Если Вы действительно хотите разобраться зачем ставят резисторы на высокоскоростных платах, советую почитать "Конструирование высокоскоростных цифровых устройств" Говард Джонсон и Мартин Грэхем есть на русском языке в печатном виде.

В книге в доступной форме объясняются и последовательная (на стороне источника) и параллельная (на стороне приемника) терминация.

Есть очень хорошая программа для такого моделирования - HyperLynx

Зачем - я и так знаю, в общем и целом. И тут пояснили, и прочитал альтеровскую доку. Теорию и практику длинных линий тоже вроде знаю :)

Спросил потому, что как-то затрудняюсь понять, как считать сопротивления для терминирования и в каких случаях этими мерами можно пренебрегать. Тут ведь кроме теории замешано много практики. Потому-то кто-то ставит, кто-то нет, и кто что - вот и хотел узнать.

Но за пояснения и реплику всё равно спасибо :)

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


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

Могу привести пример для SDRAM и FPGA.

Разводка шины данных выполена по верхнему слою печатной платы. Толщина изоляции (основа или препег) между верхним и земляным слоем 5 mil. Толщина дорожки 0.12 мм. Материал изоляции FR4. Для указанных параметров волновое сопротивление дорожки ~ 63 Ом.

У выходного SDRAM драйвера сопротивление ~30 Ом.

Для правильного последовательного согласования необходимо поставить на каждую линию данных резистор 33 Ом. Поскольку шина двунаправленная резистор ставится примерно посредине трассы.

Остальные линии управления памятью являются однонаправленными и идут от FPGA к SDRAM, примерно их можно согласовать с помощью регулировки выходных токов FPGA. Это позволяет проложить однонаправленные трассы по внутренним слоям платы.

Данное решение не претендует на абсолютную корректность, но это вполне рабочая конфигурация неоднократно проверенная на живых платах.

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


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

...Поскольку шина двунаправленная резистор ставится примерно посредине трассы.

 

Всё, конечно, зависит от конкретной топологии, но при последовательном согласовании двунаправленного сигнала (например, шина данных) необходимо ставить согласующие резисторы как можно ближе к каждому из драйверов сигнала. Т.е., если у вас на шине данных висит процессор, SDRAM, flash, то на каждой линии данных будеи 3 резистора, каждый из которых расположен как можно ближе к соответствующему выводу процессора, SDRAM или flash.

 

Но, чтобы не гадать, читайте Howard Johnson (http://www.sigcon.com/publications.htm) и пользуйтесь pre- и post-layout signal integrity simulation (Hyperlynx, ICX Explorer Pro). Может для ваших драйверов (с низким выходным током, например 4..8 мА, или slew rate limited) терминаторы вообще не нужны.

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


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

я делаю следующим образом:

 

если длина всех дорожек по отдельности не больше 1/8 длины волны - резисторы можно не ставить, иначе - 22...33 Ом последовательно, со стороны источника или процессора (если шина двунаправленная - шина данных).

 

дорожки для шины должны быть более-менее одинаковые по длине, клок чуть длиннее (делаю "змейкой")

 

в принципе все работает на частотах до 250 МГц, если выше, думаю, здесь уже надо моделировать, и обычно используются другие уровни сигналов (SSTL, HSTL,... там уже требуется согласование у Altera это расписано, показано)

Если не секрет зачем клок делать змейкой?.

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


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

Если не секрет зачем клок делать змейкой?.
Видимо чтобы удлинить дорожку и сделать задержку тактового сигнала заведомо бОльшей, чем задержки остальных сигналов.

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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