Thread 中讨论的其他器件:controlSUITE
工具/软件:Code Composer Studio
您好!
我使用以下链接代码
C:\ti\controlSUITE\development_kits\TMDSIDDK_v2.0\IDDK_PM_Servo_F2837x_v2_00_00_00
我将此项目导入到我的 CCS 工具中、当我在调试器模式下运行此项目时、我首先给出 ENABLE 标志== 1、然后 ISR 正在调用(我使用 IsrTicker 变量进行了检查)、但 PWM 不会出现。
对于 PWM、我将使用 GPIO 的0、1、2、3、4、5作为 ePWM 模式。
一段时间后、我知道(例如软件跳闸即将到来) HVDMC_Protection 函数
Lem_curHi = 2048 + LEM (curLimit);
Lem_curLo = 2048 - LEM (curLimit);
cmpssConfig (&cmpss1Regs、LEM_curHi、LEM_curLo); //启用 CMPSS1 - LEM V
cmpssConfig (&cmpss3Regs、LEM_curHi、LEM_curLo); //启用 CMPSS3 - LEM W
在这些行执行后、所有 ePWM 寄存器 TZFLG 为高电平、即 A1任务中低于1的函数正在调用
IF (EPwm1Regs.TZFlG.bit.OST ||
EPwm2Regs.TZFlG.bit.OST ||
EPwm3Regs.TZFlG.bit.OST
)
{
//如果设置了任何 EPWM 的 OST,则强制 OST 在全部三个上禁用逆变器
EALLOW;
EPwm1Regs.TZFRC.bit.OST = 1;
EPwm2Regs.TZFRC.bit.OST = 1;
EPwm3Regs.TZFRC.bit.OST = 1;
EDIS;
TripFlagDMC = 1; // DMC 上的跳闸(HALT 和 IPM 故障跳闸)
RunMotor = 0;
}
因此、我了解的是、如果上述函数被称为自动跳闸、则会检测到 PWM 不启用
我不知道为什么只有在构建级别1中发生这种情况、在该级别上没有电流感应 ADC'c
实际上、我尝试了很多方法、但如果我将这些下面的行放入 HVDMC_Protection 中、则没有结果
Lem_curHi = 2048 + LEM (curLimit);
Lem_curLo = 2048 - LEM (curLimit);
cmpssConfig (&cmpss1Regs、LEM_curHi、LEM_curLo); //启用 CMPSS1 - LEM V
cmpssConfig (&cmpss3Regs、LEM_curHi、LEM_curLo); //启用 CMPSS3 - LEM W
那么、PWM 正在调用、实际上这是我认为不正确的方式
对于构建、1级只是 PWM 的检查、但它正在创建 promblem
我不知道函数为什么仅在1级中产生问题
我也不知道这个函数 cmpssConfig (&cmpss3Regs、LEM_curHi、LEM_curLo)是什么; //启用 CMPSS3 - LEM W
硬件正常、我使用电机和不使用电机测试此情况、我知道在构建1中不需要电机
我没有更改该项目中的任何值
请帮帮我
谢谢你