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