Low power operation in programmable XBee PRO: differences in power profiles

Hi all,

I´m working with 2 variants of same project using XBee PRO programmable (Freescale S08QE32 core).

The #1 is a remote temperature sensor configured to sleep for several minutes between each data transfer. It uses one ADC and the I2C bus. No GPIOs. It draw less than 1mA when sleeping. Works fine.

The #2 is a variant of #1, but uses 2 ADC channels, and one GPIO (pin 16). No I2C bus. It draw 2mA when begins to sleep, and 3mA some minutes later. Except for this detail, works fine.

The firmware is almost the same for both, except for the GPIO/I2C difference.

In the #2 I tried several changes in ADC channels and various GPIOs choices. I can get a greater current draw, but I cant find a way to make it draw less than 1mA, like #1 does.

I guess the problem is an undisered interaction between EM250 and S08 GPIO settings (tri-states, pull-ups setings, etc), but I´m unable to find it.

Does anybody have a clue for it?

Thank´s in advance,

Paulo Peres

Hello Paulo,

Thanks for the feedback! First of all, have you tried the examples provided with the latest XBee SDK (1.5)? Do you use a Pin Sleep or Cyclic Sleep configuration? I assume that you draw 1 mA when the radio and the S08 are both sleeping.

I don’t know how much current the ADC module draws (the S08 reference manual, here), but take into consideration that you should disable Low Voltage Detection (LVD) as it draws 100 uA and ensure that the unused pins are configured as outputs OR if they can’t be output let them as input but force the value with an external resistor.

Also, ensure that the radio pull-ups (PR parameter) are not enabled.

Please let us know about your progress, setup and how much you were able to reduce power consumption. Good luck!

1 Like

Thank you for the answer!

Both EM250 and S08 are sleeping when I got the 2mA. And I´m familiarized with the SDK examples.
I´d spent several hours testing the interactions between S08 and EM250 ports and did some tests with pull ups enablings in both sides. I eventually found a suitable configuration for the circuit.
In the process, I noticed that when I was using the pin 15 of Xbee PRO as GPIO, the current draw rises from about 2mA to about 17mA!
After several tests, I only could reduce this power drawn by replacing this pin by the #16, instead.
My circuit uses the pin sleep option, and the sleep time is determined by the firmware (I´m designing it with a 20 min goal).
My reference circuit (the #1) uses an analog channel to read an analog temp sensor (50uA max, always on) and a I2C bus digital temp sensor (70uA when active).
My second circuit (#2) uses a more complex circuitry for the analog, but I designed it to draw about 1.8mA when active and about 40uA when sleeping. I checked separately and works fine.
So, at least in theory, it should draw less current when sleeping than the version #1.
But I,m still stucked at 2mA.
I´m now testing turn on and turn off the sections of S08 to reduce power. But would be clarifying to know how the EM250 connections interact with the S08 and if really causes a major power draw.

I am working on a similar problem using Series 2 Pro Module. I would be grateful hear of more progress and share circuit layouts.