Согласование импедансов: симуляторы и симуляция. Часть 1

image-loader.svg

У любителей электроники, разобравшихся в общих чертах в процессах отражения сигнала от концов линии передачи, неизбежно возникает ряд вопросов, связанных с выбором номиналов согласующих резисторов. При согласовании на стороне источника, выбор резисторов порождает две задачи: определение волнового сопротивления линии и определение внутреннего сопротивления источника сигнала. Обе задачи решаются с помощью симуляторов. Об особенностях их применения и пойдёт речь в данных статьях.

В качестве объекта симуляции используем ту же самую микросхему 5M80ZE64C5N, что применялась в предыдущей статье. Для симуляции нам потребуется модель выходного буфера микросхемы. У данной микросхемы на сайте производителя имеются две принципиально разные модели: HSPICE (осталась только на японской версии сайта) и IBIS. Концепция модели HSPICE подразумевает, что модель содержит в себе характеристики транзисторов из которых состоит выходной буфер и список соединений данных транзисторов. В открытом виде эта информация является коммерческой тайной. Поэтому модель HSPICE для данной микросхемы зашифрована алгоритмом DES и может быть просимулирована только весьма дорогим программным обеспечением компании Synopsys. Модель IBIS же представляет из себя набор вольт-амперных и переходных (реакция выходного буфера на фронт, пришедший изнутри микросхемы) характеристик. Модель IBIS не несёт данных о внутренней структуре буфера, поэтому она распространяется в открытом виде и может быть просимулирована различными пакетами, в том числе — бесплатными.

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

image-loader.svg

Создадим в MicroCap несложную схему. После установки пакета и создания новой схемы («File→New→Schematic File») добавим в неё выходной буфер. Для этого:

  1. Откроем в навигаторе компонентов вкладку «Search».

  2. Укажем в поиске «IBIS».

  3. Выберем в списке IBIS_Output3. Данный буфер имеет три контакта: вход, выход и переключение в состояние HiZ. Также в списке имеется буфер IBIS_Output5 — в нём добавлены контакты питания и земли. Кроме того, при помощи IBIS можно моделировать и входы микросхемы. Но пока ограничимся наиболее простым вариантом.

  4. Щелкнем по полю схемы изображением буфера — откроются два окна.

  5. Укажем путь к модели IBIS.

  6. Поставим переключатель «View by» в положение «Model».

  7. Выберем в списке модель «max5_ttl33_io_d16» — выход 16 мА, LVTTL.

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

Нажмём «Ок» и продолжим.

image-loader.svg

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

  1. Поищем компонент «TLine».

  2. Выберем единственный найденный компонент.

  3. Добавим его на схему — откроется окно его свойств.

  4. В этом окне дважды щёлкнем по строчке «MODEL=».

  5. Откроется окно для ввода названия модели линии передачи. Введём любое название.

  6. Убедимся, что тип длинной линии установлен в положение «Ideal».

  7. Введём волновое сопротивление линии.

  8. Введём задержку распространения »3.43n». Согласно моим измерениям, сигнал в кабеле RG-174 распространяется со скоростью 17,5 см/нс. Соответственно, для длины 60 см задержка распространения составит 3,43нс. Важное замечание: я регулярно забываю ставить «n», указывающий на «нано» и долго ищу причину, по которой на симуляции нет никаких сигналов. Не повторяйте моих ошибок:)

image-loader.svg

Теперь добавим на схему источник прямоугольных импульсов. Для этого:

  1. Найдём компонент «Pulse Source».

  2. Поместим его на схему.

  3. Как и в предыдущем случае, дважды щёлкнем по строчке «MODEL=» и введём любое название модели.

  4. Введём напряжения логического нуля и логической единицы. Выход нашего буфера инвертирован, поэтому «VONE» сделаем равным нулю, а «VZERO» — 3,3 вольтам.

  5. Зададим временны́е характеристики сигнала так, чтобы получились прямоугольные импульсы с частотой 1 мегагерц и заполнением 50/50:
    P1 = 100n
    P2 = 100.1n
    P3 = 600n
    P4 = 600.1n
    P5 = 1000n
    Их смысл представлен на схеме ниже.

image-loader.svgimage-loader.svg

Последние штрихи.

  1. Возьмём на панели сверху зе́мли и разместим их на схеме. Оба конца экрана линии передачи должны быть заземлены на схеме. Возьмём на той же панели резисторы и конденсатор. Конденсатор нужен для имитации входной ёмкости осциллографа. Для MSOX4154A она приблизительно равна 8 пикофарадам. Резистор будет имитировать мегоомный вход осциллографа. В процессе симуляции именно на этом резисторе будет измеряться напряжение.

  2. Важный момент: в MicroCap резисторы полярны. Если мы возьмём в меню второй сверху резистор (вместо четвёртого сверху), график будет начерчен вниз от 0 вольт до -3,3 вольт. Сами номиналы вписываются в поле «Value» после того, как в свойствах элемента выделена строка «RESISTANCE» или «CAPACITANCE».

  3. Меню с выбором направления резистора скрывает кнопку «Чертить провода». Воспользуемся данной кнопкой, чтобы соединить элементы на схеме.

Теперь настроим симуляцию. После того, как мы выберем пункт меню «Analysis→Transient…» у нас откроется следующее окно:

image-loader.svg

  1. Установим параметр «Maximum Run Time» в 1000n (просимулируем 1 микросекунду) и параметр «Maximum Time Step» в 10p (максимальный шаг симуляции 10 пикосекунд, избыточно точно, но пускай будет так).

  2. Установим в первой строке таблицы выводимых графиков в поле «Y Expression» параметр, который будем симулировать — напряжение на резисторе R1. Для этого впишем туда «v (r1)», автодополнение в процессе набора предложит нам этот вариант.

  3. Поставим курсор на вторую строку и удалим её нажав вверху окна кнопку «Delete». Затем также удалим третью строку.

  4. Нажмём кнопку «Run» для начала симуляции.

image-loader.svg

Насколько данная симуляция точна? Наложим данный график на реальную осциллограмму.

image-loader.svg

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

image-loader.svg

  1. Добавим на схему согласующий резистор.

  2. Выберем параметр «RESISTANCE=».

  3. Впишем номинал 27 Ом и запустим симуляцию.

image-loader.svg

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

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

image-loader.svg

Для вычисления которого можно воспользоваться бесплатным калькулятором «Saturn PCB Design Toolkit»:

  1. Откроем в нём вкладку «Conductor Impedance».

  2. Выберем тип линии (её сечение будет изображено на картинке) — копланарная линия.

  3. Введём геометрические параметры.

  4. Диэлектрическая проницаемость текстолита FR4 указана по умолчанию верно — 4,6.

  5. Нажмём «Solve» и получим результат… отличающийся от реальности приблизительно на 10%.

Описанных инструментов будет достаточно для многих любительских проектов. Однако, не исключено, что после прочтения данной статьи могли остаться вопросы. К примеру:

  • Как посчитать импеданс линии на плате точнее, чем +/-10% ?

  • Является ли проводник на заглавной картинке копланарной линией?

  • Отличается ли скорость распространения сигнала по коаксиальному кабелю RG-174 и по текстолиту FR4?

В следующей части я постараюсь прямо или косвенно ответить на эти и другие вопросы, рассмотрев пакеты симуляции, за которые платят деньги.

© Habrahabr.ru