roboforum.ru

Технический форум по робототехнике.

Вопросы по I2C

Вопросы по I2C

BeInspired » 15 ноя 2009, 22:40

Подскажите пожалуйста каким образом в I2C идет процесс установки адресов устройств? Ведь если на шине висят четыре одинаковых устройства, то получается их никак не возможно идентифицировать? Т.е. для датчиков температуры TMP100 надо подключить линии ADD0 и ADD1 (причем на каждый датчик по сути свою пару, ну или 3 линии на два датчика минимум), выдав на эти линии 1 или 0 сконфигурировать адресс, затем сделать General Call, чтобы устройства запомнили настроенные адреса и только потом можно не думая о линиях ADD0 и ADD1 адресовать устройства согласно настроенным адресам. Я прав или нет?

Re: Вопросы по I2C

Michael_K » 15 ноя 2009, 22:45

Нет.
Эти ноги на TMP нужно по разному закоротить на землю или плюс.
Тогда у TMP-шек будут разные ареса (будут различаться младшими битами A0 и A1, соответственно)

Re: Вопросы по I2C

MiBBiM » 15 ноя 2009, 22:49

и никакого gencall'a делать не нужно

Re: Вопросы по I2C

BeInspired » 16 ноя 2009, 00:40

А зачем тогда нужен General Call? Чтобы перезагрузить устройства если нам вдруг показалось, что они начали выдавать косые данные?

Добавлено спустя 6 минут 11 секунд:
И меня немного смущает вот этот кусок из даташита на тмп100:
The state of pins ADD0 and ADD1 is sampled on the first I2C bus communication and should be set prior to any
activity on the interface.
Либо я неправильно перевожу, либо все-таки их надо устанавливать... хотя... получается можно их не жестко подтягивать к земле или нулю, а управлять их адресами...

Re: Вопросы по I2C

Michael_K » 16 ноя 2009, 01:06

"Состояния ножек считываются TMP-шкой при первом обмене по шине и должны быть установлены перед
любыми дрыганиями на шине."

Что это значит? Значит они должны стоять перед тем как обмен пойдет, а потом, сколько ты их не меняй она их уже считывать не будет. Их надо просто притягивать, чтобы установить адрес конкретной TMP-шки, они предназначены для этого. Можно заставить TMP-шку генерал коллом еще раз считать эти ноги, только зачем?

Re: Вопросы по I2C

BeInspired » 16 ноя 2009, 14:21

Кстати еще вопрос - а как TMP понимает, что ее нога ADD0 или ADD1 висит в воздухе? Просто в возможных адресах присутствуют комбинации, когда одна из ног оставлена не подключенной...

Re: Вопросы по I2C

MiBBiM » 16 ноя 2009, 14:57

мб хитрая внутренняя подтяжка вкупе с ногой о трех состояниях (0%, 50%, 70% от напряжения питания) :unknown:

Re: Вопросы по I2C

blindman » 16 ноя 2009, 15:47

Примерно вот так. Используя 3 ноги можно задать 27 конфигураций, при этом сохраняется возможность использовать ноги как выходы (при достаточно большом сопротивлении нагрузки)
Вложения
config.png
config.png (4.69 КиБ) Просмотров: 2405

Re: Вопросы по I2C

BeInspired » 16 ноя 2009, 15:57

2 blindman
Ясненько. Подскажите еще один вопрос - а в чем вы нарисовали эту схему?
Я вот использую протеус, проект у меня не сложный в плане кол-ва элементов и разводки - пойдет ли она? или надо что-то другое использовать?

Re: Вопросы по I2C

galex1981 » 16 ноя 2009, 15:59

Похоже что в Eagle


Rambler\'s Top100 Mail.ru counter