Jump to content

    

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

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

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

 

Спасибо.

Share this post


Link to post
Share on other sites

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

Share this post


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

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

 

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

Share this post


Link to post
Share on other sites
Идея проста :

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

 

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

Share this post


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

 

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

 

 

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

Share this post


Link to post
Share on other sites
...Поскольку шина двунаправленная резистор ставится примерно посредине трассы.

 

Всё, конечно, зависит от конкретной топологии, но при последовательном согласовании двунаправленного сигнала (например, шина данных) необходимо ставить согласующие резисторы как можно ближе к каждому из драйверов сигнала. Т.е., если у вас на шине данных висит процессор, 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) терминаторы вообще не нужны.

Share this post


Link to post
Share on other sites
я делаю следующим образом:

 

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

 

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

 

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

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

Share this post


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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this