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.

[参考译文] TMS320F280049:FCL:具有 ADC SOC 的 eQEP 单元计时器同步

Guru**** 2531950 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/956437/tms320f280049-fcl-eqep-unit-timer-synchronization-w-adc-soc

器件型号:TMS320F280049

您好!

我正在尝试使用 dual_axis 伺服驱动器 FCL_QEP_f28004x 项目来了解 FCL 库流(MotorControl SDK v3.00.01.00)。  具体而言、eQEP、CLA、PWM 和 ADC 外设之间的时序。  CLA 1任务中有一条注释、我似乎无法验证。

//
// QEP UTO 和 ADCSOC 已预先对齐
// QEP POSLAT = QEP POSCNT 在与 ADCSOC 同步的 QEP UTO 事件上
//因此、从 QEP POSLAT 读取机械角
// 

基于我的训练,我同意反对派活动的频率与 ADCSOC 相同。  但我无法找到 UTO 同步的位置、只能以相同的频率运行。  最佳情况是、在 CLA 任务尝试使用它之前、UTO 会锁存位置。

但我似乎无法找到"小心的预对齐"发生在哪里。  有人能向正确的方向指出我吗?

谢谢、

-科林   

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

    QEP 和 PWM 时钟在初始化期间被禁用、并且在这两个外设寄存器被适当设置后、时钟被启用。 这最多会将两个外设同步到一个周期延迟。

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

    谢谢 Ramesh、

    我只是做了一些潜水尝试去看看发生的情况。  仅为了澄清一点、我将使用  MotorControl SDK v3.00.01.00存储库中的 dual_axis 伺服驱动器 FCL_QEP_f28004x。

    我看到所有系统时钟都是由 Device_Init()启用的。 然后在 HAL_setupMotorPWM 中为每个电机禁用 PWM 时基时钟。  我看到、直到 HAL_setMotorParams 针对每个电机完成后、它才会重新启用。 dual_axis 伺服驱动器.c 的第250行

    //设置电机1的驱动器参数
    HAL_setMotorParams (halMtrHandle[MTR_1]);
    
    //设置电机2的驱动器参数
    HAL_setMotorParams (halMtrHandle[MTR_2]);
    
    // PWM 时钟使能
    SYSCTL_enablePeripheral (SYSCTL_Periph_CLK_TBCLKSYNC); 

    但是、我不明白 QEP 时钟在何处连接到同一个时钟。  或电机2 eQEP UTO 相移发生的位置。  看起来好像 eQEP 1 UTO 被启动、然后一段时间后 eQEP 2 UTO 被启动、然后一段时间后 TBCLKSYNC 被启动、两个 PWM 集之间有一个定义的偏移量。  但 eQEP UTO 和电机时基之间的时间间隔是随机的。

    我缺少什么? 谢谢!

    -科林

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

    它跳过了我的注意力、会将其传递给我的同事以对此作出响应、因为它是从早期项目中移植过来的。

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

    在 xxxx_hal.c 中配置 QEP 之前、您可以在 HAL_setupMotorPWM ()中找到调用了 SYSCTL_DisablePeripheral (SYSCTL_Periph_CLK_TBCLKSYNC)  

    PWM 时钟同步对于电机控制至关重要、其他外设(QEP、ADC)始终与 CPU 系统时钟同步。  

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

    谢谢、

    我是否正确地解释 eQEP UTO 捕获时间不会与双电机示例中的 ADC 同步、而是以相同的频率(10kHz)运行?  如果可以的话就好了。  我看到了对齐它的方法、但我只是想验证是否已经实现了另一种我缺少的机制。

    谢谢、

    -科林

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

    在移植过程中、这方面可能已经受到影响、但由于这种情况而导致的误差不够明显、无法导致正常运行速度范围内的性能下降。 因为以微秒为单位的角度误差将足够小。 在极高的速度和带宽下、这一点非常重要、您需要正确同步它们。

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

    谢谢!