Sda что это такое
Sda что это такое
Смотреть что такое «SDA» в других словарях:
SDA — may refer to:*SDA Bocconi School of Management, in Milan, Italy *T Mobile SDA, a smartphone from T Mobile *San Diego and Arizona Railway, a short line American railroad *San Dieguito Academy, a high school in Encinitas, California *Schweizerische … Wikipedia
SDA — Saltar a navegación, búsqueda SDA puede referirse a: Sociedad Deportiva Amorebieta, club de fútbol de España. Iglesia Adventista del Séptimo Día, por sus siglas en inglés. Obtenido de SDA Categoría: Wikipedia:Desambiguación … Wikipedia Español
SDA — [ɛsde: |a: ], die; : Schweizerische Depeschenagentur. * * * SDA [ɛsde a:], die: Schweizerische Depeschenagentur … Universal-Lexikon
SDA — steht für Flughafen Bagdad im Irak als IATA Code Siebenten Tags Adventisten (Seventh Day Adventists), eine evangelische Freikirche Stranka demokratske akcije, eine politische Partei in Bosnien und Herzegowina Schweizerische Depeschenagentur, die… … Deutsch Wikipedia
Sda — steht für Flughafen Bagdad im Irak als IATA Code Siebenten Tags Adventisten (Seventh Day Adventists), eine evangelische Freikirche Stranka demokratske akcije, eine politische Partei in Bosnien und Herzegowina Schweizerische Depeschenagentur, die… … Deutsch Wikipedia
SDA — sigla 1. Scuola di Direzione Aziendale 2. ES ted. Schweizer Depeschen Agentur, agenzia telegrafica svizzera … Dizionario italiano
SDA — die; = Schweizerische Depeschenagentur … Die deutsche Rechtschreibung
SDA — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Sigles d’une seule lettre Sigles de deux lettres > Sigles de trois lettres Sigles de quatre lettres … Wikipédia en Français
SDA — Abbreviation for specific dynamic action. * * * right sacroanterior [fetal position, Lat. sacrodextra anterior]; Sabouraud dextrose agar; serotonin dopamine antagonist; sialodacryoadenitis; specific dynamic action; strand displacement… … Medical dictionary
SDA — Seventh Day Adventist (ADRA) … Military dictionary
SdA — Le Seigneur des anneaux Pour les articles homonymes, voir Le Seigneur des anneaux (homonymie). Le Seigneur des anneaux Auteur J. R. R. Tolkien Genre fantasy … Wikipédia en Français
Интерфейс I2C и Arduino
Инструкция по использованию протокола I 2 C совместно с Arduino
Нам понадобится:
1 Описание интерфейса I2C
Последовательный протокол обмена данными IIC (также называемый I2C – Inter-Integrated Circuits, межмикросхемное соединение) использует для передачи данных две двунаправленные линии связи, которые называются шина последовательных данных SDA (Serial Data) и шина тактирования SCL (Serial Clock). Также имеются две линии для питания. Шины SDA и SCL подтягиваются к шине питания через резисторы.
В сети есть хотя бы одно ведущее устройство (Master), которое инициализирует передачу данных и генерирует сигналы синхронизации. В сети также есть ведомые устройства (Slave), которые передают данные по запросу ведущего. У каждого ведомого устройства есть уникальный адрес, по которому ведущий и обращается к нему. Адрес устройства указывается в паспорте (datasheet). К одной шине I2C может быть подключено до 127 устройств, в том числе несколько ведущих. К шине можно подключать устройства в процессе работы, т.е. она поддерживает «горячее подключение».
Описание интерфейса I2C
Давайте рассмотрим временную диаграмму обмена по протоколу I2C. Есть несколько различающихся вариантов, рассмотрим один из распространённых. Воспользуемся логическим анализатором, подключённым к шинам SCL и SDA.
Мастер инициирует обмен. Для этого он начинает генерировать тактовые импульсы и посылает их по линии SCL пачкой из 9-ти штук. Одновременно на линии данных SDA он выставляет адрес устройства, с которым необходимо установить связь, которые тактируются первыми 7-ми тактовыми импульсами (отсюда ограничение на диапазон адресов: 2 7 = 128 минус нулевой адрес). Следующий бит посылки – это код операции (чтение или запись) и ещё один бит – бит подтверждения (ACK), что ведомое устройство приняло запрос. Если бит подтверждения не пришёл, на этом обмен заканчивается. Или мастер продолжает посылать повторные запросы.
Это проиллюстрировано на рисунке ниже. Задача такая: подключиться к ведомому устройству с адресом 0x27 и передать ему строку «SOLTAU.RU». В первом случае, для примера, отключим ведомое устройство от шины. Видно, что мастер пытается установить связь с устройством с адресом 0x27, но не получает подтверждения (NAK). Обмен заканчивается.
Попытка мастера установить соединение с ведомым по I2C
Теперь подключим к шине I2C ведомое устройство и повторим операцию. Ситуация изменилась. На первый пакет с адресом пришло подтверждение (ACK) от ведомого. Обмен продолжился. Информация передаётся также 9-битовыми посылками, но теперь 8 битов занимают данные и 1 бит – бит подтверждения получения ведомым каждого байта данных. Если в какой-то момент связь оборвётся и бит подтверждения не придёт, мастер прекратит передачу.
Временная диаграмма обмена по протоколу I2C
2 Реализация I2Cв Arduino
Arduino использует для работы по интерфейсу I2C два порта. Например, в Arduino UNO и Arduino Nano аналоговый порт A4 соответствует SDA, аналоговый порт A5 соответствует SCL.
Реализация I2C в Arduino UNO и Nano
Для других моделей плат соответствие выводов такое:
Плата | Пин SDA | Пин SCL |
---|---|---|
Arduino Uno, Nano, Pro и Pro Mini | A4 | A5 |
Arduino Mega | 20 | 21 |
Arduino Leonardo | 2 | 3 |
Arduino Due | 20, SDA1 | 21, SCL1 |
3 Библиотека «Wire» для работы с IIC
Для облегчения обмена данными с устройствами по шине I2C для Arduino написана стандартная библиотека Wire. Она имеет следующие функции:
Функция | Назначение |
---|---|
begin(address) | инициализация библиотеки и подключение к шине I2C; если не указан адрес, то присоединённое устройство считается ведущим; используется 7-битная адресация; |
requestFrom() | используется ведущим устройством для запроса определённого количества байтов от ведомого; |
beginTransmission(address) | начало передачи данных к ведомому устройству по определённому адресу; |
endTransmission() | прекращение передачи данных ведомому; |
write() | запись данных от ведомого в ответ на запрос; |
available() | возвращает количество байт информации, доступных для приёма от ведомого; |
read() | чтение байта, переданного от ведомого ведущему или от ведущего ведомому; |
onReceive() | указывает на функцию, которая должна быть вызвана, когда ведомое устройство получит передачу от ведущего; |
onRequest() | указывает на функцию, которая должна быть вызвана, когда ведущее устройство получит передачу от ведомого. |
4 Подключение I2C устройствак Arduino
Давайте посмотрим, как работать с шиной I2C с помощью Arduino.
Сначала соберём схему, как на рисунке. Будем управлять яркостью светодиода, используя цифровой 64-позиционный потенциометр AD5171 (см. техническое описание), который подключается к шине I2C. Адрес, по которому мы будем обращаться к потенциометру – 0x2c (44 в десятичной системе).
Подключение цифрового потенциометра к Arduino по шине I2C
5 Управление устройством по шине IIC
Рассмотрим диаграммы информационного обмена с цифровым потенциометром AD5171, представленные в техническом описании:
Рассмотрим диаграммы чтения и записи цифрового потенциометра AD5171
Нас тут интересует диаграмма записи данных в регистр RDAC. Этот регистр используется для управления сопротивлением потенциометра.
Откроем из примеров библиотеки «Wire» скетч: Файл Образцы Wire digital_potentiometer. Загрузим его в память Arduino.
После включения вы видите, как яркость светодиода циклически нарастает, а потом гаснет. При этом мы управляем потенциометром с помощью Arduino по шине I2C.
По ссылкам внизу статьи, в разделе похожих материалов (по тегу), можно найти дополнительные примеры взаимодействия с различными устройствами по интерфейсу IIC, в том числе примеры чтения и записи.
6 Дополнительно о шине I2C
Доступно и интересно рассказывает о шине I2C Джереми Блюм в своём видео:
Steam Desktop Authenticator (SDA)
Сегодня, дорогие друзья, я познакомлю вас с интересной и полезной программой, которая позволит вам подключить двухфакторную аутентификацию без постоянного использования мобильного телефона. Steam Desktop Authenticator позволяет не только получать тридцатисекундные пароли, но и нажатием одной клавиши подтверждать выставление всех лотов на торговую площадку.
А теперь подробнее.
Программа представляет собой некую имитацию мобильного приложения, но ей не нужен телефон или планшет. Она работает под Windows и это очень удобно. Многие считают, что данная программа не даёт той защиты, которую мы получаем при использовании телефона. Но это не так. Если ваш компьютер имеет необходимую защиту, собственно говоря, также как и телефон, то ваш аккаунт будет защищен, а если нет, то и телефон не спасёт.
SAM не требует установки, в архиве лежит уже готовая к использованию версия, распаковываете архив в любое место и запускаете исполняющий файл Steam Desktop Authenticator.exe, открывается окно следующего содержания:
Я считаю, что самым интересным для нас является третий пункт, ведь основной аккаунт всё же лучше оставить под защитой телефона, а если вы уже пользовались SDA, то в импорте файлов вы разберетесь без проблем (он интуитивно понятен, вас просят указать папку в которой лежат файлы для импорта, а после импорта запускается программа и вы сразу сможете работать со всеми аккаунтами которые импортировали).
Подробно остановимся на третьем пункте.
И так нажимаем This is my first time and I just want to sign intro my Staem Account(s), программа запускается и мы видим следующее: Далее нажимаем Setup New Account, открывается окно ввода логина и пароля
В поле Username вводите логин аккаунта, к которому собираетесь привязать телефон
В поле Password вводите соответственно пароль аккаунта. Далее нажимаете Login.
Открывается окно ввода номера телефона:Вводите номер телефона в международном формате +79123456789 (совет: не используйте для ботов телефон основного аккаунта, иначе, при получении любого бана аккаунта бота, бан автоматом прилетает и на все аккаунты привязанные к этому номеру телефона)
Нажимаете Accept
Открывается следующее окно, в котором вы должны ввести код из смс (пять цифр), который был направлен на указанный вами номер телефона. Нажимаете Accept
Дальше нас просят ввести пароль для защиты аккаунта (своеобразная защита), можно не вводить, тогда выскочит окошко с грозным предупреждением.
Нажимаете Accept
Дальше у нас выходит окошко, в котором записан код отключения аутентификатора, его обязательно запишите.Нажимаете ОК
Повторяете ввод кода который пришёл по смс, нажимаете ОК
Вводите код отключения аутентификатора RXXXXX, нажимаете ОК
Программа напоминает нам о важности кода отключения аутентификатора и просит еще раз его записать.
Поздравляю мобильный аутентификатор подключен. Такое же сообщение придёт вам на электронную почту от стима.
Теперь перед вами откроется следующее окно:Login Token — тридцатисекундный пароль, рядом есть кнопка Copy для быстрого копирования кода
View Confrimations — для подтверждения обменов и выставления лотов на торговую площадку
Электроника для всех
Блог о электронике
Интерфейсная шина IIC (I2C)
Логический уровень
Как передаются отдельные биты понятно, теперь о том что эти биты значат. В отличии от SPI тут умная адресная структура. Данные шлются пакетами, каждый пакет состоит из девяти бит. 8 данных и 1 бит подтверждения/не подтверждения приема.
После адресного пакета идут пакеты с данными в ту или другую сторону, в зависимости от бита RW в заголовочном пакете.
Вот, например, Запись. В квадратиках идут номера битов. W=0
Задача решается так:
С записью все понятно — записали вначале адрес, а потом следом записали данные. А умная микросхема все прекрасно поняла и рассовала по ячейкам. А с чтением? А с чтением все через задницу, в смысле через запись.
Скриншот с осциллографа RIGOL 1042CD
Вроде бы все, практический пример с AVR будет потом, а пока помедитируйте над диаграммой работы конечного автомата TWI передатчика ATmega8. Скоро я вас буду этим грузить!
Страшна? 😉 На самом деле там все не так брутально. Можно обойтись вообще парой десятков строк кода на ассемблере.
Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!
А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.
200 thoughts on “Интерфейсная шина IIC (I2C)”
(1) OpenID работает криво. Я зашёл как blacklion.livejournal.com и всё равно справа-сверху «войти» (а не «выйти») и не даю комментировать. Пришлось регистрироваться и теперь тут два меня.
(2) Софтового мастера сделать не сложно. А вот слейва как-то просто не получается.
Щас попробую с опен ид поиграться.
Более того, многие предпочитают делать софтовый И2С мастер чтобы не заморачиваться с встроенным в TWI конечным автоматом.
Более того, многие предпочитают делать софтовый И2С мастер чтобы не заморачиваться с встроенным в TWI конечным автоматом.
Я когда первый раз подходил к электронике смотрел на PIC (зачем я это делал!? Зачем на PIC?!) так реализовал мастера в качестве упражнения за вечер. А вот слейва так и не осилил…
Я сделал софтового слейва на AT89C2051, но работало жутко медленно.
плюсадин. я уже раз 5 жаловался что логины глючат 😀 нашел выход, что залогинился, пару минуток подождал и рефреш. работает, но бесит :\
DI HALT спасибо за статью. Давно ждал рассказ про I2C. 🙂
У меня их почти полный аналог ICL12008 ваще работать не хотят — не отзываются на свой адрес, не дают ACK
и у тебя, Брут? я изъебался с их инициализацией — не пашут и все. взял ds, который считал сгоревшим и не рабочим, по по недоразумению не выкинул — и он заработал. в топку эти ISL, от лукавого они..
А у меня 5 штук их лежит — сэмплы. Надо бы в ST гневный мессадж накатать. МОл чо вы за говно нам подсунули?
Да, есть такое дело 🙂 Вообще при начале работы с IIC девайсом, желательно вдоль и поперек изучить Datasheet к нему. В свое время тоже поломал голову с m41 от ST. Вроде все пишется, все читается, но часы стоят и все тут. Оказалось там есть хитрый битик, который при пропадании всего питания — Vcc и Vbat, останавливает часы и пока его не сбросишь они не пойдут.
Ну и еще обычный прикол с часами, что не все могут работать при отключенной батарейке — даже если Vcc есть, внутри у них стоит контроль, который проверяет разницу между напругой и Vbat, и если Vbat нет, то часы просто ни на что не отвечают 🙂
p.s. а про NACK в конце чтения это да, самые популярные грабли наверно. Кстати для отлаживания шины если нет крутого осцила, можно прикрутить I2C Sniffer на Atmega8 — оч удобная штука, она в консоли показывает полностью весь обмен в удобоваримом виде.
А чё с ним было голову ломать? Кстати, m41t56 рекомендую, простые и удобные I2C часы. Про битик я давно знал — он у всех часовых изделий от ST присутствует. Наверное, как совместимость с m48t08 — который с батареей на борту. Чтобы батарею не сажать, пока таймкипер лежит на складе, они глушат часы.
О)) На самом деле классная тема! Мне бы сначала с простым UARTом разобраться, а потом только к творению Philips)) Буду ждать исходников…
Отличная статья! А есть последняя диаграмма только в чуть лучшем качестве? А то буквы трудно различить.
Красные пути — нормальная работа
Синие — возможные косяки.
Sda что это такое
UPD: Также эти файлы можно переносить на другие устройства, соответственно можно на нескольких компьютерах иметь аутентификатор одного аккаунта.
Проблема с SDA только одна: он эффективно нейтрализует защиту предоставляемую мобильным аутентификатором. То есть возвращает ситуацию к моменту до введения удержания и SGMA. Любой взлом Вашего компьютера может повлечь за собой хищение инвентаря. И логика «уже третий год пользуюсь, никаких проблем» тут не работает.
Это звучит примерно как «страховка для лохов. Уже три года монтажником-высотником без страховки работаю и ни разу ещё не сорвался. И сигнализацию на машину не ставлю. За три года ещё не угнали. Ключ от квартиры храню под ковриком. За три года ни разу не обокрали».
Проблема с SDA только одна: он эффективно нейтрализует защиту предоставляемую мобильным аутентификатором. То есть возвращает ситуацию к моменту до введения удержания и SGMA. Любой взлом Вашего компьютера может повлечь за собой хищение инвентаря. И логика «уже третий год пользуюсь, никаких проблем» тут не работает.
Это звучит примерно как «страховка для лохов. Уже три года монтажником-высотником без страховки работаю и ни разу ещё не сорвался. И сигнализацию на машину не ставлю. За три года ещё не угнали. Ключ от квартиры храню под ковриком. За три года ни разу не обокрали».
Исходный код открытый. Учитывая популярность программы, этим всё сказано.
и какие последствия подключения
Можно подтверждать обмены и выставление лотов на компьютере. И есть генератор кодов входа на аккаунт.