Лекция 308. Шина I2C
ฝัง
- เผยแพร่เมื่อ 13 ส.ค. 2016
- Кратко описаны основные способы обмена данных по шине. I2C - простая двухпроводная шина для двунаправленного обмена данных. Допускает подключение и отключение устройств к ней "на горячую" (без отключения питания).Возможно подключение большого количества устройств, Устройства на ней асимметричны по ролям: Все операции выполняются по инициативе ведущего, который также формирует тактовые сигналы. Сигналы на шине данных могут формироваться и ведущим и ведомыми устройствами. Применяется для подключения к микроконтроллеру датчиков, памяти, устройств вывода данных и управления.
Список всех лекций на сайте автора в описании канала.
Божественные лекции, я бы заново поступил в универ, если бы так преподавали. Спасибо!
Спасибо Вам огромное. Вы замечательный преподаватель.
(Привет из СПбГУ)
InstaBlaster.
Спасибо Вам большое за интереснейшие, а главное понятные лекции, дай Бог Вам здоровья! Очень хотелось бы увидеть лекцию о UART и USART интерфейсе и рассмотрении их отличий. Заранее благодарен!
Чувствуются советские фундаментальные знания.
Лайк!
Здоровья и удачи!
Тупа шок. Такого понятного объяснения даже не ожидал. Сердечно благодарю!
Классные лекции. Большое спасибо.
Молодец. Чувствуется что любите свою работу Спасибо.
Отличная лекция, поздравляю студентов.
Спасибо Вам большое за Вашу Работу!
Огромное спасибо за ваши лекции!
Отличная лекция!!! СПАСИБО!
Спасибо за работу. Буду изучать. Молодец Вы.
Захотел пойти учится :)
Спасибо, все очень доступно и понятно. Подписываюсь!
Шикарная лекция, отличный канал! Спасибо Вам за это!
Очень грамотное объяснение. спасибо!
Отличная подача, даже мне самоучки все понятно стало
Большое спасибо за ваши труды. Все просто и понятно.
Дай вам Бог здоровья! Очень полезная информация!
Лучше чем мой препод в универе, спасибо)
Спасибо вам огромное! Вы лучший!
Отличная лекция! Все понятно и доступно! Спасибо большое. Нам бы в институт таких преподавателей
Спасибо за знания!
Всех благ вам. Спасибо.
Супер - самая лучшая лекция из Ютуб
Спасибо вам большое за лекции, давно искал подобные курсы, что бы восполнить нехватку знаний в стремительно развивающий век электроники.
Ура!!! Микрофон, у Вас самые лучшие лекции, спасибо Вам, удачи
Спасибо большое за Ваш труд! Вы - прекрасный преподаватель!
замечательные лекции, просто глатаю информацыю кусками. Очень благодарен автору за этот труд.
офигенно объясняете
Спасибо) Очень полезная информация) При работе с Arduino!
Очень понятно обьяснили , спасибо .
Отличная лекция. Спасибо огромное, общедоступным языком рассказано. Благодарен.
Класс .Наконец то я понял как работает i2c.Лайк!
Благодарю! Просто и доходчиво.
Преподаватель от Бога
Очень понятно и толково .Спасибо !!!
Отличное объяснение! Спасибо
Очень классно! СПАСИБО ВАМ! Эх, поступить бы учиться... но староват наверное я уже... )))) Да и считать не умею..
Очень приятно слушать. Преподаватель супер. Много даже сейчас для себя освоил
Спасибо.Интересная лекция.Вот если бы продолжение по работе с EEPROM
Всё очень понятно, спасибо!
Спасибо, отличное объяснение!
Огроменное спасибо!
Спасибо за интересную и понятную лекцию! Крепкого здоровья и продуктивной деятельности!
С уважением, робототехники Лондонского Миддлсекского университета!
Огромное спасибо!
Спасибо, очень доступно.
Низкий поклон.
Супер! Всё понятно!
спасибо Вам!
Приятно слушать, жаль потраченного времени на самостоятельное изучение
Большое спасибо.
Уважаемы лектор.
Благодарю 👍👍👍👍
Хороший дядька.
Спасибо!
сколько было на ней построено в своё время. тащился от неё в 90ые.
Спасибо большое! Все понятно и доходчиво!👏
Спасибо!!!
Класс!!!!!
Ай-квадрат-си! Пора бы уже всем запомнить.
Gut gemacht!
Спасибо
Спасибо.
!!! Спасибо.
Борисыч, жжжоте!!! Куда проще чем мануал ковырять) Почему я на эту лекцию только сейчас попал?) на парах я такого не помню)) пришлось мануал грызть.
Отличная лекция) Есть ли у вас лекция в текстовом варианте?
Спасибо за лекцию, а не подскажите где почитать про мульти мастер системы?
1000р. СПАСИБО.
СПАСИБО БОЛЬШОЕ . А ЧТО МОЖНО СКАЗАТЬ О ПОМЕХОУСТОЙЧИВОСТИ ТАКОЙ ШИНЫ?
А как мастер узнаёт адреса подчинённых устройств? Может перед стартом опрос какой, или в мастер заранее забиты адреса. Или если кто-то по адресу выставил (А), то адрес рабочий, начинаем передачу))?
Обычно адрес подчинённого устройства известен заранее главному устройству. Адрес Slave'а по-умолчанию должен быть указан производителем в документации к устройству. Если документацию не удалось найти, можно просто подключить одно это устройство к I2C шине (не подключать ничего, кроме него) и просканировать шину. В интернете есть примеры I2C сканера на Arduino - там программа примитивнейшая - цикл по всем адресам в диапазоне [8..127]. Диапазон адресов [0..7] обычно не сканируется, так как он зарезервирован для служебных целей. С какого адреса откликнется устройство, то и есть его адрес.
Для программирования микросхем памяти I2C программой PonyProg для сигнала SCL используется исходящий вывод 7 COM порта RTS. Нужно ли обязательно задействовать при этом для сигнала SCL входящий вывод 6 COM порта DSR ? Если нужно то зачем? Вывод микросхем памяти SCL является однонаправленным, однако в многочисленных схемах программаторов вывод 6 COM порта для SCL почему то задействован.
есть ли формула расчета резисторов? не хотелось бы брать значения сопротивления с потолка в курсовой
посмотрю видосы, пересдам зачёт, если сдам, напишу) хахаха
Заметил не стыковку на 19 минуте. В начале повествования Вы говорили, что SCL формирует ТОЛЬКО MASTER, в таком случае SLAVE не может влиять на линию SCL. А для "затягивания времени ответа" он просто не будет выставлять данные на SDL (уровень не меняется) и MASTER вынужден ждать ответа, и если его не получит в течении определенного времени, вывалиться в ошибку по Time Out завершив обращение выставив (Р). Думаю это логичнее, или заблуждаюсь?
Как вы себе представляете "невыставление данных"?
Кроме того, задержка SCL может применяться ведомым и при приёме.
Круто, спасибо!
Но осталось неясным - откуда берутся адреса slave-устройств, кто их назначает? Тем более при замене slave'ов "на горячую".
Да также не понял, может перед стартом опрос какой, или в мастер заранее забиты адреса. Или если кто-то по адресу выставил (А), то адрес рабочий, начинаем передачу.
зашиты в устройстве при производстве. Программист их узнает из datasheet
чаще всего на slave-устройствах есть перемычки, которые позволяют либо полностью задать любой удобный адрес, либо позволяющие менять часть адреса, таким образом, если стандартный адрес устройства конфликтует с другим устройством на шине, то достаточно в одном из устройств замкнуть/разомкнуть одну или несколько перемычек. Например, на модуле реального времени DS3231 есть 3 пары контактов, которые можно замыкать (в данном случае напаять кусочек олова) для того, что бы поменять адрес, установленный производителем по-умолчанию. Адрес по-умолчанию должен быть указан производителем в документации к устройству. Если документацию не удалось найти, можно просто подключить одно это устройство к I2C шине (не подключать ничего, кроме него) и просканировать шину. В интернете есть примеры I2C сканера на Arduino - там программа примитивнейшая - цикл по всем адресам в диапазоне [8..127]. Диапазон адресов [0..7] обычно не сканируется, так как он зарезервирован для служебных целей. С какого адреса откликнется устройство, то и есть его адрес.
Действительно, хороший вопрос :)
Есть варианты, например на микросхеме вывод притягивается к плюсу или минусу и получает фиксированный адрес указанный в даташите..
А про USB можно такую же?
Можете номер карты своей оставить в описании? Я бы закинул деньжат на развитие канала
Супер! Спасибо за отличную подачу информации!
Но почему два в седьмой это "порядка ста", а не просто сто двадцать восемь?! )
Потому что дважды два четыре, ну пять, ну шесть, ну семь(в крайнем случае), но никак не восемь!)
Потому что некоторые slave устройства используют сразу 2 адреса
Насколько мне известно (но это не точно), часть адресов по стандарту зарезервировано [0..7], использоваться могут только [8..127] и то есть ряд ограничений. Иногда производитель устройства не предоставляет возможности настроить устройство на любой адрес - приходится выбирать из ограниченного списка вариантов). Более того, есть ограничения, о которых сказал лектор (суммарная ёмкость и т.д.). На практике сложно достичь максимального количества в 119 устройств.
Что делать, если мастер Ack не получил?
А зачем нужны подтягивающие резисторы? Это разьве не мешает нормальной работе шины. Ведь там все время будет лог 1
1. для ограничения тока проходящего через выходные каскады устройств.
кто эти шестеро?!
Есть наглядный пример работы производного от I2C протокола - SMbus
th-cam.com/video/natf8NZOV2c/w-d-xo.html
Спасибо!
Спасибо.
Спасибо!
Спасибо!
Спасибо!
Спасибо!
Спасибо!