Технический форум по робототехнике.
BeInspired » 15 ноя 2009, 22:40
Подскажите пожалуйста каким образом в I2C идет процесс установки адресов устройств? Ведь если на шине висят четыре одинаковых устройства, то получается их никак не возможно идентифицировать? Т.е. для датчиков температуры TMP100 надо подключить линии ADD0 и ADD1 (причем на каждый датчик по сути свою пару, ну или 3 линии на два датчика минимум), выдав на эти линии 1 или 0 сконфигурировать адресс, затем сделать General Call, чтобы устройства запомнили настроенные адреса и только потом можно не думая о линиях ADD0 и ADD1 адресовать устройства согласно настроенным адресам. Я прав или нет?
Michael_K » 15 ноя 2009, 22:45
Нет.
Эти ноги на TMP нужно по разному закоротить на землю или плюс.
Тогда у TMP-шек будут разные ареса (будут различаться младшими битами A0 и A1, соответственно)
MiBBiM » 15 ноя 2009, 22:49
и никакого gencall'a делать не нужно
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.
Либо я неправильно перевожу, либо все-таки их надо устанавливать... хотя... получается можно их не жестко подтягивать к земле или нулю, а управлять их адресами...
Michael_K » 16 ноя 2009, 01:06
"Состояния ножек считываются TMP-шкой при первом обмене по шине и должны быть установлены перед
любыми дрыганиями на шине."
Что это значит? Значит они должны стоять перед тем как обмен пойдет, а потом, сколько ты их не меняй она их уже считывать не будет. Их надо просто притягивать, чтобы установить адрес конкретной TMP-шки, они предназначены для этого. Можно заставить TMP-шку генерал коллом еще раз считать эти ноги, только зачем?
BeInspired » 16 ноя 2009, 14:21
Кстати еще вопрос - а как TMP понимает, что ее нога ADD0 или ADD1 висит в воздухе? Просто в возможных адресах присутствуют комбинации, когда одна из ног оставлена не подключенной...
MiBBiM » 16 ноя 2009, 14:57
мб хитрая внутренняя подтяжка вкупе с ногой о трех состояниях (0%, 50%, 70% от напряжения питания)
blindman » 16 ноя 2009, 15:47
Примерно вот так. Используя 3 ноги можно задать 27 конфигураций, при этом сохраняется возможность использовать ноги как выходы (при достаточно большом сопротивлении нагрузки)
- Вложения
-
- config.png (4.69 КиБ) Просмотров: 2405
BeInspired » 16 ноя 2009, 15:57
2 blindman
Ясненько. Подскажите еще один вопрос - а в чем вы нарисовали эту схему?
Я вот использую протеус, проект у меня не сложный в плане кол-ва элементов и разводки - пойдет ли она? или надо что-то другое использовать?
galex1981 » 16 ноя 2009, 15:59
Похоже что в Eagle