-
/*
-
*函数名称:InitPeripheralClocks
-
*输入参数:无
-
*输出参数:无
-
*函数功能:初始化外设时钟模块,主要包括产生高低速时钟、开关所需片内外设模块时*钟等
-
*/
-
void InitPeripheralClocks(void)
-
{
-
EALLOW;
-
-
// 高低频外设时钟分频寄存器HISPCP/LOSPCP设置,正常情况下采用默认值,即高频时钟为SYSCLKOUT/2,低速时钟为SYSCLKOUT/4
-
SysCtrlRegs.HISPCP.all = 0x0001;
-
SysCtrlRegs.LOSPCP.all = 0x0002;
-
-
// 时钟输出引脚XCLKOUT设置,默认情况XCLKOUT = SYSCLKOUT/4
-
// XTIMCLK = SYSCLKOUT/2
-
XintfRegs.XINTCNF2.bit.XTIMCLK = 1;//extern interface clock<->XinfCLK
-
// XCLKOUT = XTIMCLK/2
-
XintfRegs.XINTCNF2.bit.CLKMODE = 1;
-
// Enable XCLKOUT
-
XintfRegs.XINTCNF2.bit.CLKOFF = 0;
-
-
// 给所选用外设使能外设时钟
-
// 如果不使用某外设模块,禁用它的时钟以省电
-
// 下面代码要根据自己使用的外设模块进行相应的修改
-
-
SysCtrlRegs.PCLKCR0.bit.ADCENCLK = 1; // ADC
-
-
// *重要提醒*
-
// ADC_cal()函数, 可以从TI保留的OTP中复制ADC校验值,并将校验值赋值给ADCREFSEL和ADCOFFTRIM寄存器,该过程在BOOT ROM中自动地完成
-
//如果在调试过程中,BOOT ROM代码旁路未使用,那么必须显示调用下面 ADC_cal()函数(推荐显示调用)
-
//在调用 ADC_cal()前,必须使能ADC时钟
-
// 有关ADC更多的信息参见设备数据手册
-
-
ADC_cal();
-
-
//本例中使能了所有片内外设模块时钟
-
SysCtrlRegs.PCLKCR0.bit.I2CAENCLK = 1; // I2C
-
SysCtrlRegs.PCLKCR0.bit.SCIAENCLK = 1; // SCI-A
-
SysCtrlRegs.PCLKCR0.bit.SCIBENCLK = 1; // SCI-B
-
SysCtrlRegs.PCLKCR0.bit.SCICENCLK = 1; // SCI-C
-
SysCtrlRegs.PCLKCR0.bit.SPIAENCLK = 1; // SPI-A
-
SysCtrlRegs.PCLKCR0.bit.MCBSPAENCLK = 1; // McBSP-A
-
SysCtrlRegs.PCLKCR0.bit.MCBSPBENCLK = 1; // McBSP-B
-
SysCtrlRegs.PCLKCR0.bit.ECANAENCLK=1; // eCAN-A
-
SysCtrlRegs.PCLKCR0.bit.ECANBENCLK=1; // eCAN-B
-
-
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0; // Disable TBCLK within the ePWM
-
SysCtrlRegs.PCLKCR1.bit.EPWM1ENCLK = 1; // ePWM1
-
SysCtrlRegs.PCLKCR1.bit.EPWM2ENCLK = 1; // ePWM2
-
SysCtrlRegs.PCLKCR1.bit.EPWM3ENCLK = 1; // ePWM3
-
SysCtrlRegs.PCLKCR1.bit.EPWM4ENCLK = 1; // ePWM4
-
SysCtrlRegs.PCLKCR1.bit.EPWM5ENCLK = 1; // ePWM5
-
SysCtrlRegs.PCLKCR1.bit.EPWM6ENCLK = 1; // ePWM6
-
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 1; // Enable TBCLK within the ePWM
-
-
SysCtrlRegs.PCLKCR1.bit.ECAP3ENCLK = 1; // eCAP3
-
SysCtrlRegs.PCLKCR1.bit.ECAP4ENCLK = 1; // eCAP4
-
SysCtrlRegs.PCLKCR1.bit.ECAP5ENCLK = 1; // eCAP5
-
SysCtrlRegs.PCLKCR1.bit.ECAP6ENCLK = 1; // eCAP6
-
SysCtrlRegs.PCLKCR1.bit.ECAP1ENCLK = 1; // eCAP1
-
SysCtrlRegs.PCLKCR1.bit.ECAP2ENCLK = 1; // eCAP2
-
SysCtrlRegs.PCLKCR1.bit.EQEP1ENCLK = 1; // eQEP1
-
SysCtrlRegs.PCLKCR1.bit.EQEP2ENCLK = 1; // eQEP2
-
-
SysCtrlRegs.PCLKCR3.bit.CPUTIMER0ENCLK = 1; // CPU Timer 0
-
SysCtrlRegs.PCLKCR3.bit.CPUTIMER1ENCLK = 1; // CPU Timer 1
-
SysCtrlRegs.PCLKCR3.bit.CPUTIMER2ENCLK = 1; // CPU Timer 2
-
-
SysCtrlRegs.PCLKCR3.bit.DMAENCLK = 1; // DMA Clock
-
SysCtrlRegs.PCLKCR3.bit.XINTFENCLK = 1; // XTIMCLK
-
SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1; // GPIO input clock
-
-
EDIS;
-
}