Соединение устройств с различным питанием в одну шину I2C

I2C busОбщий привет!

Буквально на днях потребовалось соединить в одну I2C-шину четыре устройства с различными уровнями (два 5-вольтовых ЦАПа и 3.3-вольтовые память и микроконтроллер). Встречаются низковольтные микросхемы толерантные к повышенным уровням на входах. В свою очередь, для некоторых пятивольтовых чипов "понятны" логические уровни нуля и единицы их низковольтных собратьев. В остальных же случаях требуется схема сдвига уровня. Инженеры NXP (а эти парни знают что говорят - они же I2C и разработали) предлагают простое, недорогое и оригинальное решение этой проблемы, которое, собственно, и было применено.

СХЕМА СДВИГА УРОВНЕЙ В ШИНЕ ИНТЕРФЕЙСА I2C

Введение.

Современные технологии производства интегральных схем с зазорами в доли микрометра ограничивают максимальную величину питающих напряжений и, соответственно, амплитуду логических уровней в цифровых линиях ввода-вывода. Для сопряжения таких низковольтных схем с существующими 5-вольтовыми устройствами необходимы устройства сдвига уровня. Для двунаправленных интерфейсов, таких как шина I2C, применяемые устройства сдвига уровня также должны быть двунаправленными и не требовать дополнительного сигнала контроля направления. Простейший способ решить эту проблему — это подсоединить МОП-транзистор к каждой линии шины.

Двунаправленная схема сдвига уровня для быстрого и стандартного режимов I2C-шины.

Несмотря на свою удивительную простоту, такое решение не только отвечает всем требованиям двунаправленного устройства сдвига уровня без необходимости в сигнале управления направлением, но также:

- изолирует обесточенную часть шины от остальной части системы;

- защищает "низковольтную" часть схемы от выбросов напряжения на "высоковольтной" стороне.

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

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

Устройства с различными напряжениями можно присоединить к одной шине используя подтягивающие резисторы к линии напряжения питания. Хотя это самое простое решение, однако низковольтное устройство должно выдерживать наличие на своих выводах напряжения 5 Вольт, что делает его более дорогим в производстве. Использование двунаправленной схемы сдвига уровня, тем не менее, делает возможным соединить две части системы с I2C-шиной, даже если эти части имеют разные напряжения питания и различные логические уровни. Такая конфигурация показана на рисунке 1. В левой ("низковольтной") части схемы установлены подтягивающие резисторы вверх и устройства подсоединенные к шине питания напряжением 3.3 В; правая ("высоковольтная") часть также имеет подтягивающие резисторы вверх и устройства подсоединенные к шине питания напряжением 5 Вольт. Устройства в каждой секции имеют линии ввода-вывода с входными логическими уровнями соответствующими их питающим напряжениям, и выходами сконфигурированными как открытый сток.

схема сдвига уровня в шине I2C

Рисунок 1 — Двунаправленная схема сдвига уровней позволяет соединить две части схемы с разными напряжениями в одну I2C-шину.

Схема сдвига уровня для каждой линии шины идентична и состоит из одного N-канального МОП-транзистора: TR1 для линии данных SDA и TR2 для линии тактового сигнала SCL. Затворы (g) должны быть подсоединены к более низкому напряжению питания VDD1, истоки (s) к линиям шины на стороне "низковольтной" секции, а стоки (d) к линиям шины "высоковольтной" части схемы. У большинства МОП-транзисторов подложка внутри соединена с истоком, однако если для выбранного транзистора это не так, то необходимо обеспечить соединение снаружи. Каждый МОП-транзистор имеет встроенный диод (p-n переход) между стоком и подложкой.

Работа схемы сдвига уровня.

Рассмотрим следующие три состояния во время операций схемы сдвига уровня.

1. Ни одно из устройств не притягивает линию шины к земле. Линия шины "низковольтной" части схемы подтянута вверх резисторами RP до уровня 3.3 Вольта. Затвор и исток МОП-транзистора находятся под одинаковым потенциалом 3.3 Вольта, поэтому напряжение между затвором и истоком VGS ниже порога открывания и транзистор заперт. Это позволяет шине на "высоковольтной" стороне быть подтянутой вверх с помощью подтягивающих резисторов RP до уровня 5 Вольт. Таким образом линии шины в обоих частях схемы находятся в состоянии высокого уровня, но при различных напряжениях.

2. Устройство питающееся от 3.3В притягивает линию шины на низкий логический уровень. На истоке МОП-транзистора появляется напряжение низкого уровня, в то время как затвор остается под напряжением 3.3 Вольта. Напряжение затвор-исток (VGS) возрастает выше порогового значения и транзистор открывается. Линия шины в "высоковольтной" части также притягивается к низкому уровню 3.3-вольтовым устройством через открытый транзистор. Таким образом линия шины в обоих частях схемы находится на низком логическом уровне и при одинаковом потенциале.

3. Пятивольтовое устройство притягивает линию к низкому уровню. Встроенный в транзистор диод оказывается присоединенным катодом к земле и "низковольтная" часть линии притягивается к низкому уровню пока VGS не станет выше порогового значения и тогда МОП-транзистор открывается. После этого линия шины "низковольтной" части схемы еще больше притягивается к земле 5-вольтовым устройством через проводящий канал транзистора. Таким образом, линия шины с обоих сторон схемы находится на низком логическом уровне и при одинаковом потенциале.

Все три вышеперечисленных состояния показывают, что логические уровни передаются по шине в обоих направлениях, независимо от того в какой части схемы инициируется изменение уровня сигнала. В состоянии номер 1 схема выполняет функции сдвига уровня, в состояниях 2 и 3 — выполняется функция "монтажного И" между линиями шины обоих секций, как это требуется спецификацией шины I2C.

Предложенная методика также может применяться для напряжений питания отличных от 3.3 В для VDD1 и 5 В для VDD2. Так, например, возможно применить 2 Вольта для VDD1 и 10 Вольт для VDD2. Для нормального функционирования схемы напряжение VDD2 должно быть равно или больше чем VDD1 (допускается падение напряжения VDD2 ниже уровня VDD1 во время включения и выключения питания).

Автор NXP Semiconductors
Оригинальное название Level shifting techniques in I2C-bus design
Источник NXP Semiconductors, Application Note AN10441
Дата публикации 06/2007
Дата перевода 08/2009
Версия перевода 1.0

Скачать статью в формате PDF (109 кб)

Похожие статьи:

Поделитесь своим мнением

. . . . . . . . . . . . . . . . . . . . . . . . . . . .