DSP

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

2019-07-13 16:19发布

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不同的地方。