Наблюдение за шиной I2C через осциллограф

Работа шины I2C начинается с формирования стартового бита: при высоком уровне SCL, линия SDA переходит в низкое состояние. Затем передается 7-битный адрес устройства и бит R/W (0 – запись, 1 – чтение). Устройство, обнаружив свой адрес, подтверждает это, опуская SDA на 9-м такте. Завершается передача стоповым битом: при высоком SCL, SDA переходит в высокое состояние.
Наблюдение за шиной  I2C через осциллограф
Изображение носит иллюстративный характер

Функция HAL_I2C_Master_Transmit сначала отправляет адрес устройства в режиме записи (R/W = 0), затем данные. При обращении к EEPROM, первый байт данных устанавливает адрес внутри EEPROM, а последующие байты записываются в EEPROM. После каждого байта, устройство подтверждает прием.

Функция HAL_I2C_Master_Receive сначала отправляет адрес устройства в режиме чтения (R/W = 1), затем начинает принимать данные от устройства. После получения требуемого количества байт, master прекращает их прием, отправляя на 9-м такте единицу, и генерирует стоповый бит. Это как бы запрос на чтение: сначала записываем, откуда читать, а потом читаем.

При неверном адресе, устройство не подтверждает передачу (SDA не опускается на 9-м такте). Мастер, обнаружив отсутствие подтверждения, завершает передачу стоповым битом. Понимание этих процессов и визуальный контроль с помощью осциллографа важны для отладки и диагностики проблем.


Новое на сайте

19729Веб-шеллы на PHP, управляемые через куки: как злоумышленники закрепляются на серверах... 19728Как учёным впервые удалось составить полную карту нервов клитора? 19727Homo habilis: самый древний «человек», который, возможно, им не является 19726Как северокорейские хакеры взломали одну из самых популярных библиотек JavaScript 19725Почему риски от подрядчиков стали главной дырой в кибербезопасности 19724Как выживший во второй мировой придумал нападение гигантского кальмара 19723Что если вселенная никогда не начиналась с точки бесконечной плотности? 19722Доживёт ли комета MAPS до субботы? 19721Квантовый процессор IBM побил сразу два рекорда — что это меняет? 19720Как северная Корея похитила $285 миллионов у Drift через предподписанные транзакции? 19719Как хакеры через одну дыру в Next.js украли ключи от 766 серверов? 19718Artemis II покинул земную орбиту и летит к луне 19717NASA показало невиданные снимки кометы 3I/ATLAS и запечатлело старт лунной миссии Artemis... 19716Сифилис появился 4000 лет назад — или его находили не там, где искали? 19715Энергетический дисбаланс земли зашкаливает, и учёные не могут это объяснить
Ссылка