Вопрос об общении двух устройств по шине I2C

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить
Встал на лапы
Сообщения: 109
Зарегистрирован: Пн авг 29, 2011 11:37:21

Сообщение Le0n35 »

ДОброго времени, поясните пожалуйста мне, одно устройство в частности TDA9886st посылает определенные команды по шине I2C на устройство PA2314e ( звуковой процессор) , как они др др понимают? Ведь они должны общаться на одном "языке", у их обоих есть общая прошивка?

Вот схема девайса http://www.changhongglobal.com/egdch/fi ... ual(A).pdf
Реклама
Вымогатель припоя
Сообщения: 512
Зарегистрирован: Вс фев 13, 2011 20:51:21
Откуда: Спб

Сообщение witia03 »

вопрос из серии - почти все сервера на линуксе а как же я с виндовса открываю странцы
Реклама
Прорезались зубы
Аватара пользователя
Сообщения: 211
Зарегистрирован: Пт июл 31, 2009 19:45:11
Откуда: Санкт-Петербург

Сообщение Deer »

Скорее даже "Я говорю по-русски, он говорит по-русски, мы друг друга понимаем - у нас с ним общая прошивка? :shock:"

Если серьёзно, то I2C - это по сути своей тоже язык общения между устройствами, как UART, SPI и т.д. То есть если вся куча устройств, сидящих на шине понимает этот язык (то есть отвечает стандартам по электрическим характеристикам и по формату посылок в сигнальных линиях) [а иначе как устройство будет на линии сидеть!], то все устройства этой кучи будут друг друга понимать. А общая прошивка - это противоестественная и глупая мысль! Гоните от себя такие :)
Контактная информация:
Встал на лапы
Сообщения: 109
Зарегистрирован: Пн авг 29, 2011 11:37:21

Сообщение Le0n35 »

Ок, т.е допустим по стандарту I2C все производимые звуковые процессоры должны "понимать" что если на них приходит информация (к примеру) 101 то они должны понизить громкость ретранслируемого сигнала, а если 100 то повысить? С адресацией устройства на шине тоже самое? - к примеру все производимые EEPROM имеют адрес 11, все дисплеи 110 и т.д?
Реклама
Эиком - электронные компоненты и радиодетали
Встал на лапы
Сообщения: 109
Зарегистрирован: Пн авг 29, 2011 11:37:21

Сообщение Le0n35 »

вопрос из серии - почти все сервера на линуксе а как же я с виндовса открываю странцы
Вот что за смысл у написанного? Показать что вопрос глупый или что я не знаю этой темы? Не понимаю таких людей.... Ты или пиши по теме или не пиши вовсе, не тот раздел форума чтобы сарказм использовать
Последний раз редактировалось AlekseyEnergo Пт янв 02, 2015 22:57:55, всего редактировалось 1 раз.
Причина: Нарушение пункта 2.2 правил форума. Предупредил!!
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Я тоже не совсем понимаю: что мешает скачать документацию на TDA9886 и изучить как с ней "общаться" по I2C?
Если не понятен I2C - в любом поисковике набираете "I2C протокол".
Вряд ли здесь у кого то будет желание перепечатывать статьи из Internet-а.
С Уважением, Альберт (Albert_V).
Реклама
Встал на лапы
Сообщения: 109
Зарегистрирован: Пн авг 29, 2011 11:37:21

Сообщение Le0n35 »

В том то и дело что рассчитывал на тех у кого эта информация есть в голове , кто сможет 2-3 фразами на пальцах объяснить
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

"2-3 фразами на пальцах" объяснить это сложно.
P.S. На шине I2C всегда есть Master и Slave. Один опрашивает устройства, другие отвечают.
Хоть и предусмотрен в стандарте I2C режим Multi Master - в "реальной жизни" никогда с такой реализацией не сталкивался.
Последний раз редактировалось Albert_V Пт дек 26, 2014 11:02:01, всего редактировалось 1 раз.
С Уважением, Альберт (Albert_V).
Встал на лапы
Сообщения: 109
Зарегистрирован: Пн авг 29, 2011 11:37:21

Сообщение Le0n35 »

Скажите хотя бы как после включения два устройства определяют кто ведомый из них а кто ведущий, и еще, как ведущий потом определяет адрес устройства( ведь изначально он не знает что за тип устройства к шине подключен) , кто делает первый шаг к "общению" ?

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

Минимальное общее представление работы шины есть у меня в голове, я не понимаю как происходит инициализация устройств и распределение ролей на шине.
Последний раз редактировалось AlekseyEnergo Пт янв 02, 2015 22:59:14, всего редактировалось 1 раз.
Причина: Нарушение пункта 2.2 правил форума. Подредактировал.
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

В I2C всегда есть Master, который "точно знает какие микросхемы должны быть в системе" и какие у них адреса.
P.S.
Общей команды опроса шины и "распределения ролей" в I2C нет. Читайте документацию.
С Уважением, Альберт (Albert_V).
Встал на лапы
Сообщения: 109
Зарегистрирован: Пн авг 29, 2011 11:37:21

Сообщение Le0n35 »

В I2C всегда есть Master, который "точно знает какие микросхемы должны быть в системе" и какие у них адреса.
Кто это определяет? - Завод изготовитель микросхемы ?
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Le0n35 писал(а):Кто это определяет? - Завод изготовитель микросхемы ?
Адреса Slave-ов - ДА.
Адреса, по которым обращается Master - программист.
_____
Читайте документацию.
С Уважением, Альберт (Albert_V).
Встал на лапы
Сообщения: 109
Зарегистрирован: Пн авг 29, 2011 11:37:21

Сообщение Le0n35 »

Вот становиться понятнее.Спс.
Далее..

В микросхеме мастера все же есть какая то прошивка, ну или набор начальных команд которые определяют режим работы микросхемы? А иначе как же она начинает отправлять байт адресации, если она сама не знает что она такое?
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Правильно.
_____
Читайте документацию!
С Уважением, Альберт (Albert_V).
Встал на лапы
Сообщения: 109
Зарегистрирован: Пн авг 29, 2011 11:37:21

Сообщение Le0n35 »

ОК) Спасибо.
Грызет канифоль
Сообщения: 256
Зарегистрирован: Вт окт 08, 2013 07:38:59
Откуда: СПб

Сообщение Smen »

Albert_V писал(а):Адреса Slave-ов - ДА
Есть ещё варианты, когда изготовителем задаётся только некоторый диапазон адресов, а конкретный адрес устанавливается логическими уровнями на специально выделенных под это пинах.
Le0n35 писал(а):все производимые звуковые процессоры должны "понимать" что если на них приходит информация (к примеру) 101 то они должны понизить громкость
Не обязательно.
Это - уже верхний уровень протокола, который стандартом I2C не оговаривается, и каждый производитель может ваять своё.
Конкретное описание команд должно быть в даташите на чип.
Друг Кота
Аватара пользователя
Сообщения: 4119
Зарегистрирован: Чт сен 12, 2013 00:54:12
Откуда: ЗаМКАДье. Там, где ЦУП

Сообщение Albert_V »

Smen, знаю. Просто, не хотелось "грузить" ТС доп. информацией...
С Уважением, Альберт (Albert_V).
YS
Друг Кота
Аватара пользователя
Сообщения: 7518
Зарегистрирован: Вс мар 29, 2009 22:09:05

Сообщение YS »

я не понимаю как происходит инициализация устройств и распределение ролей на шине.
Как происходит инициализация устройств - это вам к документации на конкретные устройства.

Распределения ролей нет. Ведущее устройство всегда ведущее, ведомое всегда ведомое (multi-master I2C, как уже отметили, в природе встречается редко). Ведущий обычно контроллер, ведомые - датчики, микросхемы памяти и т.п. Список и адреса ведомых и логику поведения ведущего определяет разработчик на этапе проектирования. Это не USB, автоматического определения тут нет (хотя теоретически можно заморочиться и попытаться реализовать что-то похожее).
Разница между теорией и практикой на практике гораздо больше, чем в теории.
Контактная информация:
Ответить

Вернуться в «Теория»