What's the input impedance or input current for the ZigBee chip? It doesn't surprise me that it would take some current.
I've never used sleep mode but I'm pretty sure simply waking it up increases current consumption. That's the whole point of sleep mode.... To reduce power consumption...
Presumably the 68uA only happens when the output is in one state - sounds like there is a 100k
internal pull-up or pull-down on the Zigbee. Just call pinMode (..., INPUT) before sleeping.
The digitalWrite is not for the wake up pin. Its for supplying actual operating voltage to the xBee. If I connect the pin directly to VCC/GND instead of using Arduino to do it, I get 4.5uA which is normal.
If I do digitalWrite Input, xBee doesnt work. If I REMOVE xBee all together and use digitalWrite Output pin with nothing connected, I still am drawing that much current while sleeping. Something is happening internally on the MCU
I read that tutorial already. I was able to get it to work but I noticed that the current takes longer to "settle" in sleep than when powering it directly from VCC. I tried a .1uF, 10uF, 100uF caps but that didnt work.
brolly759:
The digitalWrite is not for the wake up pin. Its for supplying actual operating voltage to the xBee. If I connect the pin directly to VCC/GND instead of using Arduino to do it, I get 4.5uA which is normal.
Have you been trying to power an xBee from an Arduino pin? Yes, that will fry the pin nicely I'd have thought.
Yes that is exactly what I am trying to do. Its working fine now, max draw is 36mA and you can set the transmit current to be lower so you are even lower current consumption. No frying. The issue now is that when going from awake to sleep, you can see it takes about a second+ longer for the current to drop quickly than powering the xBee directly from VCC/GND.
brolly759:
Yes that is exactly what I am trying to do. Its working fine now, max draw is 36mA and you can set the transmit current to be lower so you are even lower current consumption. No frying. The issue now is that when going from awake to sleep, you can see it takes about a second+ longer for the current to drop quickly than powering the xBee directly from VCC/GND.
No, you don't understand, you cannot normally get away with this. Either you have no decoupling (and
the ~ 40 ohm output resistance of the Arduino pin means unstable power for the transmitter), or you
have decoupling capacitors (as with xBee?) and you heavily overload the Arduino pin with capacitor inrush
current every time you switch on, eventually degrading/frying the pin. Logic outputs cannot drive large
capacitive loads (100's of pF are OK, 100's of nF is like a short circuit at logic speeds).
Use a transistor or MOSFET to switch the power to the xBee. Usually you'd high-side switch with a PNP or
p-channel device. You'll get sub-ohm impedance and something robust enough to handle decoupling
capacitor inrush (or even soften it). Use a rope to lift the load, not a thin piece of thread.