Микросхемы с шиной i2c

Сайт содержит тексты редких методических пособий, лабораторных и контрольных работ. Вообщем, то что трудно найти в сети но очень нужно для подготовки к экзаменам, в частности на заочной форме обучения.

Видео:Лекция 308. Шина I2CСкачать

Лекция 308.  Шина I2C

Представители микросхем с интерфейсом I2C

Как показывает практика, далеко не все микросхемы возможно использовать в радиолюбительском творчестве. Например, доста­точно трудно применять такие варианты, как микросхемы для теле­визионных приемников, формирователи сигналов разверток, кор­ректоры цветовых переходов, декодеры цветности, синтезаторы час­тоты для мобильных телефонов и т. д. Поэтому в рамках данной книги рассматриваются микросхемы, которые могут быть использо­ваны преимущественно в домашней аудиоаппаратуре, такой, как, например, усилители низкой частоты, усилители мощности, радио­приемники. Что-то подойдет для создания несложных и полезных устройств на основе микроконтроллера — охранные системы, сис­темы сбора информации, электронные частотомеры, фазометры, ге­нераторы. При необходимости получить информацию по другим ти­пам микросхем можно непосредственно с сайта фирмы Philips (http://www.semiconductors.philips.com). Следует отметить, что ори­гинальная документация требует перевода с английского языка, а значит, необходимо приложить некоторые усилия тем, кто англий­ский знает плохо или вообще не знает. Но при определенном навы­ке глубоких знаний не требуется и смысл большинства слов стано­вится ясным без перевода.

Итак, перейдем к рассмотрению микросхем.

Видео:Введение в шину I2CСкачать

Введение в шину I2C

ЭСППЗУ с последовательным доступом

Микросхемы ЭСППЗУ (электрически стираемые постоянно про­граммируемые запоминающие устройства) с последовательным дос­тупом появились на рынке сравнительно недавно, но тем не менее они прочно вошли в арсенал разработчика. Международная аббре­виатура микросхем — EEPROM (electrically erasable PROM). Истори-

чески первыми появились, впрочем, микросхемы с параллельным доступом, когда каждый бит байта мог быть считан или записан по отдельной линии, а значит, одновременно с другими битами. Адрес хранения байта задавался также параллельным способом. То есть, к примеру, память 8-разрядных данных на 256 ячеек должна содержать 8 линий данных и 8 линий адреса данных. Достоинством памяти с параллельным доступом является достаточно малое время досту­па — данные транслируются одновременно по всем линиям. Управ­лять такой памятью тоже очень просто, достаточно выставить адрес, и данные будут считаны (записаны).

Гораздо сложнее работать с последовательной памятью. Во-пер- вых, необходимо последовательно, бит за битом, передать адрес ячейки памяти, затем точно так же передать (или считать) данные. Очевидно, скорость обмена с такой памятью в десятки раз меньше, чем с памятью параллельной. Что и сдерживало появление такого ви­да памяти. Массовый выпуск последовательных EEPROM начался после того, как в составе малогабаритной техники появились не­сложные микроконтроллеры. В основном такая техника не критична к высокой производительности вычислительных устройств, к ней от­носится бытовая и управляющая аппаратура. Еще одно важное об­стоятельство, расширяющее возможности применения последова­тельных микросхем ЭСППЗУ, — их достаточно низкая стоимость.

Следует отметить, что для доступа к данным последовательной памяти используются разные интерфейсы: I 2 C, Microwire, SPI, CBUS. Некоторые сведения относительно номенклатуры микросхем можно почерпнуть в литературе [2]. Мы коснемся только тех, которые име­ют интерфейс I2C. Обратите внимание: ЭСППЗУ с интерфейсом I2C, выпускаемые разными фирмами (SGS-Thomson microelectronics, Philips, Microchip) и имеющими одно наименование (например, 24С01), могут немного отличаться по расположению выводов, спосо­бу задания slave-адреса, особенности внутренней организации, прин­ципам защиты от записи и др. При проектировании конкретных уст­ройств рекомендуется ориентироваться не только на наименование ЭСППЗУ, но также и поинтересоваться фирмой-производителем, по­лучить оригинальную техническую документацию.

Примеры применения EEPROM с последовательным доступом рассмотрим по документации [10, 11], относящейся к микросхемам

РСА8581 (128 х 8 битов) и PCF85xx (256. 1024 х 8 битов), произво­димых Philips, а также по мануалам [12, 13], описывающим микро­схемы 24LC16B (2048 х 8 битов) и 24LC32A (4096 х 8 битов) произ­водства фирмы Microchip.

Видео:Микросхемы и программаторы, Шины I2C и SPIСкачать

Микросхемы и программаторы, Шины I2C и SPI

РСА8581

Микросхема имеет два исполнения (без буквы «С» в окончании названия и с буквой), отличающихся по некоторым основным экс­плуатационным характеристикам. Основные параметры микросхе­мы:

• питающее напряжение от 4,5 до 5,5 В (РСА8581) и от 2,5 до 6,0 В (РСА8581С);

• встроенный импульсный умножитель напряжения «зарядовый насос» для обеспечения режима записи (для программирования памяти нужно напряжение 12 В, в то время как микросхемы пи­таются пониженным напряжением);

• автоматическое стирание ранее записанной информации перед записью новой (режим automatic erase/write);

• ток потребления в дежурном режиме 10 мкА;

• задание slave-адреса с помощью трех внешних выводов (АО, А1.А2);

• автоматический инкремент адреса при обращении;

• минимально гарантированное число циклов записи — 10 000;

• минимально гарантируемое время сохранения записанной ин­формации — 10 лет;

• бесконечно возможное число циклов чтения;

• рабочая температура окружающей среды от -25 до +85 °С;

• возможность использования на одной шине до 8 однотипных микросхем без дополнительных аппаратных средств переклю­чения и расширения;

Читайте также: Износ шин из за развала

• максимальная частота SCL сигнала — 100 кГц (режим low-speed).

Микросхема выпускается в 8-выводном корпусе типа DIP8 или S08 (с планарными выводами). Расположение выводов приведено на рис. 3.1, а их назначение — в табл. 3.1.

Видео:25 Шина I2CСкачать

25 Шина I2C

knigechka

Сайт содержит тексты редких методических пособий, лабораторных и контрольных работ. Вообщем, то что трудно найти в сети но очень нужно для подготовки к экзаменам, в частности на заочной форме обучения.

Видео:Урок 24. Узнаём адреса устройств на шине I2CСкачать

Урок 24. Узнаём адреса устройств на шине I2C

Вспомогательные микросхемы I2C

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

С фирмы Philips большинство. Из этого большого списка автором были выбраны три наименования: PCF8574 (интерфейсная микросхема), PCF8583 (часы/календарь), PCF8591 (АЦП/ЦАП). Ин­терес также представляет микросхема DS1621, выпускаемая фирмой Dallas Semiconductors, — электронный термометр.

Видео:Шина I2C.Скачать

Шина I2C.

PCF8574

Согласно документации [29], эта микросхема представляет собой remote 8-bit I/O expander for I2C bus, или 8-битовый интерфейс, со­вмещенный с интерфейсом I2C, предназначенный для трансляции данных. Проще говоря, микросхему эту можно использовать для пре­образования данных, поступающих с шины I2C в 8-битовый парал­лельный код, или последовательно передавать код по шине. Зачем нужна такая микросхема? К примеру, в какой-либо конструкции не­обходимо использовать микроконтроллер, включив его как slave-уст-

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

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

• сохранение работоспособности при напряжении питания от 2,5 до 6 В;

• низкое потребление тока в ждущем режиме — 10 мкА;

• открытый сток вывода «прерывание» (interrupt);

• 8-битовый двунаправленный I/O порт;

• совместимость с большинством микроконтроллеров;

• высокая нагрузочная способность выходов, позволяющая непо­средственно подключать светоизлучающие диоды;

• внешние 3 вывода slave-адреса, позволяющие подключить к шине I2C одновременно до 8 однотипных микросхем;

• корпус DIP 16 (SOT38-1) или S016 (SOT162-1).

Расположение выводов микросхемы приведено на рис. 3.55, на­значение выводов — в табл. 3.35.

Микросхемы с шиной i2c

Таблица 3.35. Назначение выводов PCF8574

Квази-двунаправленный I/O порт 0

Квази-двунаправленный I/O порт 1

Квази-двунаправленный I/O порт 2

Квази-двунаправленный I/O порт 3

Квази-двунаправленный I/O порт 4

Квази-двунаправленный I/O порт 5

Квази-двунаправленный I/O порт 6

Квази-двунаправленный I/O порт 7

Вывод сигнала прерывания (LOW)

В чем состоит «изюминка» данной микросхемы? Как известно, прием и передача данных посредством стробирования не вызывает сложностей. Достаточно помещать данные в сдвиговый регистр, а потом осуществлять их движение подачей стробирующих импуль­сов. Все это так, но главная сложность работы с шиной I2C заключа­ется в том, что затруднительно фиксировать условие Start, свидетель­ствующее об активизации шины. Если вы помните, в протоколе ши­ны был оставлен служебный адрес 0000 0001, называемый «программный Start». Работать в условиях программного отслежива­ния Start-условия достаточно трудно и далеко не всегда оправданно, поэтому в состав микросхемы PCF8574 была введена «изюминка» в виде вывода генерации прерывания (interrupt, INT). Сигнал прерыва­ния сообщит микроконтроллеру о начале активации шины. Таким образом, сторона микросхемы PCF8574, относящаяся к интерфейсу ГС, представляет собой обычное slave-усгройство (рис. 3.56).

Микросхемы с шиной i2c

Управляющая схема интерфейса параллельного ввода-вывода по­казана на рис. 3.57. Обратите внимание: интерфейсные выводы за­щищены от перегрузки диодами VD1 и VD2.

Микросхемы с шиной i2c

Поговорим теперь о программных способах работы с данной микросхемой. Традиционно начнем с определения slave-адреса (рис. 3.58).

Микросхемы с шиной i2c

Вам могут встретиться две разновидности микросхемы PCF8574 — с буквой «А» и без буквы. Отличаются они только че­тырьмя старшими битами slave-адреса. Таким образом, если на од­ной шине будет присутствовать 8 микросхем PCF8574 и 8 микросхем PCF8574A, конфликта это не вызовет. Биты А2. А0 задаются с помо­щью внешних выводов микросхем.

Запись в порт осуществляется по схеме, представленной на рис. 3.59. «Запись» в данном случае означает, что данные с шины I2C появятся на параллельном порте Р0. Р7.

Обратите внимание: данные появляются на выходе порта спустя время t после возникновения сигнала АСК (а также записи в порт). Микроконтроллер должен успеть считать предыдущие данные на ли­ниях Р0. Р7 до появления следующего байта данных.

Микросхемы с шиной i2c

Чтение с порта происходит по схеме, показанной на рис. 3.60. Напоминаем, что микросхема по-прежнему остается в режиме slave-устройства, то есть сигнал SCL генерируется master-устрой- ством.

Микросхемы с шиной i2c

Чтение данных с порта происходит в момент появления сигнала АСК. В промежутках между сигналами АСК данные менять нет смысла, поскольку они будут потеряны.

Очень важный и, можно даже сказать, принципиальный момент связан с генерацией сигнала прерывания INT. Аппаратно сигнал INT реализован по принципу выходного каскада с открытым сто­ком, поэтому необходима «подтяжка» к напряжению питания через pull-up резистор, как показано на рис. 3.61. Выводы INT разных микросхем можно объединить и подать на вывод прерывания мик­роконтроллера.

Микросхемы с шиной i2c

кий, так и в обратном направлении. Возврат сигнала INT происходит после генерации сигнала АСК (рис. 3.62) следующим образом:

а) в режиме чтения — в момент положительного перепада сигна­ла SCL;

б) в режиме записи — в момент отрицательного перепада сигнала SCL.

Прерывания, которые происходят в течение импульса АСК, мо­гут быть потеряны из-за очень короткой длительности импульса.

В табл. 3.36 приведены сведения, необходимые для разработчика.

Видео:MCP2515, контроллер CAN шины с интерфейсом SPIСкачать

MCP2515, контроллер CAN шины с интерфейсом SPI

Шина I2C. Подробности аппаратной реализации

Основная информация для понимания и проектирования аппаратного обеспечения, необходимого для шины I2C.

Видео:Установщик адресов Flash-i2cСкачать

Установщик адресов Flash-i2c

Дополнительная информация

Видео:Шина данных i2c - декодируем/синхронизируем с помощью осциллографа Lecroy!Скачать

Шина данных i2c - декодируем/синхронизируем   с помощью осциллографа Lecroy!

Иногда небольшое усложнение – это хорошо

Протокол I2C отличается некоторыми непростыми особенностями: вы не просто соединяете выводы нескольких микросхем вместе, а затем позволяете низкоуровневым аппаратным средствам брать управление на себя, пока вы читаете или записываете в соответствующий буфер, как это примерно происходит в случаях с SPI (последовательным периферийным интерфейсом) и UART (универсальным асинхронным приемником/передатчиком). Но сложность I2C небезосновательна; остальная часть данной статьи поможет вам понять несколько нюансов аппаратной реализации, которые делают I2C настолько универсальным и надежным вариантом для последовательной связи между несколькими независимыми микросхемами.

Видео:Передача данных - шина SPIСкачать

Передача данных - шина SPI

Открытый сток

Определяющей особенностью I2C является то, что каждое устройство на шине, должно подключаться к линиям тактового сигнала (сокращенно SCL) и сигнала данных (сокращенно SDA) через выходные драйверы с открытым стоком (или открытым коллектором). Давайте посмотрим, что это на самом деле означает. Сначала рассмотрим типовой CMOS (инвертирующий) выходной каскад:

Микросхемы с шиной i2c

Если на входе присутствует высокий логический уровень, NMOS транзистор открыт, а PMOS транзистор закрыт. Таким образом, выход имеет низкоомное соединение с землей. Если на входе присутствует низкий логический уровень, ситуация меняется на противоположную, а выход имеет низкоомное соединение с VDD. Это называется двухтактным выходным каскадом, хотя это название не особенно информативно, поскольку оно не подчеркивает низкое сопротивление соединений, которые управляют выходом. В общем случае вы не можете напрямую соединять два двухтактных выхода, поскольку ток будет свободно протекать от VDD до земли, если на одном выходе выдается логическая единица, а на другом – логический ноль.

Микросхемы с шиной i2c

Теперь рассмотрим схему с открытым стоком:

Микросхемы с шиной i2c

PMOS транзистор был заменен резистором, внешним по отношению к микросхеме. Если на входе присутствует высокий логический уровень, NMOS транзистор обеспечивает низкоомное соединение с землей. Но если на вход подается низкий логический уровень, NMOS транзистор выглядит как разомкнутая цепь, а это означает, что выход подтягивается к VDD через внешний резистор. Такой механизм приводит к двум важным отличиям. Во-первых, появляется неочевидное рассеивание мощности, когда на выходе низкий логический уровень, поскольку ток протекает через резистор, через канал NMOS транзистора на землю (в двухтактной схеме этот ток блокируется высоким сопротивлением закрытого PMOS транзистора). Во-вторых, выходной сигнал ведет себя по-другому, когда на выходе высокий логический уровень, так как выход подключен к VDD через гораздо более высокое сопротивление (обычно не менее 1 кОм). Эта особенность позволяет напрямую соединять два (и более) устройства с открытым стоком: даже если на одном из них низкий логический уровень, а на другом – высокий логический уровень, то подтягивающий резистор гарантирует, что ток не протекает свободно от VDD на землю.

Микросхемы с шиной i2c

Некоторые последствия использования на шине схемы с открытым стоком:

  • Сигналы всегда по умолчанию находятся в состоянии логической единицы. Напримем, если ведущее устройство I2C пытается связаться с ведомым устройством, которое вдруг перестало функционировать, сигнал данных никогда не войдет в неопределенное состояние. Если ведомое устройство не управляет сигналом, то он будет считан как логическая единица. Аналогично, если ведущее устройство выключается в середине передачи, линии SCL и SDA вернутся в состояние логической единицы. Другие устройства могут определить, что шина доступна для новых передач, наблюдая, что и SCL, и SDA находятся в состоянии логической единицы в течении определенного периода времени.
  • Любое устройство на шине может безопасно приводить сигналы в состояние логического нуля, даже если другое устройство пытается привести их в состояние логической единицы. Это является основой функции «тактовой синхронизации» или «растяжки тактового сигнала» на шине I2C: ведущее устройство генерирует последовательность тактовых импульсов, но при необходимости ведомое устройство может удерживать линию SCL на низком уровне и тем самым уменьшать тактовую частоту.
  • Устройства с различными напряжениями питания могут сосуществовать на одной и той же шине, пока устройства с более низким напряжением не будут повреждены более высоким напряжением. Например, устройство 3,3 В может связываться с устройством 5 В, если SCL и SDA подтянуты до 5 В – схема с открытым стоком приводит к тому, что высокий логический уровень достигает напряжения 5 В, хотя устройство 3,3 В с типовым двухтактным каскадом не может управлять линией 5 В.

Видео:PT2257, Электронный регулятор громкости с шиной I2CСкачать

PT2257, Электронный регулятор громкости с шиной I2C

Если у вас есть R, то у вас есть RC

Выходной каскад с открытым стоком ни в коем случае не является стандартной схемой среди цифровых микросхем, и для этого есть причина: он обладает некоторыми существенными недостатками. Один из этих недостатков становится очевидным, когда мы напоминаем, что емкость есть везде. Изменение напряжения ограничено временем, необходимым для заряда или разряда емкости, связанной с определенным узлом. Проблема в том, что подтягивающие резисторы на линиях SCL и SDA ограничивают ток заряда; другими словами, мы имеем гораздо большее сопротивление в RC цепи, постоянная времени которой регулирует переход напряжения от логического низкого уровня в логическому высокому уровню.

Микросхемы с шиной i2c Микросхемы с шиной i2c

Как показывают эти диаграммы, переход от низкого уровня к высокому будет происходить значительно медленнее, чем переход от высокого уровня к низкому, что приводит к классической «пилообразной» форме сигналов I2C:

Микросхемы с шиной i2c

Эти две осциллограммы показывают переход от низкого уровня к высокому и от высокого уровня к низкому для тактового сигнала шины I2C с подтягивающим резистором 1 кОм и минимальной емкостью (только два устройства на шине с короткими дорожками на печатной плате).

Микросхемы с шиной i2c

Видео:Логический анализатор шины i2cСкачать

Логический анализатор шины i2c

Как выбрать номинал подтягивающих резисторов

На этом этапе должно быть очевидно, что подтягивающее сопротивление накладывает ограничения на максимальную тактовую частоту конкретной шины I2C. На самом деле здесь оказывают влияние и сопротивление, и емкость, хотя емкость от нас мало зависит, потому что она определяется, главным образом, тем, сколько устройств подключено к шине, и характером соединений между этими устройствами. Это приводит к важному вопросу: «Какой выбрать номинал для подтягивающего резистора?». Компромисс между скоростью и рассеиваемой мощностью: более низкое сопротивление уменьшает постоянную времени RC цепи, но увеличивает величину тока, протекающего от VDD на землю (через подтягивающий резистор), когда на SCL или SDA выставлен низкий логический уровень.

Официальная спецификация I2C (стр. 9) гласит, что напряжение не считается «логическим высоким уровнем», пока не достигнет 70% от VDD. Вы можете вспомнить, что постоянная времени RC цепи говорит нам, сколько времени потребуется, чтобы напряжение достигло примерно 63% от конечного напряжения. Таким образом, для простоты будем считать, что R×C говорит нам, сколько времени потребуется, чтобы уровень сигнала вырос от напряжения, близкого к потенциалу земли, до уровня логической единицы.

Теперь, как найти емкость? «Простой» способ – это сборка всей системы и измерение емкости; по крайней мере, это, вероятно, проще, чем пытаться выполнить точный расчет, который учитывает каждый источник емкости – как отмечает рекомендация от Texas Instruments, «при обычном построении электрических схем формируется невообразимое количество конденсаторов». Если подход с измерением не подходит (как это часто бывает), вы можете выполнить приблизительную оценку, определив емкость вывода для каждого устройства на шине (здесь вам поможет техническое описание), а затем добавить 3 пФ на дюйм дорожки на печатной плате и 30 пФ на фут коаксиального кабеля (эти цифры взяты из той же рекомендации, стр. 3).

Предположим, что у нас емкость шины составляет 50 пФ, и мы хотим соответствовать спецификации «стандартного режима» I2C, в которой указано, что максимальное время нарастания составляет 1000 нс.

\[t_ =1000\ нс=\left(R\right)\left(50\ пФ\right)\ \ \Rightarrow\ \ R=20\ кОм\]

Таким образом, можно соответствовать требованиям спецификации с Rподтягивающий = 20 кОм : это значение также дает минимальное энергопотребление. Как насчет скорости? Предположим, вы хотите, чтобы длительность присутствия высокого логического уровня на линии синхронизации было, по крайней мере, в три раза больше времени нарастания.

Если 167 кГц не достаточно много, вы можете снизить сопротивление (за счет увеличения энергопотребления), пока не достигните желаемой тактовой частоты. (Фактически, «стандартный режим» ограничивает тактовую частоту до 100 кГц, но вы можете адаптировать эти спецификации под потребности вашей системы.)

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

Видео:Подключение нескольких устройств, датчиков по I2C (АйТуСи) шинеСкачать

Подключение нескольких устройств, датчиков по I2C (АйТуСи) шине

Заключение

Если эта статья выполняет свою цель, то вы теперь хорошо знакомы с основными деталями, связанными с разработкой аппаратного обеспечения I2C. А реализацию программного обеспечения мы рассмотрим в отдельной статье.


📺 Видео

I2C хаб — как подключить одинаковые I²C модули к одной шине. Управляем IMU, матрицами, NFC и RTC.Скачать

I2C хаб — как подключить одинаковые I²C модули к одной шине. Управляем IMU, матрицами, NFC и RTC.

Как узнать адрес устройства подключенного к шине I2CСкачать

Как узнать адрес устройства подключенного к шине I2C

I2C интерфейсСкачать

I2C интерфейс

💡 Arduino - Экраны #1 - LCD1602 и i2c шина - EP6Скачать

💡 Arduino - Экраны #1 - LCD1602 и i2c шина - EP6

Подключение нескольких устройств по шине i2cСкачать

Подключение нескольких устройств по шине i2c

Шина I2CСкачать

Шина I2C

Урок 26.3 Соединяем две arduino по шине I2C #iarduinoСкачать

Урок 26.3 Соединяем две arduino по шине I2C #iarduino
Поделиться или сохранить к себе:
Технарь знаток