图中程序是开启了外部时钟,但是到底是以cpu的时钟还是哪个,一直看不出来,这个PCLKCR2开启的是什么,说明书也看了也没明确说明,我只想知道我的epwmclk在哪里给他设置给他选择时钟源,太难了小白一枚
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
图中程序是开启了外部时钟,但是到底是以cpu的时钟还是哪个,一直看不出来,这个PCLKCR2开启的是什么,说明书也看了也没明确说明,我只想知道我的epwmclk在哪里给他设置给他选择时钟源,太难了小白一枚
1 在F2837xD器件上,ePWM的最大工作频率为100MHz,这是通过对SYSCLK进行分频来实现的。由于此设备支持的最大SYSCLK frq为200MHz,因此默认情况下,该分频器的分频值为/ 2(PERCLKDIVSEL寄存器中的EPWMCLKDIV字段),因此,当用户将SYSCLKOUT设置为200MHz时,ePWM将获得100MHz时钟。
// EPWM clock divider set to /2
ClkCfgRegs.PERCLKDIVSEL.bit.EPWMCLKDIV = 1;
仅当SYSCLK frq为100 MHz(或更小)时,用户才应将此分频器设置为/ 1。
2 PCLKCR打开的是epwm的时钟,参考3.7.3.3 CPU Subsystem Clock (SYSCLK and PERx.SYSCLK)
Each peripheral clock also has its own independent clock gating which is controlled by the CPU's PCLKCRx registers. By default, the ePWM, EMIF1, and EMIF2 clocks each have an additional /2 divider, which is required to support CPU frequencies over 100 MHz. At slower CPU frequencies, these dividers can be disabled via the PERCLKDIVSEL register.
可以进行设置的,您可以修改F2837xD_SysCtrl.c的InitSysPll函数的参数
// // The following are values that can be passed to the // InitSysPll() & InitAuxPll() to select clock source // #define INT_OSC2 0 #define XTAL_OSC 1 #define INT_OSC1 2 #define AUXCLKIN 4 // // Specify the clock rate of the CPU (SYSCLKOUT) in nS. // // Take into account the input clock frequency and the PLL multiplier // selected in step 1. // // Use one of the values provided, or define your own. // The trailing L is required tells the compiler to treat // the number as a 64-bit value. // // Only one statement should be uncommented. // // Example: 200 MHz devices: // CLKIN is a 10 MHz crystal or internal 10 MHz oscillator // // In step 1 the user specified the PLL multiplier = 40 for a // 200 MHz CPU clock (SYSCLKOUT = 200 MHz). // // In this case, the CPU_RATE will be 5.000L // Uncomment the line: #define CPU_RATE 5.000L // #define CPU_RATE 5.00L // for a 200MHz CPU clock speed (SYSCLKOUT) //#define CPU_RATE 5.263L // for a 190MHz CPU clock speed (SYSCLKOUT) //#define CPU_RATE 5.556L // for a 180MHz CPU clock speed (SYSCLKOUT) //#define CPU_RATE 5.882L // for a 170MHz CPU clock speed (SYSCLKOUT) //#define CPU_RATE 6.250L // for a 160MHz CPU clock speed (SYSCLKOUT) //#define CPU_RATE 6.667L // for a 150MHz CPU clock speed (SYSCLKOUT) //#define CPU_RATE 7.143L // for a 140MHz CPU clock speed (SYSCLKOUT) //#define CPU_RATE 7.692L // for a 130MHz CPU clock speed (SYSCLKOUT) //#define CPU_RATE 8.333L // for a 120MHz CPU clock speed (SYSCLKOUT)