Страница 1 из 1

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

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

Вот схема девайса http://www.changhongglobal.com/egdch/fi ... ual(A).pdf

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

Добавлено: Пт дек 26, 2014 03:37:14
witia03
вопрос из серии - почти все сервера на линуксе а как же я с виндовса открываю странцы

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

Добавлено: Пт дек 26, 2014 07:32:50
Deer
Скорее даже "Я говорю по-русски, он говорит по-русски, мы друг друга понимаем - у нас с ним общая прошивка? :shock:"

Если серьёзно, то I2C - это по сути своей тоже язык общения между устройствами, как UART, SPI и т.д. То есть если вся куча устройств, сидящих на шине понимает этот язык (то есть отвечает стандартам по электрическим характеристикам и по формату посылок в сигнальных линиях) [а иначе как устройство будет на линии сидеть!], то все устройства этой кучи будут друг друга понимать. А общая прошивка - это противоестественная и глупая мысль! Гоните от себя такие :)

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

Добавлено: Пт дек 26, 2014 09:25:50
Le0n35
Ок, т.е допустим по стандарту I2C все производимые звуковые процессоры должны "понимать" что если на них приходит информация (к примеру) 101 то они должны понизить громкость ретранслируемого сигнала, а если 100 то повысить? С адресацией устройства на шине тоже самое? - к примеру все производимые EEPROM имеют адрес 11, все дисплеи 110 и т.д?

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

Добавлено: Пт дек 26, 2014 09:33:03
Le0n35
вопрос из серии - почти все сервера на линуксе а как же я с виндовса открываю странцы
Вот что за смысл у написанного? Показать что вопрос глупый или что я не знаю этой темы? Не понимаю таких людей.... Ты или пиши по теме или не пиши вовсе, не тот раздел форума чтобы сарказм использовать

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

Добавлено: Пт дек 26, 2014 09:47:51
Albert_V
Я тоже не совсем понимаю: что мешает скачать документацию на TDA9886 и изучить как с ней "общаться" по I2C?
Если не понятен I2C - в любом поисковике набираете "I2C протокол".
Вряд ли здесь у кого то будет желание перепечатывать статьи из Internet-а.

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

Добавлено: Пт дек 26, 2014 10:00:30
Le0n35
В том то и дело что рассчитывал на тех у кого эта информация есть в голове , кто сможет 2-3 фразами на пальцах объяснить

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

Добавлено: Пт дек 26, 2014 10:03:44
Albert_V
"2-3 фразами на пальцах" объяснить это сложно.
P.S. На шине I2C всегда есть Master и Slave. Один опрашивает устройства, другие отвечают.
Хоть и предусмотрен в стандарте I2C режим Multi Master - в "реальной жизни" никогда с такой реализацией не сталкивался.

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

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

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

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

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

Добавлено: Пт дек 26, 2014 10:13:40
Albert_V
В I2C всегда есть Master, который "точно знает какие микросхемы должны быть в системе" и какие у них адреса.
P.S.
Общей команды опроса шины и "распределения ролей" в I2C нет. Читайте документацию.

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

Добавлено: Пт дек 26, 2014 10:31:11
Le0n35
В I2C всегда есть Master, который "точно знает какие микросхемы должны быть в системе" и какие у них адреса.
Кто это определяет? - Завод изготовитель микросхемы ?

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

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

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

Добавлено: Пт дек 26, 2014 10:43:34
Le0n35
Вот становиться понятнее.Спс.
Далее..

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

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

Добавлено: Пт дек 26, 2014 10:45:51
Albert_V
Правильно.
_____
Читайте документацию!

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

Добавлено: Пт дек 26, 2014 10:49:04
Le0n35
ОК) Спасибо.

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

Добавлено: Пт дек 26, 2014 11:36:37
Smen
Albert_V писал(а):Адреса Slave-ов - ДА
Есть ещё варианты, когда изготовителем задаётся только некоторый диапазон адресов, а конкретный адрес устанавливается логическими уровнями на специально выделенных под это пинах.
Le0n35 писал(а):все производимые звуковые процессоры должны "понимать" что если на них приходит информация (к примеру) 101 то они должны понизить громкость
Не обязательно.
Это - уже верхний уровень протокола, который стандартом I2C не оговаривается, и каждый производитель может ваять своё.
Конкретное описание команд должно быть в даташите на чип.

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

Добавлено: Пт дек 26, 2014 11:39:35
Albert_V
Smen, знаю. Просто, не хотелось "грузить" ТС доп. информацией...

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

Добавлено: Сб дек 27, 2014 14:40:20
YS
я не понимаю как происходит инициализация устройств и распределение ролей на шине.
Как происходит инициализация устройств - это вам к документации на конкретные устройства.

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