cancel
Showing results for 
Search instead for 
Did you mean: 

LSM303AGR with switchend GND

Matthias Schranz
Associate II
Posted on March 29, 2018 at 13:03

Hi there

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

matt

#lsm303agr #ultralowpower #i2c
4 REPLIES 4
Miroslav BATEK
ST Employee
Posted on March 29, 2018 at 14:53

First of all, are the 2uA current consumption really too high for your application?

0690X0000060AJHQA2.png

When you trying to communicate with the RTC are both the Vcc and GND of LSM303AGR disconnected?

Where to you have blocking capacitor(s) for the LSM303AGR?

It is really not good idea to disconnect the GND of the LSM303AGR, without the GND the state of the device can be quite unpredictable. 

Posted on March 29, 2018 at 15:46

Thank you for your quick answer!

The power consumption in sleep mode of the whole pcb is around 650nA, so additional 2uA are not acceptable. 

i tried to switch both VCC and GND to high-z. but this didn't work either. it worked, when i disconnected physically the two pins. but that's not a possible solution for us.

i know that disconnecting GND is not a good idea, but we have no other option and we hope to get it running somehow. is there a change to get informations about the sensor i/o internals?

Posted on April 05, 2018 at 13:11

The problem is caused by internal ESD diodes on the SDA and SCL pins.

I tried to summarize the situation on the following diagram.

0690X0000060ARkQAM.png

So when you put VDD on the GND pin and try to force 0V od SDA or SCL pin the ESD diode is open and there will be quite high current which could damage the sensor or the MCU.

The only solution I see is to add series resistor (green dots on the picture), but anyway the solution will create additional current consumption and also reduce the maximum communication speed.

Posted on April 10, 2018 at 09:44

We were able to get it working with GND switched to High-Z on the MCU and series resistors on the data lines. A communication on the i2c bus with the RTC is now possible with the LSM303AGR turned off. We have an additional current consumption of 100nA with the new ecompass, and this is way better than the 2uA of the sleep mode

thank you for your help !