Радиотехнический сайт RADIOTRACT

Радиотехника и электроника для разработчиков и радиолюбителей

Информация

 

 

Справочные данные на радиоэлектронные компоненты, приборы, средства связи и измерений. Радиотехническая литература.

Общая

Микроконтроллеры

ПЛИС

Измерения

Радиостанции

Библиотека

Справочники

Доска объявлений

Объявления о покупке и продаже радиокомпонентов. Спрос и предложение на различные радиодетали и приборы.

Куплю

Продам

Магазин

Программы

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

Радиотехника

Интернет

Калькуляторы

Другие

Мы в соцсетях

  

Измерения

Информация\Измерения\Цифровые осциллографы\Диагностика последовательных шин I2C

Диагностика последовательных шин I2C

I2С

Исходные данные

I2С или "I квадрат C" — шина связи IС. Эта шина была разработана в начале 1980-x компанией Philips и предназначалась для предоставления недорогого способа подключения контроллеров к периферийным микросхемам в телевизорах, a затем была принята в качестве мирового стандарта для обмена данных между устройствами во встроенных системах. Простая двухпроводная конструкция нашла применение в различных микросхемах, таких как микросхемы ввода/вывода, АПЦ, ЦАП, датчиках температуры, микроконтроллерах и микропроцессорах различных ведущих производителей, включая: Analog Devices, Atmel, lnfineon, Cyprus, Intel, Maxim, Philips, Silicon Laboratories, STMicroelectronics, Texas Instruments, Xicor и др.

Принцип работы

Физически шина I2С представляет собой двухпроводный интерфейс с двунаправленными линиями последовательной синхронизации (SCL) и линии передачи данных (SDA). Шина I2С поддерживает несколько ведомых и ведущих устройств, но одновременно может быть активно только одно ведущее устройство. Любое устройство I2С можно подключить к шине и осуществлять обмен данными c ведущим устройством. Все устройства распознаются по уникальному адресу и могут использоваться в качестве передатчика или приемника, в зависимости от их функций. Изначально в шине I2С использовались 7-разрядные адреса, сейчас — 10-разрядные. Поддерживается три скорости передачи бытов: 100 кбит/c (стандартный режим), 400 кбит/c (быстрый режим) и 3,4 Мбит/с (быстродействующий режим). Максимальное количество подключаемых устройств определяется максимальной емкостью 400 пФ или примерно 20-30 устройств. Стандарт I2С определяет следующий формат, представленный на рис. 4:
Start (Старт) — указывает, что управление шиной передано устройству и будет передано сообщение.
Address (Адрес) — 7- или 10-разрядный номер, соответствующий адресу устройства, с которого будут считываться данные или на которое будут записываться данные.
R/W Bit (Бит чтения/записи) — один бит, указывающий, что данные будут считываться c одного устройства или записываться в другое устройство.
Ack (Подтверждение) — один бит с ведомого устройства c подтверждением действия ведущего устройства. Как правило, подтверждение требуется для каждого адреса и байта данных, но не всегда.
Data (Данные) — целое число байт, считываемых или записываемых устройством.
Stop (Стоп) — указывает на завершение сообщения, ведущее устройство освобождает шину.

Структура сообщения I2C
Рис. 4. Структура сообщения I2C.

Меню настройки шины I2C
Рис. 5. Меню настройки шины I2C.

Пример шины I2C
Рис. 6. Пример шины I2C.

Работа с шиной I2С

Благодаря модулю последовательного запуска DPO4EMBD и приложению анализа, осциллографы серии DPO4000 представляют собой эффективный инструмент для разработчиков встроенных систем c шинами I2C. На передней панели имеются две кнопки шины (В1 и В2), позволяющие пользователям определить входы осциллографа в качестве шины. На рис. 5 показано меню настройки шины I2C. Определяя, какие каналы синхросигналов и данных включены, a также пороги определения логической 1 и О, можно использовать осциллограф для анализа протокола передачи. Благодаря этому осциллограф может выполнять запуск по любой заданной информации на уровне сообщения, a затем декодировать зарегистрированную осциллограмму и выводить понятные результаты. Времена запуска по фронту в надежде обнаружить нужное событие и последующее ручное декодирование сообщения ушли в прошлое. B качестве примера рассмотрим встроенную систему, представленную на рис. 6. Шина I2C подключена к нескольким устройствам, включая CPU (ЦПУ), память EEPROM, контроллер скорости вентилятора, DAC (ЦАП) и пару датчиков температуры. Инструмент вернули на доработку и анализ неисправностей, так как он постоянно грелся и самопроизвольно отключался. Первое, что необходимо проверить, — контроллер вентилятора и сам вентилятор, но они работают нормально. Далее нужно проверить датчик температуры. Контроллер скорости вентилятора периодически опрашивает два датчика температуры (расположенные в различных зонах инструмента) и регулирует скорость вентилятора для поддержания температуры внутри инструмента. Имеется подозрение, что один или оба датчика температуры работают c ошибкой. Чтобы просмотреть взаимодействие между датчиками и контроллером скорости, необходимо подключиться к линиям синхронизации и данных шины I2С и выполнить настройку шины на осциллографе DPO4000. Известно, что адреса датчиков в шине I2С — 18 и 19, поэтому настройка события запуска выполняется по записи в адрес 18 (контроллер скорости вентилятора запрашивает датчик o текущей температуре). На рис. 7 представлена зарегистрированная осциллограмма c запуском. B этом случае канал 1 (желтый) подключен к SCLK, канал 2 (голубой) — к SDA. Фиолетовая осциллограмма соответствует шине I2С, настроенной c помощью ввода на осциллографе нескольких параметров. B верхней части дисплея показана вся зарегистрированная осциллограмма. B этом случае было зафиксировано, что после длительного ожидания в шине возник всплеск активности в середине участка, этот участок был затем увеличен. B нижней большой части экрана представлено окно увеличения. Можно заметить, что осциллограф декодировал содержимое всех сообщений, передаваемых по шине. B осциллографах серии DPO4000 для выделения важных участков сообщения используется выделение цветом или маркеры. Рассматривая зарегистрированные осциллограммы, можно заметить, что осциллограф на самом деле выполнил запуск при записи по адресу 18 (см. левый нижний угол дисплея). Фактически контроллер скорости вентилятора пытается выполнить запись по адресу 18 два раза, но в обоих случаях не получает подтверждение приема. Затем выполнена проверка датчика температуры по адресу 19. Почему первый датчик температуры не отвечает на вызов контроллера вентилятора? Посмотрев на плату, можно обнаружить, что одна из адресных линий плохо припаяна. Датчик температуры не может обмениваться данными по шине, в результате устройство перегревается. Благодаря функциональным возможностям осциллографов серии DPO4000 запуска по событию и декодированию данных в шине I2C, поиск трудно определимой проблемы был выполнен всего за несколько минут.

Декодирование осциллограммы адресной линии и линии данных I2C
Рис. 7. Декодирование осциллограммы адресной линии и линии данных I2C.

Условие в шине Указано :
Запуск указан вертикальной зеленой полосой. Повторным запуском считается другой запуск без предыдущей остановки. Меню настройки шины I2C
Адреса отмечены желтыми прямоугольниками c буквами [W] (запись) или [R] (чтение). Значения адресов могут отображаться в двоичной или шестнадцатеричной форме. Меню настройки шины I2C
Данные представлены в голубых прямоугольниках. Значения данных могут быть представлены в двоичном или шестнадцатеричном формате. Меню настройки шины I2C
Отсутствие подтверждения указано восклицательным знаком в красной рамке. Меню настройки шины I2C
Остановки отмечены красными вертикальными полосами. Меню настройки шины I2C

Таблица 1. Условия в шине.

B примере на рис. 7 выполнялся запуск по записи, но функциональные возможности осциллографов серии DPO4000 включают и другие возможности по запуску при тестировании шины I2С.
Старт — запуск, если значение SDA низкое, a значение SCL высокое.
Повторный старт — запуск, если условию запуска не предшествует остановка. Как правило, ведущее устройство отправляет несколько сообщений и только затем освобождает шину.
Остановка — запуск, если значение SDA высокое и значение SCL высокое.
Отсутствие подтверждения — ведомые устройства часто конфигурируются для передачи подтверждения после приема каждого байта адреса или данных. Осциллограф может использовать запуск в случаях, если ведомые устройства не формируют бит подтверждения.
Адрес — запуск по указанному пользователем адресу или по любому предварительно запрограммированному адресу, включая общий вызов, начальный байт, быстродействующий режим, память EEPROM или CBUS. Адресация использует 7 или 10 бит и вводится в двоичном или шестнадцатеричном формате.
Данные — запуск по 12 байтам заданных пользователем значений данных, введенных в двоичном или шестнадцатеричном формате.
Адрес и данные — это позволяет вводить значения адресов и данных, a также чтение или запись для регистрации нужного события.

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

Начало статьи - Отладка низкоскоростных последовательных шин при проектировании встроенных систем.


Комментарии

comments powered by Disqus