Help with XBEE Pro 900HP Programmable Async Sleep Mode (SM=1)

I’m having trouble putting the radio to sleep with Async Sleep Mode 1.

I have the internal pullup resistor for pin 9 (DIO8 / SLEEP_REQUEST) set to ‘0’ using the command:

ixbee_cmd_simple(&xdev, “PR”, 0x7FBF);[/i]

In my main loop I want to do the following:

printf("Going to sleep…
(void)xbee_cmd_simple(&xdev, “D8”, 5);
(void)pm_set_cpu_mode(PM_MODE_STOP_2, 30); // Start sleeping
// When CPU wakes-up, it continues executing from here
delay_ticks(2); // This is for avoiding writing garbage on the UART
(void)xbee_cmd_simple(&xdev, “D8”, 4);
printf("CPU Awaked

This however doesn’t appear to work…I show my power consumption running at ~40mA at idle and ~31mA when it’s supposed to be sleeping.

When I use Sync Sleep Mode 8, I’m able to get the sleep current draw down to ~230uA.

What am I missing??


This is resolved. Since PIN 9 is input only it must be set with an external source. We ended up connecting DIO2 (PIN 18) to PIN 9 and then toggled it with an parallel output on the Freescale chip (PTB2).