В системах I2C обычно на одной шине работают как стандартные, так и быстрые устройства.
Скорость и энергопотребление систем I2C зависят от сопротивлений подтягивающих резисторов: их значения должны быть достаточно низкими, чтобы обеспечить быстрый заряд емкости шины.
Однако низкие значения увеличивают энергопотребление, а также могут представлять чрезмерно большую нагрузку для передатчика.
Изменяемая топология шины может несколько усложнить ситуацию.
Следовательно, когда мощность системы ограничена, и нужно использовать несколько микросхем I2C в разных режимах шины, придется искать компромисс между этими микросхемами. Или можно использовать адаптивную подтяжку, которая показана на Рисунке 1.
![]() |
|
Рисунок 1. | Адаптивная подтяжка, где закрытый транзистор подключает дополнительные резисторы R5 и R6 параллельно основным подтягивающим резисторам R1 и R2. |
Схема довольно проста: закрытый транзистор подключает дополнительные резисторы R5 и R6 параллельно основным подтягивающим резисторам R1 и R2.
Подключением можно управлять, например, с помощью входа/выхода общего назначения (GPIO), как показано на Рисунке 1, и его следует выполнять до начала быстрого обмена данными.
Другое решение показано на Рисунке 2, где представлена одна половина всей схемы (вторая половина для SDA для краткости опущена). Для отключения «быстрой» части шины в схеме используется аналоговый переключатель (например, TS5A3159 от TI). Когда она отключена, резистор R5 обеспечивает высокий уровень напряжения на незанятой шине. Следует учитывать емкость переключателя, которая может быть достаточно большой (от 20 до 100 пФ).
![]() |
|
Рисунок 2. | Альтернативное решение, использующее аналоговый переключатель для отключения «быстрой» части шины. |