Digital devices with floating ground

Thread Starter

Georacer

Joined Nov 25, 2009
5,182
I have asked this in another thread, but I feel this question could profit more with its own thread.

I have two digital devices, a 3.3V XBee Pro wireless module and a 5V openLog datalogger, fitted on a board.
I want to selectively cut power to those devices, so I placed a dual DIP switch between those devices and the ground terminal.
I purposely put the switches in the ground line, instead of the power line; there was a reason for that but it's not directly relevant.

However, I worry about the fate of the floating I/O pins of those devices, as they are still connected to the rest of the board.

Could there be any complications, such as current flowing in unexpected and unwanted ways?
Would it make any difference if I placed the switch in the Vcc line?
Is there any standard way to unpower devices on a board when they are not used?

Thanks in advance.
 

MrChips

Joined Oct 2, 2009
30,701
You have to be careful either way when there are outputs still connected to your device that has been powered down.

When input voltages exceed Vcc or go below GND pins, there is potential for CMOS latch-up which is destructive to the chip.
 

Thread Starter

Georacer

Joined Nov 25, 2009
5,182
I don't think I have a problem with voltages out of bounds.

I forgot to mention that the I/O pins are serial TX/RX pairs.

The need for cutting the power is to reduce power consumption during idle debugging stages or reduced capability operation.
 

JMac3108

Joined Aug 16, 2010
348
When you remove power from a device that is connected to other devices that still have power, sometimes you will see the unpowered device partially power up through the I/O pins from the other device. The result can be strange voltages on your device pins that may be bad for the device or other devices it is connected to.

The better way to handle this is to use devices that have a "sleep" or other type of low power mode that they can be safely put into rather than just removing their power.

If you are going to power down a device, its always best, if possible, to remove power rather than ground. I'll give you an example of a time I removed ground and it had a negative unanticipated side effect ...

I had a fan with the high side connected to 12V and the low side connected to ground through a mosfet. I turned the fan on/off with the mosfet. The fan had a tachometer output that was open-collector. I pulled it up to 3.3V and connected the signal to my micro-controller. When the fan was running I got a nice square wave tachometer signal between 0V and 3.3V going into my micro-controller. The problem was that when I turned off the mosfet to turn off the fan, what I was doing was removing ground from the tachometer circuit inside the fan. The result was that the tachometer circuit inside the fan put out 12V when it had its ground removed. This was bad because it put 12V on a 3.3V micro-controller pin. I have no idea why - who knows what is inside the fan tach circuit. I had to re-design my circuit to switch the 12V to the fan, rather than removing ground from the fan. This is just an example of how you can get into trouble by removing ground.
 

JMac3108

Joined Aug 16, 2010
348
Also, if you have to power down a device, there are logic gates that you can use to place between the powered and un-powered devices. These gates, when not powered, do not place any load on the power devices they are connected to. We used to use them on designs that reguired power-management when we were forced to power down a device because it did not have a sleep mode. I can't remember any specific part numbers but we always used inverters or buffers. If you search you can probably find them.
 

Thread Starter

Georacer

Joined Nov 25, 2009
5,182
You can see the circuit at question here. It's an RC plane autopilot module. Since it's power crucial, I 'd like to power down devices selectively during debugging, hence the need.

I kinda knew the most professional solution would be isolation buffers, but so far space has been an issue on the board.
I guess I might have to graduate to SMDs.

The reason I chose to cut the ground wire is that I want to sense that floating wire and the Arduino board has PULL-UP resistors at its digital inputs, not PULL-DOWN. The whole fuss was to save two resistors.

After that discussion I guess I 'll have to reconsider.
 
Top