I'm developing an ultra-low-power minituarized system witch includes the LSM303AGR. since the power comes only from a small battery, the sleep-current of the LSM303AGR is too high, therefore we want to power down it's power supply when it's not used.
Unfortunately there is a RTC on the same i2c bus , which obviously can't be powered down. so the data-communication on the i2c bus should work, even when the LSM303AGR on the same bus has no power supply.
Shut down VCC of the LSM303 doesn't work, because the chip gets powered through SCL,SDA and its ESD-protection diodes. What I do now, is to the put the GND-pin of the sensor to an I/O of the MCU. When the sensor is not in use, i put the MCU-I/O in High-Z state to cut the Sensors power-supply. the sensor is then powered down.
Unfortunately, if I try to communicate with the RTC over i2c, the MCU isn't able to pull-down the i2c for the start condition. it gets stuck... and we can't really figure out why, because we have no information on the i/o internals of the LSM303AGR.
does anyone have an idea how the LSM303AGR i2c i/os are internally built up? or can ST provide some information about the topic?
or has anyone an idea how to get the i2c running properly even when the LSM303AGR has no power but is still connected to the i2c bus.
I'm aware that cutting power with the GND may not be the best idea, but we have a lack of space and power to do it otherwise. with other sensors from other vendors this practice worked quite well. unfortunately we can't use the SPI bus, since the LSM303AGR only supports 3-wire SPI.
thank you so much