|
два устройства с одинаковым адресом на шине i2c, проблема с готовым изделием |
|
|
|
 |
Ответов
|
Mar 13 2012, 06:57
|

Участник

Группа: Участник
Сообщений: 34
Регистрация: 24-06-05
Из: МО, г. Подольск
Пользователь №: 6 286

|
А разве там нет арбитра шины у мастера, который не даёт передавать одновременно обоим? Просто когда я отлаживал шину i2c на этом устройстве, то корректные данные от фотодиода приходили примерно через 2-3 раза, но они были реально правильные! Тогда я не был в курсе, что у двух АЦП одинаковые адреса стоят, потому тупо считал своим косяком и воевал до последнего. Даже переписал функцию чтения на более низком уровне функций Microblaze. Вот поэтому у меня и есть надежда, что данные можно отобрать. От датчика давления идут большие числа, от фотодиода - 4096 уровней. В принципе их можно отделить анализом друг от друга, а частота там нужна примерно 1 раз при включении (ВСК) значения снимать, так что можно шибко замедлиться.
Сообщение отредактировал Pavel81 - Mar 13 2012, 07:05
|
|
|
|
|
Mar 14 2012, 22:44
|
Профессионал
    
Группа: Свой
Сообщений: 1 226
Регистрация: 19-06-04
Из: Беларусь
Пользователь №: 65

|
QUOTE (Pavel81 @ Mar 13 2012, 07:57)  А разве там нет арбитра шины у мастера, который не даёт передавать одновременно обоим? Какой арбитр шины в мастере для I2C? Поясните, пожалуйста, что имеете ввиду. Мастер I2C передает адрес устройства, бит "чтение/запись" и другие байты, специфичные для конкретного I2C слейва. Т.к. у Вас слейвы полностью идентичны, то и программироваться от мастера они будут всегда одинаково, а ответные биты от них будут складываться по "И", т.к. SDA - это открытый сток. Кто и что может здесь арбитрировать - не понятно
|
|
|
|
|
Mar 15 2012, 06:19
|
Знающий
   
Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644

|
Цитата(cioma @ Mar 15 2012, 02:44)  Какой арбитр шины в мастере для I2C? Поясните, пожалуйста, что имеете ввиду... I2C-bus specification and user manual раздел 3.1.8 Arbitration. По рассказу Pavel81, LTC2489 тоже анализирует состояние SDA во время передачи и прекращает передачу при обнаружении коллизии. То есть, хотя LTC2489 является ведомым на шине I2C, но использует арбитраж шины SDA, так как это делает мастер. В этом случае, ведущий на шине I2C всегда будет получать корректные данные, но не понятно от какого АЦП.
|
|
|
|
Сообщений в этой теме
Pavel81 два устройства с одинаковым адресом на шине i2c Mar 12 2012, 13:17 kovigor Цитата(Pavel81 @ Mar 12 2012, 17:17) Всем... Mar 12 2012, 13:36 Pavel81 К сожалению отозвать устройства невозможно. Допуст... Mar 12 2012, 13:41 cioma А какая разница на какой скорости?! Оба слейва... Mar 12 2012, 21:46 Konst_777 Цитата(Pavel81 @ Mar 12 2012, 16:17) ...Б... Mar 14 2012, 18:55 Pavel81 Цитата(Konst_777 @ Mar 14 2012, 22:55) А ... Mar 16 2012, 14:01  Konst_777 Цитата(Pavel81 @ Mar 16 2012, 18:01) Выво... Mar 16 2012, 17:40 cioma А, ну если этот слейв такое умеет - тогда действит... Mar 15 2012, 16:11
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|