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
Solved! Go to Solution.
The problem at enabling the buck regulator was corrected in BeeKit v1.9.9 release in August. The buck now works as indicated in the Reference Manual.
You can download the BeeKit v1.9.9, and the Software stack codebases will be upgraded within the BeeKit installation.
The problem at enabling the buck regulator was corrected in BeeKit v1.9.9 release in August. The buck now works as indicated in the Reference Manual.
You can download the BeeKit v1.9.9, and the Software stack codebases will be upgraded within the BeeKit installation.