AnsweredAssumed Answered

ZigBee MC13213: Current consumption reducing

Question asked by arnogir on Apr 28, 2015
Latest reply on Jun 10, 2015 by arnogir



I'm working on a system using MC13213 and Beestack (version about 2009/2010...)


The system is composed by a coordinator, and a remote control in EndPoint powered by a battery of type CR2032 (Nominal current 0.2mA!).

the schematic of the remote control is very simple:

MC13213 with a button to trig Zigbee message send on PA0. Then the HF part with balloon (Same for RX/TX) using pin RFIN_P, RFIN_N, CT_BIAS

Then a  crystal on XTAL1 and XTAL2 of 16MHz with capacity of 6.8pF.

And EXTAL linked to CLKO.


The power consumption of the remote control is:

- 0.5µA in Sleep : That Ok!

- 7mA to 15mA when µC is wakeup with messages sent to ZigBee (period to send about 300ms or 100ms according something..)

So with a battery of 200mA.H at a nominal current to 0.2mA, like I load it to 7 to 15mA, the battery capacity is very very reduced due to load current which is greater than nominal current!


This consumption is obtained with the following configuration:

#ifdef USE_ABEL_CLKO   #define USE_62_5KHZ_CLKO #endif USE_ABEL_CLKO   In NV_Data.c: #define SYSTEM_CLOCK_8MHZ ...  HardwareParameters_t const gHardwareParametersInit = {   gaHardwareParametersDelimiterString_c,    /* initialString */ #ifdef SYSTEM_CLOCK_8MHZ   /* 8 MHz  */   0x08,                                 /* uint8_t Bus_Frequency_In_MHz; */   /* uint16_t Abel_Clock_Out_Setting; */     CLOCK_OUT_SETTING,   /* uint16_t Abel_HF_Calibration; */     HF_CALIBRATION,   /* ICG  */   0x18,                                 /* uint8_t NV_ICGC1; */   /* 0x00 => CPU clk=16 MHz, Buc clk = 8 MHz  */   0x00,                                 /* uint8_t NV_ICGC2; */   /* ICG Filter */   0x02,                                 /* uint8_t NV_ICGFLTU; */   0x40,                                 /* uint8_t NV_ICGFLTL; */ #endif SYSTEM_CLOCK_8MHZ ....



Before configuration was set with #define SYSTEM_CLOCK_16MHz and current consumption was about 12/13mA to 17/18mA. 


I want to reduce the current conception.

The Nv_Data.c file is note written with option of type "SYSTEM_CLOCK_4MHz" or 2 or 1MHz..

Could you indicate to me if it is possible to reduce the clock mare than currently (8MHz) to win current consumption.

I test to configure IGC2 to 0x1 or 0x2 to reduce CPU bus clock. After test, Bus Clk is well decrease, but communication with distant coordinator not work. Where is the problem?


Have you other Idea to reduce the consumption? (Except reduce the send message period)