请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28379S 团队、
请回答以下问题吗?
一些更多信息将很快发布。
目标是对外部 PWM 信号的脉冲进行计数。 在 X-BAR 输入上、PWM 信号似乎是干净的。
然而、ECAP 似乎无法对所有脉冲进行计数。 该计数仅达到6000、而产生了大约7000 000个脉冲。
原因可能是什么?
提前感谢!
A.
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.
团队、
请回答以下问题吗?
一些更多信息将很快发布。
目标是对外部 PWM 信号的脉冲进行计数。 在 X-BAR 输入上、PWM 信号似乎是干净的。
然而、ECAP 似乎无法对所有脉冲进行计数。 该计数仅达到6000、而产生了大约7000 000个脉冲。
原因可能是什么?
提前感谢!
A.
您好!
此问题的其他信息:
这是一个内部 PWM-Impulse、我检查了 PWM 信号是否正确无误。
这里是源代码的 Init 部分:
INT8_t BSP_CAP_Config_DCAC (void) { /*将 GPIO24配置为 Xbar 输入7 (eCAP 1)*/ GPIO_setPadConfig (GPIO_DCAC_FAN_1_T转 速计引脚、GPIO_PIN_TYPE_STD); GPIO_setPinConfig (GPIO_DCAC_FAN_1_T转 速计_PIN_CONFIG_DEFAULT); GPIO_setionMode (GPIO_DCDIR_IN_FAN_MODE_IN);GPIO_DEV_RET_RATAN_IN GPIO_setQualificationMode (GPIO_DCAC_FAN_1_转 速计引脚、GPIO_QUAL_异 步); XBAR_setInputPin (ECAP_转 速计 FAN_1_XBAR_INPUT、GPIO_DCAC_FAN_1_转 速计引脚); //将 GPIO_set25配置为 Xbar 输入8 (eCAP_FAN ) ;GPIO_DEV_CONFIG (GPIO_DEV_CONFIG);GPIO_DC_IN_CONFIG_IN_CONFIG_IN_CONFIG_IN_CONFIG_IN_GET_PROM_GET_GPIO_PIN_CONFIG_CONFIG_GET_IN_GET_GPIO_PIN_CONFIG_CONFIG_CONFIG_CONFIG_CONFIG_IN_GET_PROM_GET_IN_GET_IN_GET_PROT_GPIO_IN * GPIO_PIN_CONFIG_CONFIG_CONFIG_ GPIO_setQualificationMode (GPIO_DCAC_FAN_2_转 速计引脚、GPIO_QUAL_异 步); XBAR_setInputPin (ECAP_转 速计 FAN_2_XBAR_INPUT、GPIO_DCAC_FAN_2_转 速计引脚); //将 GPIO26配置为 Xbar 输入9 (eCAP_FAN);GPIO_DEV_CONFIG (GPIO_DC_IN_IN_IN_INT_GPIO_DEV_PROM_INT_INT_GPIO_IN) GPIO_setQualificationMode (GPIO_DCAC_FAN_3_转 速计引脚、GPIO_QUAL_异 步); XBAR_setInputPin (ECAP_转 速计 FAN_3_XBAR_INPUT、GPIO_DCAC_FAN_3_转 速计引脚); //将 GPIO_set27配置为 Xbar 输入10 (eCAP_FAN_DEV_CONFIG) ;GPIO_DC4_IN_CONFIG_IN_GET_GPIO_PIN_CONFIG_GET_GPIO_DEV_CONFIG_GET_IN_GET_GPIO_IN * GPIO_INDIRECT_GPIO_PIN_4_CONFIG_CONFIG_GET_CONFIG_IN_GET_GPIO_DEV_CONFIG_GET_IN_IN_GET_GPIO_IN_GET_GPIO_IN (GPIO_IN_4) GPIO_setQualificationMode (GPIO_DCAC_FAN_4_转 速 O_PIN、GPIO_QUAL_异 步); XBAR_setInputPin (ECAP_转 速 o_FAN_4_XBAR_INPUT、GPIO_DCAC_FAN_4_转 速 o_PIN); 返回0; } /********* *@简短初始化 bsp_cap *@ePWM 基址的 param 基址 *@初始化返回结果0 - OK */ int8_t bsp_cap_Init_DCAC (void) { /* ECAP 1 */ /*禁用、清除所有捕获标志和中断*/ ECAP_DisableInterrupt (ECAP_BASE_ADDRESS_TECO_FAN_1、(ECAP_ISR_SOURCE 捕捉事件_1 | ECAP_ISR_SOURCE 捕捉事件_2 | ECAP_ISR_SOURCE 捕捉事件事件3 | ECAP_ISR_SOURCE 捕捉事件4 | ECAP_ISR_SOURCE 计数器周期| ECAP_ARM_COUNTER_PERIOD)| ECAP_COUNTER_PERIOD ECAP_clearInterrupt (ECAP_BASE_ADDRESS_TECO_FAN_1、(ECAP_ISR_SOURCE 捕捉事件_1 | ECAP_ISR_SOURCE 捕捉事件_2 | ECAP_ISR_SOURCE 捕捉事件事件3 | ECAP_ISR_SOURCE 捕捉事件4 | ECAP_ISR_SOURCE 计数器周期| ECAP_SOURCE 计数器周期)| ECAP_COUNTER_COUNTER_COUNTER_COUNTER_RACRACRACRACRACRACK_RACK_RACK_RACK_RACK_RACK_RACK_ /*禁用 CAP1-CAP4寄存器加载*/ ECAP_disableTimeStampCapture (ECAP_BASE_ADDRESS_TAN_1); /*配置 eCAP */ ECAP_STOPCounter (ECAP_BASE_ADDRESS_TDRO_FAN_1); ECAP_enableCaptureMode (ECAP_BASE_ADDRESS_转 速计 FAN_1); ECAP_setCaptureMode (ECAP_BASE_ADDRESS_FAN_1、ECAP_Continuous_CAPTURE_MODE、ECAP_EVENT_1); ECAP_setEventPolarity (ECAP_BASE_ADDRESS_FAN_1、ECAP_EVENT_1、ECAP_EVNT_RISTING _EDGE); ECAP_enableCounterResetOnEvent (ECAP_BASE_ADDRESS_TDRO_FAN_1、ECAP_EVENT_1); eCAP_enableLoadCounter (eAP_BASE_ADDRESS_转 速计 FAN_1); ECAP_startCounter (ECAP_BASE_ADDRESS_转 速计 FAN_1); ECAP_enableTimeStampCapture (ECAP_BASE_ADDRESS_TAN_1); /* ECAP 2 */ /*禁用、清除所有捕获标志和中断*/ ECAP_disableInterrupt (ECAP_BASE_ADDRESS_TCOK_FAN_2、(ECAP_ISR_SOURCE 捕捉事件_1 | ECAP_ISR_SOURCE 捕捉事件_2 | ECAP_ISR_SOURCE 捕捉事件事件3 | ECAP_ISR_SOURCE 捕捉事件4 | ECAP_ISR_SOURCE 计数器周期| ECAP_SOURCE 计数器周期)| ECAP_COUNTER_COUNTER_COUNTER_PERIOD ECAP_clearInterrupt (ECAP_BASE_ADDRESS_TECO_FAN_2、(ECAP_ISR_SOURCE 捕捉事件_1 | ECAP_ISR_SOURCE 捕捉事件_2 | ECAP_ISR_SOURCE 捕捉事件事件3 | ECAP_ISR_SOURCE 捕捉事件4 | ECAP_ISR_SOURCE 计数器周期| ECAP_SOURCE 计数器周期)| ECAP_COUNTER_COUNTER_COUNTER_COUNTER_RACRACRACRACRACRACK_RACK_RACK_RACK_RACK_RACK_RACK_ /*禁用 CAP1-CAP4寄存器加载*/ ECAP_disableTimeStampCapture (ECAP_BASE_ADDRESS_TAN_2); /*配置 eCAP */ ECAP_STOPCounter (ECAP_BASE_ADDRESS_TDRO_FAN_2); ECAP_enableCaptureMode (ECAP_BASE_ADDRESS_TDRO_FAN_2); ECAP_setCaptureMode (ECAP_BASE_ADDRESS_FAN_2、ECAP_Continuous_CAPTURE_MODE、ECAP_EVENT_1); ECAP_setEventPolarity (ECAP_BASE_ADDRESS_FAN_2、ECAP_EVENT_1、ECAP_EVNT_RISTING _EDGE); ECAP_enableCounterResetOnEvent (ECAP_BASE_ADDRESS_T转 速计 FAN_2、ECAP_EVENT_1); eCAP_enableLoadCounter (eAP_BASE_ADDRESS_转 速计 FAN_2); ECAP_startCounter (ECAP_BASE_ADDRESS_TDRO_FAN_2); ECAP_enableTimeStampCapture (ECAP_BASE_ADDRESS_TDRO_FAN_2); /* ECAP 3 */ /*禁用、清除所有捕获标志和中断*/ ECAP_DisableInterrupt (ECAP_BASE_ADDRESS_TCOK_FAN_3、(ECAP_ISR_SOURCE 捕捉事件_1 | ECAP_ISR_SOURCE 捕捉事件_2 | ECAP_ISR_SOURCE 捕捉事件事件3 | ECAP_ISR_SOURCE 捕捉事件4 | ECAP_ISR_SOURCE 计数器周期| ECAP_SOURCE 计数器周期| ECAP_COUNTER_RACRACK_COUNTER_RACRACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RACK_RA ECAP_clearInterrupt (ECAP_base_address_t转 速 o_fAN_3、(ECAP_ISR_SOURCE 捕捉事件_1 | ECAP_ISR_SOURCE 捕捉事件_2 | ECAP_ISR_SOURCE 捕捉事件事件3 | ECAP_ISR_SOURCE 捕捉事件4 | ECAP_ISR_SOURCE 计数器_周期| ECAP_SOURCE 计数器_比较_周期)| ECAP_ARM_COUNTER_COUNTER_PERIOD /*禁用 CAP1-CAP4寄存器加载*/ ECAP_disableTimeStampCapture (ECAP_BASE_ADDRESS_TAN_3); /*配置 eCAP */ ECAP_STOPCounter (ECAP_BASE_ADDRESS_TDRO_FAN_3); ECAP_enableCaptureMode (ECAP_BASE_ADDRESS_转 速计 FAN_3); ECAP_setCaptureMode (ECAP_BASE_ADDRESS_FAN_3、ECAP_Continuous_CAPTURE_MODE、ECAP_EVENT_1); ECAP_setEventPolarity (ECAP_BASE_ADDRESS_FAN_3、ECAP_EVENT_1、ECAP_EVNT_RISTING _EDGE); ECAP_enableCounterResetOnEvent (ECAP_BASE_ADDRESS_T转 速计 FAN_3、ECAP_EVENT_1); eCAP_enableLoadCounter (eAP_BASE_ADDRESS_转 速计 FAN_3); ECAP_startCounter (ECAP_BASE_ADDRESS_转 速计 FAN_3); ECAP_enableTimeStampCapture (ECAP_BASE_ADDRESS_TAN_3); /* ECAP 4 */ /*禁用、清除所有捕获标志和中断*/ ECAP_DisableInterrupt (ECAP_BASE_ADDRESS_TCOK_FAN_4、(ECAP_ISR_SOURCE 捕捉事件_1 | ECAP_ISR_SOURCE 捕捉事件_2 | ECAP_ISR_SOURCE 捕捉事件事件3 | ECAP_ISR_SOURCE 捕捉事件4 | ECAP_ISR_SOURCE 计数器周期| ECAP_ARM_COUNTER_PERIOD_PERIOD)| ECAP_AP_COUNTER_PERIOD | ECAP_PERIOD ECAP_clearInterrupt (ECAP_base_address_t转 速 o_fAN_4、(ECAP_ISR_SOURCE 捕捉事件_1 | ECAP_ISR_SOURCE 捕捉事件_2 | ECAP_ISR_SOURCE 捕捉事件事件3 | ECAP_ISR_SOURCE 捕捉事件4 | ECAP_ISR_SOURCE 计数器_周期| ECAP_SOURCE 计数器_比较_周期)| ECAP_ARM_COUNTER_COUNTER_PERIOD /*禁用 CAP1-CAP4寄存器加载*/ ECAP_disableTimeStampCapture (ECAP_BASE_ADDRESS_TAN_4); /*配置 eCAP */ ECAP_STOPCounter (ECAP_BASE_ADDRESS_转 速计 FAN_4); ECAP_enableCaptureMode (ECAP_BASE_ADDRESS_转 速计 FAN_4); ECAP_setCaptureMode (ECAP_BASE_ADDRESS_FAN_4、ECAP_Continuous_CAPTURE_MODE、ECAP_EVENT_1); ECAP_setEventPolarity (ECAP_BASE_ADDRESS_FAN_4、ECAP_EVENT_1、ECAP_EVNT_RISTING _EDGE); ECAP_enableCounterResetOnEvent (ECAP_BASE_ADDRESS_T转 速计 FAN_4、ECAP_EVENT_1); eCAP_enableLoadCounter (eAP_BASE_ADDRESS_转 速计 FAN_4); ECAP_startCounter (ECAP_BASE_ADDRESS_转 速计 FAN_4); ECAP_enableTimeStampCapture (ECAP_BASE_ADDRESS_TAN_4); 返回0; }
AnBer、
请查看以下链接中的类似 e2e 问题:
https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/930128