主题中讨论的其他器件:SysConfig
您好!
我已经尝试启用 PWM 的跳闸区域、但没有成功。
在配置部分中、I config this function:
ePWM_tzTriggerTripAction (epwmBaseAddr、
EPWM_TZ_TRIP_ACTION_TRI_STATE、
ePWM_OUTPUT_CH_A);
ePWM_tzTriggerTripAction (epwmBaseAddr、
EPWM_TZ_TRIP_ACTION_TRI_STATE、
EPWM_OUTPUT_CH_B);
对于激活部分、此功能为:
ePWM_tzTripEventEnable (epwmBaseAddr、EPWM_TZ_EVENT_CYCLE_BY_CYCLE、CONFIG_GPIO0_PIN);
并切换 IO
或者、此文章:
ePWM_tzTriggerSwEvent (epwmBaseAddr、ePWM_TZ_EVENT_CYCLE_BY_CYCLE);
在 SysConfig 上、我有一些问题、如果我按如下方式配置 PWM:
它不链接 TZ 功能、如果我使用此配置:
PWM 完全不运行。
我从 TI 得到了有关此函数问题的回复:
void SOC_allowEpwmTzReg (uint32_t epwmInstance、uint32_t enable)
{
/*时基时钟使能寄存器属于 CTRL MMR 的分区1 */
uint32_t epwmPartition = 1;
/*解锁 CTLR_MMR0寄存器*/
SoC_controlModuleUnlockMMR (SOC_DOMAIN_ID_MAIN、epwmPartition);
uint32_t regOffest = CSL_CTRL_MMR0_CFG0_BASE + CSL_MAIN_CTRL_MMR_CFG0_EPWM0_CTRL_PROXY +(4 * epwmInstance);
if (true == enable)
{
CSL_REG32_WR (regOffest、
((CSL_REG32_RD (regOffest)和0x710U)|(0x1U << CSL_MAIN_CTRL_MMR_CFG0_EPWM0_CTRL_PROVISION_EPWM0_CTRL_EALLOW_PROVISION_SHIFT)));
}
否则
{
CSL_REG32_WR (regOffest、
((CSL_REG32_RD (regOffest)和0x710U)和~(0x1U << CSL_MAIN_CTRL_MMR_CFG0_EPWM0_CTRL_PROVISION_EPWM0_CTRL_EALLOW_PROVISION_SHIFT)));
}
/*锁定 CTRL_MMR0寄存器*/
SoC_controlModuleLockMMR (SOC_DOMAIN_ID_MAIN、epwmPartition);
}
需要如下所示绕过我的触发器:
SoC_allowEpwmTzReg (epwmId、true);
ePWM_tzTriggerSwEvent (epwmBaseAddr、ePWM_TZ_EVENT_CYCLE_BY_CYCLE);
SoC_allowEpwmTzReg (epwmId、false);
但它没有帮助。
您能请求为我提供解决此问题的一些指导吗?
谢谢
欧弗里