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.
您好!
我刚刚在 driverlib 中尝试了您的示例:adc_ex3_temp_sensor,以了解如何配置 ePWM 以正确的频率触发我的 ADC。
如果我理解正确的文档、我需要配置周期 TB:
//周期计数
ePWM_setTimeBasePeriod (EPWM1_base、0x0800);
和计数器:
//
//设置计数器比较值
ePWM_setCounterCompareValue (EPWM1_base、ePWM_COUNTER_COMPARE_A、0xFFFF);
因此、我将每 t =周期* Compar_Value 和事件生成一次。 其中、周期取决于 EPWM 时钟频率、分频器最初设置为2? 现在,无论我将什么内容输入:
ePWM_setTimeBasePeriod (EPWM1_base、ANY_VALUE);
中断总是大约每130.000个系统时钟周期(频率为100MHz)一次。
那么、我对文档的理解有什么滞后。
我已经观看过:(https://training.ti.com/getting-started-c2000-epwm-module)and阅读文档。
您好、Jan、
只有周期才能控制触发频率。 因此、如果 ePWM 时钟为1/2 SYSCLK、SYSCLK 为100MHz、 并且 ePWM 周期为1000个周期、那么触发应该每 t = (1/100MHz)*2*1000个周期= 20us 发生一次 (假定 PWM 处于递增计数 mode...in 递增计数模式、触发 周期 大约为时间的两倍)。 如果周期现在 为2000计数、则触发器应每40us 发生一次。
至于比较、这会设置 ePWM 周期内触发器的相位。 如果周期为1000、比较为500、则触发将 在 ePWM 周期的中间发生。 如果 比较为900、则会在末尾处发生 如果比较大于该周期、则永远不会触发 (因此您将其配置为0xFFFF 似乎并不正确)。
如果 您不想配置比较(在向上计数模式下、这些时间几乎相同)、您还可以在 EPWM 计数周期的开始或结束时触发 EPWM 中零或周期匹配的 ADC。