2398393f

Устройство hid на шине i2c что это

I 2 C – двухпроводной интерфейс, разработанный корпорацией Philips. В первоначальном техническом требовании к интерфейсу максимальная скорость передачи данных составляла 100 Кбит/с. Однако со временем появились стандарты на более скоростные режимы работы I 2 C. К одной шине I 2 C могут быть подключены устройства с различными скоростями доступа, так как скорость передачи данных определяется тактовым сигналом.

Протокол передачи данных разработан таким образом, чтобы гарантировать надежный прием передаваемых данных.

При передаче данных одно устройство является «Master», которое инициирует передачу данных и формирует сигналы синхронизации. Другое устройство «Slave» — начинает передачу только по команде, пришедшей от «Master».

В микроконтроллерах PIC16CXXX аппаратно реализован режим «Slave» устройства в модуле SSP. Режим «Master» реализуется программно.

Основные термины, используемые при описании работы с шиной I 2 C:

Передатчик – устройство, передающее данные по шине

Приемник – устройство, получающее данные с шины

«Master» — устройство, которое инициирует передачу и формирует тактовый сигнал

«Slave» — устройство, к которому обращается «Master»

Multi-«Master» — режим работы шины I 2 C с более чем одним «Master»

Арбитраж – процедура, гарантирующая, что только один «Master» управляет шиной

Синхронизация – процедура синхронизации тактового сигнала от двух или более устройств

Выходные каскады формирователей сигналов синхронизации (SCL) и данных (SDA) должны быть выполнены по схемам с открытым коллектором (стоком) для объединения нескольких выходов и через внешний резистор подключены к плюсу питания для того, чтобы на шине был уровень «1», когда ни одно устройство не формирует сигнал «0». Максимальная емкостная нагрузка ограничена емкостью 400 пФ.

Инициализация и завершение передачи данных

В то время, когда передача данных на шине отсутствует, сигналы SCL и SDA имеют высокий уровень за счет внешнего резистора.

Сигналы START и STOP формируются «Master» для определения начала и окончания передачи данных соответственно.

Сигнал START формируется переходом сигнала SDA из высокого уровня в низкий при высоком уровне сигнала SCL. Сигнал STOP определяется как переход SDA из низкого уровня в высокий при высоком уровне SCL. Таким образом, при передаче данных сигнал SDA может изменяться только при низком уровне сигнала SCL.

Адресация устройств на шине I 2 C

Для адресации устройств используется два формата адреса:

Простой 7-разрядный формат с битом чтения/записи R/W;

и 10-разрядный формат – в первом байте передается два старших бита адреса и бит записи/чтения, во втором байте передается младшая часть адреса.

Подтверждение приема

При передаче данных после каждого переданного байта приемник должен подтвердить получение байта сигналом ACK.

Если «Slave» не подтверждает получение байта адреса или данных, «Master» должен прервать передачу, сформировав сигнал STOP.

При передаче данных от «Slave» к «Master», «Master» формирует сигналы подтверждения приема данных ACK. Если «Master» не подтвердит приема байта, «Slave» прекращает передачу данных, «отпуская» линию SDA. После этого «Master» может сформировать сигнал STOP.

Для задержки передачи данных «Slave» может установить логический нуль, указывая «Master» о необходимости ожидания. После «отпускания» линии SCL передача данных продолжается.

Передача данных от «Master» к «Slave»

Чтение данных из «Slave»

Использование сигнала повторного START для обращения к «Slave»

Режим Multi-«Master»

Протокол передачи данных I 2 C позволяет иметь более одного «Master» на шине. Для разрешения конфликтов на шине при инициализации передачи используются функции арбитража и синхронизации.

Читайте также:  Как поменять мелодию вызова на телефоне

Арбитраж

Арбитраж выполняется на линии SDA при высоком уровне линии SCL. Устройство, которое формирует на линии SDA высокий уровень когда другое передает низкий, теряет право брать «Master» и должно перейти в режим «Slave». «Master», потерявший инициативу на шине, может формировать тактовые импульсы до конца байта, в котором потерял свойства ведущего.

Синхронизация

Синхронизация на шине происходит после выполнения арбитража по отношению к сигналу SCL. При переходе сигнала SCL с высокого уровня в низкий, все заинтересованные устройства начинают отсчитывать длительность низкого уровня. Затем устройства начинают переводить уровень SCL из низкого в высокий согласно требуемой скорости передачи данных. После перехода уровня из низкого в высокое состояние, заинтересованные устройства отсчитывают длительность высокого уровня. Первое устройство, которое переведет сигнал SCL в низкий уровень, определяет параметры тактового сигнала.

Как я уже неоднократно упоминал в своих публикациях, любительские проекты финансируются из семейного бюджета, и радиолюбитель, обычно, не может себе позволить покупку дорогостоящего измерительного оборудования. Приходится довольствоваться тем, что есть. Или тем, что удаётся взять попользоваться «на время». А иногда от безысходности радиолюбителю приходится «сверлить пилой и пилить буравчиком».

Недавно я испытал потребность выяснить, что на самом деле передаётся в разрабатываемом мной устройстве по шине I2C. Это был тот счастливый момент, когда можно было себе позволить «пилить пилой».

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

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

В данном случае мне достался «на время» цифровой двухканальный осциллограф с памятью Rigol DS1102 (цена на сайте производителя $461). У этого прибора есть два канала измерения с полосой пропускания до 100 MHz и частотой выборки сигнала 1 GSa/s.

К сигналу SCL был подключен CH1. К сигналу SDA был подключен CH2. Для обоих каналов был установлен масштаб 1.00 V/дел. Масштаб развёртки – 10 us/дел. Для наглядности луч первого канала смещён в верхнюю половину экрана, а луч второго канала – в нижнюю.

В меню Trigger осциллограф был настроен на однократное измерение с запуском по достижению передним фронтом в канале CH1 уровня 1.00 V:

После включения тестируемого оборудования была нажата большая красная кнопка Run/Stop. Осциллограф встал в режим ожидания, затем запустился. Через несколько секунд запись была остановлена вручную.

Полученная осциллограмма записывалась на внешний носитель поэкранно:

Произведём разбор записанных сигналов. На первом экране мы видим отображение настроек прибора и осциллограмму сигналов SCL (верхняя часть) и SDA (нижняя часть экрана), на которой читаем слева направо:

  • сигнал START: ведущее устройство выставляет низкий уровень сначала на шине SDA, а затем на шине SCL;
  • 7-bit адрес: читаем 0x60 (1100000) на шине SDA по передним фронтам SCL;
  • признак режима записи: читаем на шине SDA низкий уровень по следующему переднему фронту SCL;
  • сигнал ACK: ведущее устройство после передачи байта переключается на приём по шине SDA, на SDA устанавливается высокий уровень, ведомое устройство по заднему фронту SCL выставляет на SDA низкий уровень (собственно, сигнал ACK), который ведущее устройство считывает по переднему фронту SCL;
  • сигнал STOP: ведущее устройство выставляет высокий уровень сначала на шине SCL, а затем на шине SDA
Читайте также:  Iphone 6s a1633 a1688

Подобным образом, медленно, но верно, можно произвести вручную дешифровку остальных частей записи.

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

Для использования в качестве логического анализатора мне был любезно предоставлен коллегами Saleae Logic 8 (цена на сайте производителя $399). В качестве программного обеспечения использовалась демо-версия Saleae Logic 1.2.18, взятая с официального сайта. Устанавливая данное программное обеспечение, я принял лицензионное соглашение с условием, в том числе, не использовать данное программное обеспечение с оборудованием сторонних производителей.

В программе был включен анализатор протокола I2C. Для сигнала SCL был назначен канал CH0, а для сигнала SDA – канал CH1. Частота выборки сигнала 24 MSa/s.

Запуск был настроен по «переднему» фронту CH0. Для отображения данных был выбран шестнадцатеричный формат.

После включения тестируемого оборудования была нажата большая зелёная кнопка Start, и через несколько секунд на экран вывелась диаграмма:

Максимум пользы в применении логического анализатора я вижу в том, что программа сама дешифрует полученные данные. Результаты дешифровки заносятся построчно в окно Decoded Protocols. При выборе в окне строки данных, программа показывает расположение этих данных на диаграмме.

Для сравнения вариантов я «склеил» в графическом редакторе четыре снимка экрана осциллографа и фрагмент диаграммы логического анализатора:

Start обозначен зеленым кружочком, Stop – красным кружочком. На диаграмме сначала происходит проверка наличия на шине устройства с адресом 0x60, а затем производится запись в регистр 0xB7 этого устройства значения 0x80.

Если подходить к сравнению вариантов «с пристрастием», то можно заметить, что на диаграмме логического анализатора (частота выборки 24 MSa/s) присутствует «джиттер» сигнала SCL, которого нет, как такового, на осциллограмме с частотой выборки 1 GSa/s. В остальном картина совпадает, а логическим анализатором ещё и производится правильная дешифрация данных в автоматическом режиме.

При выборе «или-или» в «сухом остатке» имеем, в случае осциллографа, дорогое универсальное устройство, не такое удобное для анализа шины, как логический анализатор, но за сопоставимые с ним деньги. В этих условиях лично я, как инженер «старой закалки», приобрёл бы цифровой осциллограф.

Однако, если бы существовало программное обеспечение с лицензионным соглашением, позволяющим использование недорогих клонов популярных логических анализаторов, типа Saleae Logic 8 или DSLogic Plus…

Недорогие клоны популярных логических анализаторов, и не только их, поддерживает программное обеспечение open source проекта sigrok.

Было собрано рабочее место:

После чего начались «танцы с бубном». На Windows 10 запустилась только 32-разрядная версия PulseView. Наличие в системе недорогого китайского клона Saleae Logic (цена на сайте продавца $7) она не определила.

После этого, в Zadig для устройства Logic были установлены драйверы WinUSB, и после повторного сканирования оно определилось в Zadig, как устройство fx2latw:

После этого для устройства fx2latw в Zadig снова были установлены драйверы WinUSB, и только после этого PulseView увидела в списке устройство «Saleae Logic». Устройство было подключено.

Читайте также:  Глаголы 1 и 2 спряжения таблица примеры

После подключения устройства были произведены следующие настройки программы (слева направо по панели инструментов, начиная с надписи «Saleae Logic»):

  • выставлено Pre-trigger capture ratio = 2% по нажатию кнопки с ключом и отвёрткой;
  • отключены лишние входы по нажатию кнопки с красным щупом;
  • выставлен объем записи 100 К выборок;
  • выставлена частота выборки 24 MHz;
  • включен анализатор протокола I2C по нажатию кнопки с жёлто-зелёным значком.

Далее в панели слева от каналов:

  • каналам присвоены соответствующие сигналам текстовые метки;
  • условием запуска назначен задний фронт сигнала SDA;
  • сигналам I2C назначены соответствующие каналы.

После включения тестируемого оборудования была нажата кнопка Run. Получен уже знакомый результат:

Похоже, «танцы с бубном» того стоили!

UPD: После ручной установки в Диспетчере устройств для устройства USB Logic драйвера libusb-win32 программа PulseView начала стабильно определять наличие в системе «Saleae Logic» без манипуляций с Zadig.

Краткие выводы:

В статье была описана методика проведения анализа сигналов шины I2C с помощью цифрового осциллографа с памятью и логических анализаторов с пакетами прикладного программного обеспечения.

Универсальным методом анализа сигналов, но недешёвым и небыстрым, является применение цифрового осциллографа с памятью.

Быстрым и бюджетным методом анализа сигналов, но с нетривиальной задачей подключения оборудования, является применение недорогого клона логического анализатора в связке с PulseView.

Буду рад, если своей публикацией помог сэкономить читателям время и деньги.

В следующей публикации расскажу, как измерял частоту, на которой запустился кварцевый резонатор в синтезаторе частоты, без частотомера. Но это уже другая история…

Привет ! Мы продолжаем разбирать операционную систему Windows 10 ! Сегодня вы узнаете как настроить на своём компьютере устройства HID (Human Interface Devices). Вы сможете узнать тип и состояние устройства, сможете обновить драйвера, узнать характеристики и свойства и т.д.

Чтобы открыть параметры устройства, внизу экрана слева откройте меню “Пуск”. В открывшемся окне нажмите на вкладку или значок – Параметры .

Далее, на странице “Параметры” нажмите на вкладку – Устройства .

Далее, на странице “Устройства”, внизу страницы, нажмите на вкладку – Диспетчер устройств .

Далее, на странице устройств нажмите два раза на вкладку – Устройства HID (Human Interface Devices) . У вас откроются вложения. Нажмите два раза по вкладке устройства, чтобы открыть его параметры. Вам могут быть доступны следующие устройства:

– HID-совместимая сенсорная панель.

– Microsoft Input Configuration Device.

– Устройство HID на шине I2C.

Далее, в свойствах устройства вы можете узнать и настроить:

Общие:

– Вы можете узнать тип устройства.

Драйвер:

– Вы можете узнать поставщика драйвера.

– Сведения о файлах драйвера.

– Вы можете обновить драйвер.

– Вы можете откатить драйвер к предыдущему.

– Можно отключить устройство.

– Можно удалить драйвер.

Сведения:

– Вы можете узнать значения свойств устройства.

– Выберите свойство и вам автоматически покажут его значение.

– Вы можете узнать характеристики, класс, код ошибки устройства и т.д.

События:

– Вы можете узнать события, которые происходили с устройством.

– Вы можете узнать дату и время события.

– Можно узнать описания и сведения событий.

– В конце нажмите на кнопку OK, чтобы сохранить сделанные изменения.

Остались вопросы ? Напиши комментарий ! Удачи !

Ссылка на основную публикацию
Троттлинг процессора что это
Простой компьютерный блог для души) Всем привет. Сегодня мы затронем тему процессоров, а если быть точнее, то такое явление как...
Схема indesit wisl 83
Инструкции и файлы Файл Страниц Формат Размер Действие 12 pdf 250.49KB Чтобы ознакомиться с инструкцией выберите файл в списке, который...
Схема блока питания для шуруповерта 12 вольт
Аккумуляторный шуруповерт – удобный и необходимый в хозяйстве инструмент. При эксплуатации «от случая к случаю», он может верой и правдой...
Троянские программы и хакерские утилиты
В данную категорию входят программы, осуществляющие различные несанкционированные пользователем действия: сбор информации и ее передачу злоумышленнику, ее разрушение или злонамеренную...
Adblock detector