I2C и подтягивающие резисторы

У меня есть рабочий IMU EY88 10DOF, работающий на моей платформе Raspberry без каких-либо подтягивающих резисторов. Я кое-что прочитал в Интернете, и там говорится, что подтягивающие резисторы, несомненно, необходимы?

  1. Нужен ли подтягивающий резистор для линий SDA и SCL?
  2. Может ли это увеличить скорость передачи данных?

Спасибо Миша


person Misha    schedule 20.02.2017    source источник


Ответы (3)


Подтягивания обязательно нужны. Устройства I2C имеют соединения с открытым стоком к шине, что означает, что они не могут управлять высоким сигналом, они могут только управлять его низким уровнем или «освобождать» его. Подтяжки — это то, что приводит к высоким сигналам SDA/SCL. См. вступительную статью Sparkfun.

Здесь могут быть задействованы несколько вещей:

  1. Акселератор/гироскоп монтируется на какой-либо оценочной плате со встроенными подтягивающими устройствами.

  2. Линии ввода-вывода на Pi имеют внутренние подтяжки, которые включены.

person wkz    schedule 20.02.2017
comment
Хорошо понял. Миллс спасибо за ответ. Итак, в конечном счете, если я правильно понимаю, все интерфейсы I2C требуют подтягивающих резисторов. Но в моем случае подтяжки встроены в чип/модуль датчика как единое целое, и, следовательно, никаких дополнительных подтягиваний не требуется? - person Misha; 21.02.2017
comment
@Миша, короче, если у тебя заработало, то да. Я не понимаю, как это могло бы работать иначе. PS. Если вы считаете, что я ответил на ваш вопрос, рассмотрите возможность принятия ответа. - person wkz; 21.02.2017


Это зависит от общего Cb (емкостная нагрузка — см. спецификацию каждого устройства) вашей шины, а также от выбранного режима i2c. Резисторов 1,8 кОм вашей малины на линиях SDA и SCL может быть достаточно.

Вот онлайн-инструмент для правильного подбора резисторов на разных шинах. частоты.

person Khalil Khoury    schedule 11.03.2021