Несколько одинаковых адресов на i2c шине

добрый день. возник такой вопрос по шине i2c. получил фотодатчики max44007 и max44009. разница между ними кроме потребления и диапазона чувствительности еще и в адресах для шины и2с. однотипных датчиков на одну шину можно повесить 2 шт. двух типов соответственно 4 шт. Как бы с минимальным расходом ножек мк подключить бОльшее количество устройств на шине? Фишка датчиков в том что можно настроить макс и мин пороги срабатывания датчиков и выдаче лог 0 на отдельную ножку. задача такая — настроить кучу датчиков на один уровень срабатывания. тоесть занести на все датчики одну инфу о порогах. можно ли их все цеплять к одной шине и все пачкой програмить, или прийдется делать шины с 4 датчиками в группе? что будет если на шине окажутся устройства с одинаковыми адресами? думаю ясно изложил свои вопросы.

Комментарии (12)

RSS свернуть / развернуть
у меня на и2с демо борде висят 2 драйвера со светиками и управляются одновременно(драйвера одинаковые, знач и адреса одинаковые)думаю, что можно, хотя в самом протоколе я не шарю!
0
а почему вопрос в личном блоге, а не на форуме?

Есть электронные ключи, работающие в обе стороны. Можно намутить их пачку и переключать группы датчиков с одинаковыми адресами.
0
Если оно не отвечает, или ответ не нужен, то в принципе можно одновременно в несколько гнать данные. Но — если один пошлет NACK, то ты этого не заметишь — только если все пошлют.
А вот как их при этом читать — хз, они кашу выдадут. Только выставить какой-нить мультиплексор, который будет довить ненужные датчики. Чтобы не тратить лишних ног — можно заюзать I2C регистр или расширитель, типа тех что в NXP I2C Promo Pack Industrial.
0
  • avatar
  • Vga
  • 29 июля 2011, 12:49
Кстати, если нет специализированных CS — можно заюзать имеющийся адресный вход. Уводим все кроме активного на адрес 1, активный на 0 и общаемся с ним.
0
по и2с задача только запрограмить при включении. и все. снимать показания по и2с не буду.
0
А какой смысл в датчиках, если их не опрашивать? Или у них другой выход есть?
Записать в них можно и так, если ответ от них принимать не нужно и проверять на NACK тоже.
0
в них записываешь верхний и нижний предел, время срабатывания, время измерения и разрешаешь прерывания. при выходе за пределы освещенности на ножке INT появляется 0.
catalog.gaw.ru/index.php?page=component_detail&id=55955
0
Проще наверное сделать чипселект на базе их адресного входа. Получается конечно изврат, но другого варианта не вижу :)

А вообще когда много датчиков лучше юзать далласовские на 1-wire
0
Там какой-то небольшой выбор датчиков. Все-же ииц и спи это стандарт для всякой периферии.

А на 1-варе в основном память. Ну есть еще градусники и ацп.
0
«на базе их адресного входа» — тоесть ножек которыми выбирается адрес девайса? тогда не выйдет. в тех штуках всего одна ножка выбора адреса(
catalog.gaw.ru/project/images/components/44007_s.jpg
0
Ну вот, у всех датчиков которые не активны — ставим этот вход в ноль. А у того, с которым будем общаться — в 1. Потом вызываем его.

Дрыгать ножками адреса можно хоть сдвиговым регистром.
0
Жаль датчики не поддерживают «общий вызов». Хватило бы одной шины.
0
  • avatar
  • Puff
  • 01 августа 2011, 14:35
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.