尊敬的 TI 工程师:
我对 AQCSFRC 寄存器中的 CSFA 和 CSFB 有一些疑问。 当 CSFA 或 CSFB 等于0或3时、数据表中写入的"软件强制被禁用且无效"。
这是否意味着 AQSFRC 寄存器设置的详细信息不起作用? 此时 、电压电平(0或1)取决于什么?
期待您的回复、非常感谢!
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.
尊敬的 TI 工程师:
我对 AQCSFRC 寄存器中的 CSFA 和 CSFB 有一些疑问。 当 CSFA 或 CSFB 等于0或3时、数据表中写入的"软件强制被禁用且无效"。
这是否意味着 AQSFRC 寄存器设置的详细信息不起作用? 此时 、电压电平(0或1)取决于什么?
期待您的回复、非常感谢!
您好!
Marlyn、感谢您的回答。
现在、我将学习 三相逆变器。 如果我使用 EPwm1来控制两电平拓扑中的一个桥臂、我将 epwm1A 和 epwm1B 配置 为反向。
当机器关闭时、程序仅将 CSFA 设置为1、将 DBCTL.bit.out_mode 设置为0。 我不知道他们为什么不将 CSFB 设置为1。 即使是第一种方式、也可能始终关闭开关管。
那么、我缺少什么呢?
期待您的回复、非常感谢!
您好!
Marlyn、这是代码。
ClkCfgRegs.PERCLKDIVSEL.bit.EPWMCLKDIV = 0; // EPWMCLK = PLLSYSCLK EPwm1Regs.TBCTL.bit.HSPCLKDIV = 0; EPwm1Regs.TBCTL.bit.CLKDIV = 0; EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE; EPwm1Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm1Regs.TBCTL.bit.SYNCOSEL = TB_CTR_ZERO; EPwm1Regs.TBPRD = 6410; EPwm1Regs.TBPHS.bit.TBPHS = 0; EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_PRD; // duty = CMPA /TBPRD EPwm1Regs.AQCTLA.bit.CAU = AQ_SET; EPwm1Regs.AQCTLA.bit.CAD = AQ_CLEAR; //EPwm1Regs.DBCTL.bit.MODE = DB_FULL_ENABLE; EPwm1Regs.DBCTL.bit.IN_MODE = DBA_ALL; EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; EPwm1Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; EPwm1Regs.DBFED.all = 300; EPwm1Regs.DBRED.all = 300; EPwm1Regs.ETSEL.bit.INTSEL = 1; EPwm1Regs.ETSEL.bit.INTEN = 1; EPwm1Regs.ETPS.bit.INTPRD = 1; EPwm1Regs.TZSEL.bit.CBC1 = TZ_ENABLE; EPwm1Regs.TZSEL.bit.OSHT2 = TZ_ENABLE; EPwm1Regs.TZCTL.bit.TZA = TZ_FORCE_LO; EPwm1Regs.TZCTL.bit.TZB = TZ_FORCE_LO; EPwm1Regs.AQSFRC.bit.RLDCSF = 3; EPwm2Regs.TBCTL.bit.HSPCLKDIV = 0; EPwm2Regs.TBCTL.bit.CLKDIV = 0; EPwm2Regs.TBCTL.bit.CTRMODE = TB_COUNT_UPDOWN; EPwm2Regs.TBCTL.bit.PHSEN = TB_ENABLE; EPwm2Regs.TBCTL.bit.PHSDIR = TB_UP; EPwm2Regs.TBCTL.bit.PRDLD = TB_SHADOW; EPwm2Regs.TBCTL.bit.SYNCOSEL = TB_SYNC_IN; EPwm2Regs.TBPRD = 6410; EPwm2Regs.TBPHS.bit.TBPHS = 0; EPwm2Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW; EPwm2Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW; EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_PRD; EPwm2Regs.CMPCTL.bit.LOADBMODE = CC_CTR_PRD; EPwm2Regs.AQCTLA.bit.CAU = AQ_SET; EPwm2Regs.AQCTLA.bit.CAD = AQ_CLEAR; //EPwm2Regs.DBCTL.bit.MODE = DB_FULL_ENABLE; EPwm2Regs.DBCTL.bit.IN_MODE = DBA_ALL; EPwm2Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE; EPwm2Regs.DBCTL.bit.POLSEL = DB_ACTV_HIC; EPwm2Regs.DBFED.all = 300; EPwm2Regs.DBRED.all = 300; EPwm2Regs.ETSEL.bit.INTSEL = 2; EPwm2Regs.ETSEL.bit.INTEN = 1; EPwm2Regs.ETPS.bit.INTPRD = 1; EPwm2Regs.TZSEL.bit.CBC1 = TZ_ENABLE; EPwm2Regs.TZSEL.bit.OSHT2 = TZ_ENABLE; EPwm2Regs.TZCTL.bit.TZA = TZ_FORCE_LO; EPwm2Regs.TZCTL.bit.TZB = TZ_FORCE_LO; EPwm2Regs.AQSFRC.bit.RLDCSF = 3;
您好!
Marlyn、当机器要关闭时、将运行以下代码。
EPwm1Regs.AQCSFRC.bit.CSFA = 1;EPwm1Regs.DBCTL.bit.OUT_MODE = DB_DISABLE;\ EPwm2Regs.AQCSFRC.bit.CSFA = 1;EPwm2Regs.DBCTL.bit.OUT_MODE = DB_DISABLE;\ EPwm3Regs.AQCSFRC.bit.CSFA = 1;EPwm3Regs.DBCTL.bit.OUT_MODE = DB_DISABLE;\ EPwm4Regs.AQCSFRC.bit.CSFA = 1;EPwm4Regs.DBCTL.bit.OUT_MODE = DB_DISABLE;\ EPwm5Regs.AQCSFRC.bit.CSFA = 1;EPwm5Regs.DBCTL.bit.OUT_MODE = DB_DISABLE;\ EPwm6Regs.AQCSFRC.bit.CSFA = 1;EPwm6Regs.DBCTL.bit.OUT_MODE = DB_DISABLE
我认为、当机器正常关闭时、不会发生任何跳闸事件。
TZA 和 TXB 也可以配置为0 (高阻抗)、结果不受影响。 它只会影响 DSP 初始状态。当机器想要工作时、将运行以下代码。
EPwm1Regs.AQCSFRC.bit.CSFA = 0;EPwm1Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;\ EPwm2Regs.AQCSFRC.bit.CSFA = 0;EPwm2Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;\ EPwm3Regs.AQCSFRC.bit.CSFA = 0;EPwm3Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;\ EPwm4Regs.AQCSFRC.bit.CSFA = 0;EPwm4Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;\ EPwm5Regs.AQCSFRC.bit.CSFA = 0;EPwm5Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE;\ EPwm6Regs.AQCSFRC.bit.CSFA = 0;EPwm6Regs.DBCTL.bit.OUT_MODE = DB_FULL_ENABLE
EPWMA 和 EPWMB 配置为关联。 我看不到 AQCTLB 的配置位置。 当我将 DSP 连接到 CCS 时、我可以读取 EPWM1和 EPWM2的 AQCTLB 配置为0、AQCTLB2配置为5。
那么、您还想了解其他信息吗?
高焦炭、
只需将 AQCSFRC 寄存器的 CSFA 位置位、而不是 CSFB 的原因是 EPWMxB 已经为低电平。
提供更多上下文:EPWMxA 通过操作限定符配置为在 CAU 事件上设置、在 CAD 事件上清除。 EPWMxB 未配置为改变状态。 但是、死区子模块配置为利用动作限定器子模块的 EPWMxA 输出作为 EPWMxA 和 EPWMxB 的输入(这通过 IN_MODE 位实现)。 请参阅下图、其中我根据您提供的代码突出显示了路径。 一旦 DBCTL 寄存器的 OUT_MODE 位设置为禁用、死区子模块之后的 EPWMxB 输出应与动作限定符子模块的 EPWMxB 输出相同(始终为低电平)。 然后、CSFA 位将 EPWMxA 驱动为低电平、从而使两个输出都为低电平。
此致、
Marlyn