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.

TMS320F280025C: eQEP配置上的一些疑惑

Part Number: TMS320F280025C
Other Parts Discussed in Thread: C2000WARE

各位大佬好,本人第一次使用TI的芯片去配置QEP,所以对QEP有许多疑惑.我打开了C2000ware_3_04版本QEP例子中的eqep_ex2_pos_speed这个例子,该例子对QEP的配置和转速计算.其中对线数(MECH_SCALER)和速度计数值(SPEED_SCALER)的配置有疑惑.

我在查阅了论坛后,对线数的计算貌似有点理解.我采用一个1024线的旋变,经过正交4倍后一圈就有4096个脉冲信号,对比例子中的4000信号(1/(1000*4))*2^26 = 16776,那么我应该是得到(1/(1024*4) * 2 ^ 26 = 16384,不知道这样子计算是不是对的.

对于第二个疑问点,例子中提供了速度的计算公式5来计算得到SPEED_SCALER 例子中用到的最大转速是6000转,但是我用到的电机转速要用到很大转速,所以就要对QEP最大转速提高到20000,那么SPEED_SCALER = ((((uint64_t)32 * DEVICE_SYSCLK_FREQ / 64) * 60) / (24000000))这个公式是不是就要做出相应的改变.这里面几个数字 : 32 \ 64 \ 60 \ 24000000都是什么意思,我在看到公式5的注解后,例子对6000的转速直接给出来32 / 4000这个数值.另外,例子中对capture分频数64对event分频数32,那么上述公式中的32与64 是否与这两个分频数有关联?在公式中还涉及到QEP的周期值,对于公式用到的6000转,其周期设置为10ms,即最大10ms转一圈,转换成rpm就是6000,如果我要用到20000转,那么周期势必要修改成3ms,例子中提供函数EQEP_enableUnitTimer(EQEP1_BASE, (DEVICE_SYSCLK_FREQ / 100));和EQEP_loadUnitTimer(EQEP1_BASE, (DEVICE_SYSCLK_FREQ / 100));其第一个公式的注释是设置为100Hz,即为10ms的周期.那么我设置为3ms,频率就是333Hz,是不是将100改成333就能实现我对周期的设置?