Подскажите, как одновременно подключить два Troyka-модуля: - часы реального времени, DS1307, I2C адрес 0b1101000; - IMU-сенсор, один из чипов L3G4200D с тем же I2C адресом ?
Увы без ухищрений никак, но варианты есть. 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. Сам проверить не могу, как уже сказал плохо разбираюсь в электронике (всегда беру помощь друга).