TI中文支持网
TI专业的中文技术问题搜集分享网站

如何关掉28335中的一些模块的时钟

你好,我现在开发TMS320F28335,需要考虑功耗问题,要关掉一些不用的模块,请问如何用代码实现?谢谢

Susan Yang:C2000Ware内有相关的LPM例程 C:\ti\c2000\C2000Ware_1_00_05_00\device_support\f2833x\examples,您可以参考一下。

另外C2000 系列产品并不是以低功耗为主要特点,但是可以从以下几个方面考虑降低系统的功耗:

(1)MCU 的功耗与运行频率存在很大的关系,您可以根据需求合理设置主频的范围;

(2)及时关断不使用的外设模块;

(3)尽量使 MCU 更多的运行在低功耗模式下;

(4)提高代码执行效率;

你好,我现在开发TMS320F28335,需要考虑功耗问题,要关掉一些不用的模块,请问如何用代码实现?谢谢

user5196261:

回复 Susan Yang:

如何通过代码关断不使用的外设模块,谢谢

你好,我现在开发TMS320F28335,需要考虑功耗问题,要关掉一些不用的模块,请问如何用代码实现?谢谢

Susan Yang:

回复 user5196261:

您可以在InitPeripheralClocks内进行操作

你好,我现在开发TMS320F28335,需要考虑功耗问题,要关掉一些不用的模块,请问如何用代码实现?谢谢

Susan Yang:

回复 user5196261:

//
// InitPeripheralClocks - This function initializes the clocks to the// peripheral modules. First the high and low clock prescalers are set
// Second the clocks are enabled to each peripheral. To reduce power, leave// clocks to unused peripherals disabled
//
// Note: If a peripherals clock is not enabled then you cannot
// read or write to the registers for that peripheral
//
voidInitPeripheralClocks(void)
{EALLOW;//// HISPCP/LOSPCP prescale register settings, normally it will be set to// default values//SysCtrlRegs.HISPCP.all = 0x0001;SysCtrlRegs.LOSPCP.all = 0x0002;//// XCLKOUT to SYSCLKOUT ratio.By default XCLKOUT = 1/4 SYSCLKOUT// XTIMCLK = SYSCLKOUT/2//XintfRegs.XINTCNF2.bit.XTIMCLK = 1;//// XCLKOUT = XTIMCLK/2//XintfRegs.XINTCNF2.bit.CLKMODE = 1;//// Enable XCLKOUT//XintfRegs.XINTCNF2.bit.CLKOFF = 0;//// Peripheral clock enables set for the selected peripherals.// If you are not using a peripheral leave the clock off// to save on power.//// Note: not all peripherals are available on all 2833x derivates.// Refer to the datasheet for your particular device.//// This function is not written to be an example of efficient code.//SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1;// ADC////*IMPORTANT*// The ADC_cal function, whichcopies the ADC calibration values from TI// reserved OTP into the ADCREFSEL and ADCOFFTRIM registers, occurs// automatically in the Boot ROM. If the boot ROM code is bypassed during// the debug process, the following function MUST be called for the ADC to// function according to specification. The clocks to the ADC MUST be// enabled before calling this function.// See the device data manual and/or the ADC Reference// Manual for more information.//ADC_cal();SysCtrlRegs.PCLKCR0.bit.I2CAENCLK = 1;// I2CSysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1;// SCI-ASysCtrlRegs.PCLKCR0.bit.SCIBENCLK = 1;// SCI-BSysCtrlRegs.PCLKCR0.bit.SCICENCLK = 1;// SCI-CSysCtrlRegs.PCLKCR0.bit.SPIAENCLK = 1;// SPI-ASysCtrlRegs.PCLKCR0.bit.MCBSPAENCLK = 1; // McBSP-ASysCtrlRegs.PCLKCR0.bit.MCBSPBENCLK = 1; // McBSP-BSysCtrlRegs.PCLKCR0.bit.ECANAENCLK=1;// eCAN-ASysCtrlRegs.PCLKCR0.bit.ECANBENCLK=1;// eCAN-BSysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;// Disable TBCLK within the ePWMSysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1;// ePWM1SysCtrlRegs.PCLKCR1.bit.EPWM2ENCLK = 1;// ePWM2SysCtrlRegs.PCLKCR1.bit.EPWM3ENCLK = 1;// ePWM3SysCtrlRegs.PCLKCR1.bit.EPWM4ENCLK = 1;// ePWM4SysCtrlRegs.PCLKCR1.bit.EPWM5ENCLK = 1;// ePWM5SysCtrlRegs.PCLKCR1.bit.EPWM6ENCLK = 1;// ePWM6SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1;// Enable TBCLK within the ePWMSysCtrlRegs.PCLKCR1.bit.ECAP3ENCLK = 1;// eCAP3SysCtrlRegs.PCLKCR1.bit.ECAP4ENCLK = 1;// eCAP4SysCtrlRegs.PCLKCR1.bit.ECAP5ENCLK = 1;// eCAP5SysCtrlRegs.PCLKCR1.bit.ECAP6ENCLK = 1;// eCAP6SysCtrlRegs.PCLKCR1.bit.ECAP1ENCLK = 1;// eCAP1SysCtrlRegs.PCLKCR1.bit.ECAP2ENCLK = 1;// eCAP2SysCtrlRegs.PCLKCR1.bit.EQEP1ENCLK = 1;// eQEP1SysCtrlRegs.PCLKCR1.bit.EQEP2ENCLK = 1;// eQEP2SysCtrlRegs.PCLKCR3.bit.CPUTIMER0ENCLK = 1; // CPU Timer 0SysCtrlRegs.PCLKCR3.bit.CPUTIMER1ENCLK = 1; // CPU Timer 1SysCtrlRegs.PCLKCR3.bit.CPUTIMER2ENCLK = 1; // CPU Timer 2SysCtrlRegs.PCLKCR3.bit.DMAENCLK = 1;// DMA ClockSysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1;// XTIMCLKSysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;// GPIO input clockEDIS;
}

你好,我现在开发TMS320F28335,需要考虑功耗问题,要关掉一些不用的模块,请问如何用代码实现?谢谢

user5196261:

回复 Susan Yang:

谢谢

你好,我现在开发TMS320F28335,需要考虑功耗问题,要关掉一些不用的模块,请问如何用代码实现?谢谢

Susan Yang:

回复 user5196261:

很高兴能帮到您!

你好,我现在开发TMS320F28335,需要考虑功耗问题,要关掉一些不用的模块,请问如何用代码实现?谢谢

user5949087:

回复 user5196261:

您好,请问,您怎样配置低功耗的,我现在也在配置,老不成功

赞(0)
未经允许不得转载:TI中文支持网 » 如何关掉28335中的一些模块的时钟
分享到: 更多 (0)