Два модуля с одинаковыми I2C адресами

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Dmetry, 22 янв 2016.

  1. Dmetry

    Dmetry Нуб

    Подскажите, как одновременно подключить два Troyka-модуля:
    - часы реального времени, DS1307, I2C адрес 0b1101000;
    - IMU-сенсор, один из чипов L3G4200D с тем же I2C адресом
    ?
     
  2. Alex19

    Alex19 Гуру

    Увы без ухищрений никак, но варианты есть.

    DS1307 не поддерживает другие адреса, а вот чип L3G4200D поддерживает выбор адреса (2 варианта, пин SDO, подробнее в пункте 5.1.1 - http://files.amperka.ru/datasheets/L3G4200D-hyroscope.pdf), но в модуле Troyka, такой поддержки нет, как и SPI.

    Что можно сделать.
    1. Поменять модуль L3G4200D, купить с поддержкой изменения адреса I2C и/или SPI, в чипе поддерживается. Для I2C можно использовать библиотеку от Амперки, немного ее изменить.
    2. Как-то переключать модули на шине, можно переключать питание, можно саму шину I2C (не электронщик, писать не буду, чтобы не ошибиться). Прочли данные с одного, переключили по питанию/шину I2C, возможно надо будет выждать, какое-то время (речь о переключении по питанию, бегло глянул pdf, не увидел время иницилизации).
    3. Если есть опыт в пайке, микро компонентов, перерезать ножку SDO и подать туда питание в соответствии с таблице 5, стр 11 - http://files.amperka.ru/datasheets/L3G4200D-hyroscope.pdf.

    UPD. В сети, вариантов реализации пункта 2, предостаточно. К примеру этот - http://blogs.msdn.com/b/laurelle/ar...identical-i2c-device-on-the-same-i2c-bus.aspx. Сам проверить не могу, как уже сказал плохо разбираюсь в электронике (всегда беру помощь друга:)).
     
    Последнее редактирование: 23 янв 2016