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.

[参考译文] DRV10987:速度反馈

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/689070/drv10987-speed-feedback

器件型号:DRV10987

您好!  

我在此附上了函数:

int get_spd_Feedback ()

unsigned int Temp;
temp = DRV10987Q_read (DRV10987Q_MotorPeriod_Reg);
如果(温度=0)温度=40000;
温度= 10922667/(长)温度;//2^14*1000*1000/M_CloseMax_SPD
返回温度;

1.我不明白  为什么温度= 0时温度会达到40000 ?

2.我看到你得到这个数字 10922667、而 M_CloseMax_SPD=1500

为什么 乘以2^14*1000*1000每个数字的含义是什么?

2^14代表什么?

谢谢、liraz

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

    用于测量周期的计时器分辨率为1微秒(即1000*1000的起始位置)。

    保存计数的寄存器为14位(这是2^14的来源)。

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

    您说 保存计数的寄存器为14位。 它是哪个寄存器? drv 的寄存器? 或 MCU?

    我没有找到该寄存器。  

    如果计数器为14位,为什么要乘以2^14? 这不是计数器的残值大小。

    2.在 main 中、我需要实现我所附数据表中的流程? 原因您实施不同的流程(另附)

    谢谢、

    利拉兹

    谢谢、

    利拉兹

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

    代码显示它正在从 DRV10987读取 Motor_Period_Reg 并将其放置在寄存器 Temp 中。

    查看注释2^14 (14位)* 1000 * 1000 / 1500 = 10 922 667。 它是用作计数器可计数的最长时间的常数。 然后、它将该值除以测量的计数、得到一个介于1和1500之间的数字。

    您从数据表中捕获的流程图是器件启动电机时所执行的过程。 您不必执行任何此类控制、器件便可为您执行此类控制。

    您只需为要运行的速度提供输入 PWM (或 I2C)命令即可。 如果使用上述代码从 PI 环路生成该命令以获取测量周期、则软件将尝试保持恒定速度。

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