Как рассчитывается емкость электрической шины для трассы I2C?

Я пытаюсь узнать, как рассчитать емкость шины дерева I2C с ведущим и несколькими ведомыми устройствами.

Например, в этом документе от TI показано, как рассчитать значение подтягивающих резисторов, и просто предполагается, что нагрузка каждой линии шины составляет 400 пФ.

Где я могу получить этот номер pF в моем дизайне i2c?

Что я могу придумать, так это два источника (чего мне не хватает?):

  1. Мне нужно посмотреть характеристики всех ведомых устройств и сложить их емкости, чтобы они были параллельны, верно?
  2. Вторым источником будет сама трассировка I2C, верно? Если моя дорожка имеет длину, скажем, 6 дюймов, как мне рассчитать емкость этой дорожки?

введите описание изображения здесь

1. Да, получение данных с ведомых устройств добавляет все эти емкости. Это должно быть точное измерение. 2. Емкость трассировки не должна иметь большого значения. Но в Google есть бесплатные инструменты, которые могут рассчитать емкость дорожек или переходных отверстий. Затем вы можете добавить их обоих.
Калькулятор емкости дорожки печатной платы, по крайней мере, первое попадание в Google, довольно грубый и не просто выплевывает, на двухслойной медной плате весом 1 унция с шириной дорожки X емкость равна Y. Он также предполагает, что плоскость заземления будет прямо под вашими следами, так что это не просто функция «как вы этого еще не знали»

Ответы (2)

Как рассчитывается емкость электрической шины для трассы I2C?

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

Откуда взялись 400 пФ? Тот, кто написал это примечание к приложению, вытащил его из воздуха, полагая, что это «большое» число, но все же заставляет все работать правильно с частями, которые он пытается показать вам, насколько они замечательны.

400 пФ звучит довольно много даже для длинной дорожки на большой плате, так что это почти такое же хорошее число, как и любое другое. Конечно, единственный способ узнать наверняка — это измерить ваш конкретный случай.

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

Например, предположим, что это обычная шина IIC, где максимальный потребляемый ток на линию составляет 3 мА. (3,3 В)/(3 мА) = 1,1 кОм, что является наименьшим значением подтяжки, которое можно использовать при напряжении 3,3 В. Допустим, линия действительно имеет паразитную емкость 400 пФ на землю. Подтяжка и эта емкость образуют RC-фильтр нижних частот с постоянной времени (1,1 кОм) (400 пФ) = 440 нс. Я не помню навскидку, каков гарантированный высокий уровень логики для IIC (ваша работа — искать), поэтому давайте в качестве примера возьмем 2,0 В. RC-фильтру требуется 0,93 постоянной времени, чтобы подняться с 0 до 2,0 В, что составляет 410 нс. Именно столько времени требуется после того, как 1 «записана» на шину, прежде чем все устройства гарантированно увидят его как 1. Очевидно, вам нужно, чтобы время полубита было немного больше, чем это. При полубитовом времени 410 нс у вас есть битовое время 820 нс, или максимальная тактовая частота 1,2 МГц. Опять же, вам нужна маржа. Коэффициент 2 был бы хорошим, так что вы можете рассматривать 600 кГц как верхний предел тактовой частоты. Базовые ведомые IIC могут иметь 400 кГц в качестве верхнего предела, на котором эта шина должна работать нормально.

Опять же, помните, что некоторые числа были составлены в этом примере. Ваша задача — проверить все соответствующие спецификации и подставить правильные значения. Я только пытаюсь показать, как проводить расчеты.

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

Теперь у нас есть дорожки, соединяющие эти шины, и у них есть собственное сопротивление (емкостное и индуктивное). Вы можете забыть об индуктивных, поскольку они играют только на высоких частотах, а не на I2C. Емкость этих дорожек можно рассчитать с помощью таких инструментов, как Saturn PCB или Agilent, чтобы получить приблизительную оценку емкостной нагрузки на вашу шину.

введите описание изображения здесь