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.

[参考译文] TIDA-010948:有关实施的问题

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

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/1502123/tida-010948-questions-about-implementation

器件型号:TIDA-010948

工具/软件:

您好、  

1)是否在 AM243的 C 代码中硬编码了位置命令、或者是否有通过主机发送命令的方法?  

2)使用 LUT -你能详细说明为什么? 我以前使用 FIR 滤波器时会用到它们、但在本例中您使用的是同步滤波器

谢谢

Geoffrey  

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

    您好 Geoffrey、

         请查找我的答案:

    1)  位置数据通过以太网协议 SORTEG 传输、时序在 PRU FW 中预配置。 所以、有点硬编码。 SORTE_G 主器件将在预定义的时隙向 SORTE_G 器件发送请求、然后在每个 PWM 周期内接收到6轴位置数据。 例如16kHz

    2) LUT 用于存储时间的倒数、因为 PRU 没有除法命令。 您指的是同步滤波器?

    此致、

    Chen

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

    尊敬的 Geoffrey:

    请在下面找到我的答案。

    2)编码器软件利用三个查找表(LUT)。

    第一个 LUT 包含方向信息、按顺时针方向指示为0、按逆时针方向指示为1、"F"表示无效状态。 通过组合 A 和 B 信号的先前和当前状态来形成索引值来确定方向、然后使用该索引值从 LUT 检索相应的方向。

    第二个 LUT 存储时间转换的计算值:(1/T)*(2^32)、其中 T 表示以纳秒为单位的时间范围。 这基本上是用32位小数以 Q 格式反转时间、并在计算电机转速时非常有用。

    使用以下公式计算电机转速:((62.5µs 窗口内 A 和 B 边沿的数量/ 4000)*(1/x)* 60)。 变量"x"表示第一个边沿和最后一个边沿之间的时间、该时间根据电机转速而变化。 由于没有直接的 asm 指令来计算反向、因此将 LUT 用于此目的。 在此公式中、4000表示编码器中的总边沿数、其中预先计算的常量值(1/4000)直接在代码中使用。 可访问来自 LUT 的两个值并进行内插、以便在必要时估算中间计算。

    要确定240RPM 以上的速度、请使用上述方法。 相反、对于较低的 RPM、会在使用第三个 LUT 和预先计算的 RPM 值的代码的不同部分之间进行切换。 同样、可访问来自 LUT 的两个值并进行内插、以便在必要时估算中间计算。