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.

[参考译文] TMS320F280049C:使用 ePWM 配置 ADC

Guru**** 2193080 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/965628/tms320f280049c-configuring-adc-with-epwm

器件型号:TMS320F280049C

您好!

我刚刚在 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。