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.

TMS320F28377D: EPWM1无法输出高精度PWM(hrpwm)

Part Number: TMS320F28377D
Other Parts Discussed in Thread: SYSCONFIG

工程师们好,我最近试图使用EPWM1输出60kHz左右的高精度PWM,根据数据手册进行配置,但是使用频率计测试发现实际输出并非高精度(步长大概70hz)。以下是我的EPWM相关的代码,麻烦工程师们帮我看看哪里有问题:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void EPwm1_Gpio_Init(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.
// Comment out other unwanted lines.
//
GpioCtrlRegs.GPAPUD.bit.GPIO0 = 1; // Disable pull-up on GPIO0 (EPWM1A)
GpioCtrlRegs.GPAPUD.bit.GPIO1 = 1; // Disable pull-up on GPIO1 (EPWM1B)
//
// Configure EPWM-1 pins using GPIO regs
// This specifies which of the possible GPIO pins will be EPWM1 functional
// pins.
// Comment out other unwanted lines.
//
GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 1; // Configure GPIO0 as EPWM1A
GpioCtrlRegs.GPAMUX1.bit.GPIO1 = 1; // Configure GPIO1 as EPWM1B
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

EPWM模块初始化完成之后寄存器的值如下:

此外,我还尝试使用sysconfig进行配置,奇怪的是只要使能HRPWM功能就无法选择引脚GPIO0和GPIO1(EPWM1A和EPWM1B)。通过数据手册我确认了EPWM1是支持HRPWM的。

未开启HRPWM,EPWM1正常选择,如下图所示

开启HRPWM,EPWM1不能被选择,如下图所示