28377的EPWM9,EPWM10,EPWM11,EPWM12的配置

TITMS320F28377可以输出12PWM,只是根据封装不同,有些PWM的引脚没有引出使得其路数减少了一些。

TI的例程中,一般都使用的EPWM1,EPWM2,EPWM3,对于EPWM9EPWM10EPWM11EPWM12的配置在例程中给出的关于GPIO口的配置如下,以EPWM9为例:

void InitEPwm9Gpio(void)

{

   EALLOW;

/*Disable internal pull-up for the selected output pins

   for reduced power consumption */

//Pull-ups can be enabled or disabled by the user.

//This will enable the pullups for the specified pins.

    GpioCtrlRegs.GPFPUD.bit.GPIO161 = 1;    // Disable pull-up on GPIO161 (EPWM9A)

    GpioCtrlRegs.GPFPUD.bit.GPIO162 = 1;    // Disable pull-up on GPIO162 (EPWM9B)

/*Configure EPWM-6 pins using GPIO regs*/

//This specifies which of the possible GPIO pins will be EPWM6 functional pins.

//Comment out other unwanted lines.

   GpioCtrlRegs.GPFMUX1.bit.GPIO161 = 1;   // Configure GPIO161 as EPWM9A

   GpioCtrlRegs.GPFMUX1.bit.GPIO162 = 1;   // Configure GPIO162 as EPWM9B

    EDIS;

}

可以看到配置给EPWM9IO口是161162,查看datasheet可以知道,对于EPWM9,其IO的分配可以是GPIO16,GPIO17,也可以是GPIO161,GPIO162,其中GPIO161,GPIO162是针对BGA封装的,我们平时使用的100脚的PZP176脚的PTP封装中,EPWM9使用的是GPIO16,GPIO17。所以要对例程中的引脚定义进行更改。

在例程中,对于PWM12345678的引脚定义代码如下,以EPWM1为例,前两条语句是禁止这两个引脚上拉,后两条语句是将该IO口定义为EPWM1输出。

GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1;    

GpioCtrlRegs.GPAPUD.bit.GPIO1 = 1;  

GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1;      

GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1;

在将GPIO16,GPIO17定义为PWM输出时,通过查看datasheetPinMultiplexing可以知道,要将GPIO16,GPIO17定义为PWM输出,不仅需要需要定义其GPAMUX1位为01,还需要定义GPAGMUX1位为01,所以定义的语句应该如下:

GpioCtrlRegs.GPAPUD.bit.GPIO16 = 1;      

GpioCtrlRegs.GPAPUD.bit.GPIO17 = 1;  

GpioCtrlRegs.GPAMUX2.bit.GPIO16 = 1;      

GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 1;

GpioCtrlRegs.GPAGMUX2.bit.GPIO16 = 1;      

GpioCtrlRegs.GPAGMUX2.bit.GPIO17 = 1;

至此,完成了EPWM9IO口配置,其重点在于引脚的更改,和引脚配置时于EPWM12345678不同的地方。



你可能感兴趣的:(28377的EPWM9,EPWM10,EPWM11,EPWM12的配置)