Последовательный резистор в цифровой линии.

Если открыть reference design с простенькой памятью SDRAM и микроконтроллером, часто можно встретить, что на шине данных и шине адреса стоят последовательные резисторы 33 Ом. Например так сделано в reference design STM32439I-EVAL.

Пример из схемы STM32439I-EVAL

Разберёмся зачем они здесь!

Восстановление схемы.

Для начала полностью восстановим схему. Начнём с схемы которая представлена в reference design, затем постепенно будем погружаться глубже в детали.

Схема принципиальная MCU + Memory.

Для наглядности упростим схему до уровня блочных соединений.

Упрощённая схема STM32 + Memmory

Теперь давайте разберёмся, что из себя представляет GPIO. По сути мы знаем, что при инициализации FMC контроллера в STM32 выводы GPIO настраиваются как push-pull каскад, в случае проходит цикл записи.

Типичный push pull каскад микроконтроллера.

Push-pull выход можно представить как эквивалентный источник напряжения, с выходным сопротивление R.

Представление push-pull как источник напряжения с выходным сопр. R

Для уточнения модели необходимо найти сопротивление R. Данное сопротивление можно найти по косвенным параметрам из datasheet на микроконтроллер. Для примера откроем datasheet на STM32F437. Открываем таблицу 57. Обращаем внимание на «Output low level voltage for an I/O pin».

Output voltage characteristics

В таблице показывается, что если при логическом нуле на выходе GPIO, в порт втекает ток 20мА, напряжение на выходе не должно превышать 1.3В. Применив закон Ома, можно сказать о приблизительном сопротивление канала открытого транзистора в push-pull каскаде. Или переводя в эквивалентную схему, то выходном сопротивление эквивалентного источника питания.

Находим сопротивление:

R = \frac{V_{OL}} {I_{IO}} = \frac{1.3V} {20mA} = 65\Omega

Получилось 65 Ом, в реальности оно будет меньше. Т.к. расчёт производился для максимальных значений напряжения Vol. Для построения более точной модели, хотелось бы иметь типовые значения сопротивления, а так же другие паразитные параметры

В этом нам поможет IBIS модель. Чтобы иметь представление что это такое можно почитать вот тут — link. Скачав модель интересующей нас микросхемы, смотрим на её содержимое. Например нас интересует порт PF15.

PF15 pin

IBIS модель в себе содержит табличную информацию ВАХ характеристики о каждом порте GPIO + информация о портах питания для PDN анализа. Информация о GPIO содержится в виде табличной ВАХ, которая построена для диапазона от -Vpower до +2*Vpower.

Пример ВАХ из ibis

|Voltage I(typ) I(min) I(max)
|
-3.30 -36.461000mA -21.095100mA -47.092900mA
-3.20 -36.461000mA -21.095100mA -47.092900mA
-3.10 -36.461000mA -21.095100mA -47.092900mA
-3.00 -36.461000mA -21.095100mA -47.092900mA
-2.90 -36.461000mA -21.095100mA -47.092900mA
-2.80 -36.461000mA -21.095100mA -47.092900mA
-2.70 -36.461000mA -21.095100mA -47.092900mA
-2.60 -36.461000mA -21.095100mA -47.092900mA
-2.50 -36.461000mA -21.095100mA -47.092900mA
-2.40 -36.461000mA -21.095100mA -47.092900mA
-2.30 -36.461000mA -21.095100mA -47.092900mA
-2.20 -36.461000mA -21.095100mA -47.092900mA
-2.10 -36.461000mA -21.095100mA -47.092900mA
-2.00 -36.461000mA -21.095100mA -47.092900mA
-1.90 -36.461000mA -21.095100mA -47.092900mA
-1.80 -36.461000mA -21.095100mA -47.092900mA
-1.70 -36.461000mA -21.095100mA -47.092900mA
-1.60 -36.461000mA -21.095100mA -47.092900mA
-1.50 -36.461000mA -21.095100mA -47.092900mA
-1.40 -36.461000mA -21.095100mA -47.092900mA
-1.30 -36.461000mA -21.095100mA -47.092900mA
-1.20 -36.461000mA -21.095100mA -47.092900mA
-1.10 -36.461000mA -21.095100mA -47.092900mA
-1.00 -36.461000mA -21.095100mA -47.092900mA
-0.90 -36.461000mA -21.095100mA -47.092900mA
-0.80 -36.461000mA -21.095100mA -47.092900mA
-0.70 -34.237000mA -21.095100mA -43.311700mA
-0.60 -30.502180mA -20.544700mA -38.685600mA
-0.50 -26.085940mA -17.712770mA -33.082810mA
-0.40 -21.167523mA -14.385382mA -26.860811mA
-0.30 -16.024081mA -10.844033mA -20.384097mA
-0.20 -10.770982mA -7.237060mA -13.748264mA
-0.10 -5.428219mA -3.615730mA -6.956134mA
0.00 -8.713720nA -0.988000nA -57.676460nA
0.10 5.331222mA 3.481323mA 6.889634mA
0.20 10.384044mA 6.710838mA 13.475269mA
0.30 15.155565mA 9.689153mA 19.753403mA
0.40 19.645087mA 12.417269mA 25.719538mA
0.50 23.849609mA 14.895084mA 31.369672mA
0.60 27.768131mA 17.124900mA 36.701806mA
0.70 31.397652mA 19.107716mA 41.709941mA
0.80 34.736175mA 20.845531mA 46.391076mA
0.90 37.782697mA 22.340347mA 50.740211mA
1.00 40.535219mA 23.594164mA 54.752347mA
1.10 42.990742mA 24.605980mA 58.424482mA
1.20 45.146265mA 25.371796mA 61.747618mA
1.30 46.989787mA 25.882612mA 64.709754mA
1.40 48.496310mA 26.187428mA 67.289890mA
1.50 49.618833mA 26.372012mA 69.434026mA
1.60 50.347356mA 26.497059mA 71.056161mA
1.70 50.790876mA 26.589875mA 72.116297mA
1.80 51.074395mA 26.663691mA 72.754433mA
1.90 51.274919mA 26.726507mA 73.165564mA
2.00 51.428440mA 26.780323mA 73.449697mA
2.10 51.553962mA 26.828140mA 73.664831mA
2.20 51.660484mA 26.871956mA 73.837965mA
2.30 51.753005mA 26.911772mA 73.985099mA
2.40 51.836527mA 26.949589mA 74.112232mA
2.50 51.912049mA 26.984406mA 74.226366mA
2.60 51.981571mA 27.017222mA 74.329500mA
2.70 52.047093mA 27.049032mA 74.424635mA
2.80 52.107615mA 27.078823mA 74.513769mA
2.90 52.165138mA 27.109628mA 74.596903mA
3.00 52.220660mA 27.149443mA 74.676038mA
3.10 52.273183mA 27.258258mA 74.750173mA
3.20 52.324705mA 27.547073mA 74.822308mA
3.30 52.374227mA 28.041889mA 74.891443mA
3.40 52.423747mA 28.734704mA 74.959577mA
3.50 52.472271mA 29.623519mA 75.026710mA
3.60 52.523794mA 30.618335mA 75.092850mA
3.70 52.613315mA 31.636150mA 75.160980mA
3.80 52.924837mA 32.587966mA 75.230120mA
3.90 53.569359mA 32.970781mA 75.305250mA
4.00 54.487881mA 32.970781mA 75.411390mA
4.10 55.694400mA 32.970781mA 75.803520mA
4.20 57.230930mA 32.970781mA 76.697660mA
4.30 58.931450mA 32.970781mA 77.987790mA
4.40 60.698970mA 32.970781mA 79.594930mA
4.50 62.483490mA 32.970781mA 81.652060mA
4.60 64.219010mA 32.970781mA 84.075200mA
4.70 65.703540mA 32.970781mA 86.634330mA
4.80 65.703540mA 32.970781mA 89.259470mA
4.90 65.703540mA 32.970781mA 91.916600mA
5.00 65.703540mA 32.970781mA 94.524740mA
5.10 65.703540mA 32.970781mA 96.888870mA
5.20 65.703540mA 32.970781mA 96.888870mA
5.30 65.703540mA 32.970781mA 96.888870mA
5.40 65.703540mA 32.970781mA 96.888870mA
5.50 65.703540mA 32.970781mA 96.888870mA
5.60 65.703540mA 32.970781mA 96.888870mA
5.70 65.703540mA 32.970781mA 96.888870mA
5.80 65.703540mA 32.970781mA 96.888870mA
5.90 65.703540mA 33.178060mA 96.888870mA
6.00 65.703540mA 33.912870mA 96.888870mA
6.10 65.703540mA 34.709670mA 96.888870mA
6.20 65.703540mA 35.572480mA 96.888870mA
6.30 65.874900mA 36.502280mA 96.888870mA
6.40 67.435420mA 37.501090mA 96.888870mA
6.50 69.120940mA 38.570890mA 96.888870mA
6.60 70.932460mA 39.714690mA 98.497900mA

Небольшое отступление касаемо момента, почему же от -3.3V до +6.6V?
Всё дело в том, что ibis модели были специально созданы для моделирование высокочастотных цепей, как правило на высоких частотах цепь рассматривают как длинную линию. В длинных линиях есть такое понятие как отражение сигнала, так вот если нагрузка на конце линии полностью разсогласована с импедансом линии/источника сигнала, возникает полное отражение. При полном отражение, обратная волна отражается с той же амплитудой что и исходный сигнал. В итоге на входе микросхемы кратковременно становится двойное напряжение, или 6.6V. Чтобы САПР мог адекватно смоделировать полное отражение сигнала, стандарт ibis требует наличия ВАХ для диапазона -Vpower : +2Vpower.

Так же ibis модель содержит информацию о паразитных параметрах вносимые корпусом. На картинке выше, они нулевые т.к. для частот на которых работает микросхема, они не существенны.

Ещё есть информация о паразитной ёмкости драйвера, он нам ещё пригодится. А пока что построим график ВАХ в графическом виде.

ВАХ PF15

Из диаграмм ВАХ, можем получить типовое сопротивление для моделирования с эквивалентным источником напряжения.

Находим сопротивление через ВАХ

Также учтём описанную в модели ёмкость в 2.24pF. В конечном итоге получаем вот такую схему GPIO:

Модель GPIO push-pull

Дополним нашу упрощённую схему нагрузкой.

Эквивалентная схема

В схеме С_load это суммарная входная ёмкость микросхем.
R_ser последовательный резистор 33 Ом.
А так же линия передачи(дорожка на плате), которую будем рассматривать как линию с распределёнными параметрами или как с сосредоточенными.
Если формулировка распределёнными/сосредоточенными параметрами непонятно, необходимо хотя бы в бегло изучить тему длинных линий(например тут: раз, два).

Далее мы будем рассматривать схему из рисунка выше, меня номиналы компонентов и параметры линии. Анализ будет проводится в LTSPICE.

Анализ схемы

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

Сосредоточенные или распределённые?

Для того чтобы убедиться, что перед нами линия с распределёнными параметрами достаточно соответствовать эмпирическому правилу:
{\LARGE \frac {1}{4} \lambda > \textrm{Length trace}}
где \lambda — длина волны сигнала которую можно найти как: {\LARGE \frac {v}{f}} , f — частота сигнала, v — скорость распространения сигнала по плате. Чтобы примерно ориентироваться можно воспользоваться табличкой с сайта Henry Ott. Используя таблицу необходимо учитывать, что приведённые значения соответствия длины волны и длины трассы на печатной плате приведены для скорости света, в реальности же скорость распространения сигнала ниже и зависит от применяемого материала.

Написанное выше справедливо для синусоидального сигнала. Но например спектр из меандра 1MHz состоит из множества синусоид(см. главу импульсное потребление). В данном случае для оценки линии передачи необходимо знать время нарастания/спада сигнала и воспользоваться следующим уравнение:
{\LARGE f = \frac {0.35}{t_r}} , тут в знаменатели время нарастания. После того как найдём частоту возвращаемся к предыдущему абзацу.

Для нашего примера информацию о времени нарастания возьмём всё из той же ibis модели.

Скорость нарастания

Подставляем цифры и получаем {\large f = 1.2 \cdot 10^9 Hz}

Теперь находим длину волны для заданной частоты. Скорость распространения найдём из формулы: {\large v = \frac{c}{\sqrt{Er}} = \frac{3\cdot 10^8}{\sqrt{4}} = 1.5 \cdot 10^8} . Находим длину волны{\large \lambda = \frac{1}{2}\cdot\frac{1.5\cdot 10^8}{1.2 \cdot 10^9} = 6.2cm } .

Тут стоит отметить, что длина получена для частоты 1.2 ГГц. Если представить сигнал как множество синусов разной частоты, 1.2 ГГц это самый высокочастотный синус из всего множества для рассматриваемого сигнала, и при этом он несёт в себе меньше всего энергии. Поэтому, если для этой частоты возникает отражения , то это не слишком сильно влияет на целостность сигнала. Именно поэтому мы немного отступили от эмпирического правила в формуле и вместо 1/4 взяли 1/2.

Что имеем в итоге! Если длина дорожки на плате больше чем 6.2cm, то необходимо линию рассматривать как длинную(распределённые параметры). Если же меньше чем 6.2cm, тогда рассматриваем как линия с сосредоточенными параметрами. Далее рассмотрим оба случая.

Длинная линия.

Смоделируем влияние добавочного резистора в цифровой линии длиной 10cm. Для моделирования воспользоватся программой LTSPICE.

Модель длинной линии в LTSPICE

Td = 330p это время линии задержки длиной 10см(LTSPICE считает, что сигнал распространяется с скоростью света). Z0 = 70, это типичное сопротивление для дорожки с параметрами как на рисунке ниже.

Параметры линии.

Источник напряжения настроен следующим образом:

Источник напряжения из модели.

Для начала промоделируем схему, с отсутствующим последовательным резистором.

Диаграмма модели без последовательного резистора.

Как мы видим из за несогласованности линии происходит многократное отражение сигнала, и наблюдается перенапряжение до 4.5V. В реальности перенапряжение будет меньше за счёт clamp diode в цифровых микросхемах, но тем не менее неприятности остаются.

Теперь изменим нашу модель, добавив резистор 33 Ом, и промоделируем заново.

Модель с добавочным резистором.
Диаграмма модели с добавочным резистором.

За счёт того, что появился добавочный резистор R3 = 33 Ом, отражение стало незначительным и исчезли выбросы напряжения на нагрузки. Так же стоит отметить, что изменился dv/dt в меньшую сторону, что немного улучшает эмиссию.

Сосредоточенные параметры

Пусть максимальная длина дорожки равна 5cm. Зная погонную индуктивность и ёмкость(из рисунка » Параметры линии.»), заменим дорожку на LC элемент.

Схема сосредоточенные параметры.

Параметры источника питания остаются как в модели с длинной линией. Посмотрим напряжение на нагрузке.

Напряжение на источнике и на выходе.

В данной модели выброс напряжения вызван резонансным процессом. Так как. индуктивность гораздо больше ёмкости, добротность(Q) >0.5, следовательно наблюдается резонанс. Чтобы избежать резонанса, можно увеличить ёмкость. Но данный подход не применяется, поскольку добавив ёмкость, мы нагружаем выходной драйвер микросхемы. Поэтому добавим резистор 33 Ом как в схеме и посмотрим, что будет.

Обновлённая схема.
Напряжение на нагрузке и источнике.

После добавления резистора, добротность в цепи уменьшилась. Как следствие уменьшение добротности, исчез большой выброс напряжения.

Вывод

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

Даже если линия не является длинной, не стоит забывать, что цифровой вход имеет достаточно низкую входную ёмкость и при достаточно небольшой индуктивности дорожки получается последовательный резонансный контур с Q > 0.5. Добавочный резистор, эффективный метод снизить добротность, при этом сильно не ухудшив скорость нарастания.