AnsweredAssumed Answered

MC13224 Buck Regulator Usage problem

Question asked by Elisa Spano' on Jul 17, 2009
Latest reply on Sep 30, 2009 by Elisa Spano'

I want to use a buck regulator on my MC13224 board. I'am using a code with codebase 3.0.4 ( Temperature Sensor) but it doesn't work.

 

If I don't solder the recommended external inductor of 100 μH ± 20% inductance (part TDK #SLF6028T-101MR42) and the external capacitor is a 10μF ceramic component, and solder the necessary 0 Ohm resistor, (= I don't use buck regulator) the node works perfectly and joins the network

 

If I use inductor and capacitor I have to modify the software (I have a 24MHz crystal).I did but it doesn't works.

 

I made this function:

 

void PowerUpBuck(void)
{
  
  crmVRegCntl_t VRegCntl;


  CRM_SetPowerSource(gCrmPwSBuckRegulation_c);


  /*buck*/
  VRegCntl.vReg = gBuckVReg_c;
  VRegCntl.BUCK_EN  = 1;//enable buck regulator
  VRegCntl.BUCK_SYNC_REC_EN = 1;//enable sync rectifier
  VRegCntl.BUCK_BYPASS_EN = 0 ;//Bypass disabled (default)
  VRegCntl.BUCK_CLK_DIV = gBuckClkDiv_15_c;

  CRM_VRegCntl(&VRegCntl);
  while(!CRM_VRegIsReady(V_REG_MASK_BUCK)){};


   /*NVM reg*/
  VRegCntl.vReg = g1P8VReg_c;
  VRegCntl.cntl.vReg1P8VEn =1;
  CRM_VRegCntl(&VRegCntl);
  while(!CRM_VRegIsReady(V_REG_MASK_1P8V)){};

 
  /*Analog reg*/
  VRegCntl.vReg = g1P5VReg_c;
  VRegCntl.VREG_1P5V_EN =gRxTxandPLLRegEnable_c;
  VRegCntl.VREG_1P5V_I_SEL =gARegCurent40mA_c;
  CRM_VRegCntl(&VRegCntl);
  while(!CRM_VRegIsReady(V_REG_MASK_1P5V)){}; 
 
//while (1) {};
  
}

 

I called it in BeeStackInit

 

void BeeStackInit(void) {
#if (gLpmIncluded_d || gComboDeviceCapability_d)
#if gComboDeviceCapability_d
  if(gLpmIncluded)
#endif
  {
    PWR_CheckForAndEnterNewPowerState_Init();
    PWRLib_SetCurrentZigbeeStackPowerState(StackPS_DeepSleep);
  }
#endif
  PowerUpBuck(); //added E.S. 16/07/2009

......

 

 If I stop the program using the while preceded by // at the end of PowerUpBuck functionand I use an oscilloscope I can se the quare ware on COIL_BK pin of MC13224 at 1.6MHz and I can see 2V on the capacitor. So it is working.

 

The problem is that if I don't stop the program, the node try to find the network.

 

Thi is what I can see with Test Tool:

 

Rx [17:42:29.718] MacScan.Confirm 84 0B 07 EA 01 00 00 00 00 00
    Header                         [2 bytes] = 84 0B
    PayloadLength                  [1 byte ] = 07
    Status                         [1 byte ] = EA (NO_BEACON)
    ScanType                       [1 byte ] = 01 (Active Scan)
    ResultListSize                 [1 byte ] = 00
    UnscannedChannels (only PS/AS) [4 bytes] = 00 00 00 00
    ResultList                     [0 bytes] = 

Rx [17:42:29.828] NLME-NETWORK-DISCOVERY.Confirm 97 41 02 00 EA
    Header            [2 bytes] = 97 41
    PayloadLength     [1 byte ] = 02
    NetworkCount      [1 byte ] = 00
    NetworkDescriptor [0 bytes] = 
    Status            [1 byte ] = EA (NO_BEACON)

Rx [17:42:29.921] NLME-NETWORK-DISCOVERY.Request 96 34 05 00 F8 FF 07 03
    Header        [2 bytes] = 96 34
    PayloadLength [1 byte ] = 05
    ScanChannels  [4 bytes] = 07 FF F8 00
    ScanDuration  [1 byte ] = 03

Rx [17:42:29.921] MacScan.Request 85 08 06 01 00 F8 FF 07 03
    Header        [2 bytes] = 85 08
    PayloadLength [1 byte ] = 06
    ScanType      [1 byte ] = 01 (Active Scan)
    ScanChannels  [4 bytes] = 07 FF F8 00
    ScanDuration  [1 byte ] = 03 

Outcomes