|
|
View previous topic :: View next topic |
Author |
Message |
bruin Guest
|
CCS ZigBee/ Ember board- sleepy mode current draw |
Posted: Fri Jul 03, 2009 8:38 pm |
|
|
I'm trying to reduce the average current draw of the "sleepy" sensor portion of the CCS ZigBee development kit. Right now it's drawing around 7-10mA on average, even if I stop calling any of the ember functions. I suspect the chip itself has some timer which calls the coordinator periodically. How do I change this?
Am I supposed to do something in particular to put the EM260 to sleep? The EM260 chip is supposed to draw very little current in sleep, so I suspect I have to do something besides #define this is a sleepy sensor.
Thanks! |
|
|
bruin Guest
|
getting closer... still not there |
Posted: Mon Jul 06, 2009 8:05 am |
|
|
I've figured out if I make NO_SLEEP 1 (make the device sleep after each command), I can make the device sleep - but the wireless connection no longer works (push the button to make the display increment). NO_SLEEP is used in EM260SendCommand.
If I make a new function such that EZSP_FRAME_CONTROL_INDEX is 1 only when the button is pressed, as below, but is 0 for sensorApplicationTick() and EM260Tick() commands, I don't get any current savings, but the button pushed/ increment function works.
Any help/ examples out there?
Thanks!
Code: | while(TRUE)
{
sensorApplicationTick();
EM260Tick();
if(!input(PUSH_BUTTON1))
{
i++;
messagedata[0]=i;
ezspSendUnicastSleep(EMBER_OUTGOING_DIRECT,indexOrDestination,&apsframe,messagetag,messageLength,&messagedata[0]);
delay_ms(1000);
}
if(!input(PUSH_BUTTON2))
{
i--;
messagedata[0]=i;
ezspSendUnicastSleep(EMBER_OUTGOING_DIRECT,indexOrDestination,&apsframe,messagetag,messageLength,&messagedata[0]);
//delay_ms(200);
}
} |
|
|
|
bruin Guest
|
modified... still not there |
Posted: Mon Jul 06, 2009 10:49 am |
|
|
I have modified the code, where I send a NOP command and that NOP calls the EM260SendCommand with the EM260SpiBuffer[EZSP_FRAME_CONTROL_INDEX]= 0x01;
The current on the Ember board is 3.8mA, which seems awfully high considering the deep sleep mode is supposed to draw 1uA.
Thanks!
Code: |
while(true)
{
for(ii=0;ii<1;++ii)
{
sensorApplicationTick();
EM260Tick();
i++;
messagedata[0]=i;
ezspSendUnicast(EMBER_OUTGOING_DIRECT,indexOrDestination,&apsframe,messagetag,messageLength,&messagedata[0]);
ezsp_response();
delay_ms(500);
}
ezspNop();
while(input(PUSH_BUTTON1));
} |
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|