主题中讨论的其他器件:BOOSTXL-DRV8305EVM、 TIDA-00643、 MOTORWARE
工具/软件:Code Composer Studio
我设计了参考 launchpad-28069M 和 BoostXL-Drv8305EVM 的 ESC 板。
现在、我想将 PWM 信号输入作为速度命令添加到我的板中、就像平常的 ESC 一样。
我指 的是 TIDA-00643 motorware。
现在、我的问题是我的板没有 eCAP1、只有 Ecap2。
因此、我无法选择 Ecap2作为 PWM 输入。
现在我已经完成了:
1.在 hal.c 中将 GPIO25设置为 HAL_setParams()中的 eCAP 函数,
GPIO_setMode (obj->gpioHandle、GPIO_Number_25、GPIO_19_Mode_ECAP2);
2.在 hal.c 中启用 HAL_setParams()中的 eCAP2clock
clk_enableEcap2Clock (obj->clkHandle);
3.通过在 hal.c 中添加以下函数来设置 eCAP2模块
// ECAP
void HAL_setupeCAP (HAL_Handle handle)
{
HAL_Obj * obj =(HAL_Obj *)句柄;
cap_setModeCap (obj->capHandle);//将模式设置为 CAP
//禁用计数器同步
cap_disableSyncIn (obj->capHandle);
//设置捕捉事件极性
cap_setCapEvtPolarity (obj->capHandle、cap_Event_1、cap_polarity_Rising);
//设置捕捉事件极性
cap_setCapEvtPolarity (obj->capHandle、cap_Event_2、cap_polarity_Falling);
//设置捕获事件计数器复位配置
CAP_setCapEvtReset (obj->capHandle、CAP_Event_1、CAP_Reset_Disable);
//设置捕获事件计数器复位配置(在此处复位计数)
CAP_setCapEvtReset (obj->capHandle、CAP_Event_2、CAP_Reset_Enable);
//连续计时器
cap_setCapContinu模糊(obj->capHandle);
//将停止/环绕模式设置为2个事件
cap_setStopWrap(obj->capHandle, cap_Stop_Wrap_CEVT2);
//启用捕获事件时 CAP1-4的加载
cap_enableCaptureLoad (obj->capHandle);
//启用时间戳计数器运行
cap_enableTimestampCounter (obj->capHandle);
//启用捕捉(CAP)中断源
cap_enableInt (obj->capHandle、cap_Int_Type_CEVT2);
//启用 eCAP 中断
PI_enableInt (obj->压 电致、PI_GroupNumber_4、PI_InterruptSource_ECAP1);
//启用 CPU ECAP 组中断
cpu_enableInt (obj->cpuHandle、cpu_IntNumber_4);
返回;
}// HAL_setupCAP()函数结束
但是 HAL_setupeCAP()函数使用 eCAP1,如果我使用 eCAP2,我不知道如何在 HAL_setupeCAP()中配置 REG。
如果我使用 eCAP2?、例如 在_interrupt void ecapISR 中、需要更改其他参数?
谢谢