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.

[参考译文] MCF8316AEVM:如何通过 I2C 通信控制电机的速度

Guru**** 2477885 points


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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1235577/mcf8316aevm-how-to-control-the-speed-of-motor-through-the-i2c-communication

器件型号:MCF8316AEVM

您好!

目前我正在尝试通过具有主机 MCU 的 I2C 来控制 MCF 电机驱动器控制器。 我浏览了 MCF 的数据表、他们说、可以通过将值写入  algo_CTRL1的 DIGITAL_SPEED_CTRL 位来控制电机转速。 如果我对通过  DIGITAL_SPEED_CTRL 位控制速度的理解不正确、您能否建议我控制速度的正确方法。

问题。 如何计算 DIGITAL_SPEED_CTRL  位的值

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

    您好!

    任何人都可以在这里帮助。

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

    尊敬的 Ketan:

    感谢您在电机驱动 E2E 论坛上提出问题。  

    我的目标是在本周结束前提供一个有关这一点的答案!

    此致!

    罗伯特

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

    尊敬的 Ketan:  

    请查看 以下数据表的第7.3.8.3节"基于 I2C 的速度控制":

    另请在此处查看寄存器字段说明:

    此致!

    罗伯特

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

    尊敬的 Robert:

    这就是关于计算  DIGITAL_SPEED_CTRL 位值的问题。

    如何计算 DIGITAL_SPEED_CTRL 位的值。  

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

    尊敬的 Ketan:

    由于 DIGITAL_SPEED_CTRL 中有15位、因此2^15 = 32768 = 100%占空比。

    此致!

    罗伯特

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

    您好!

    谢谢。

    我们可以使用 I2C 寄存器控制电机转速。 我觉得、虽然写入 digital_speed_CTRL 值很好、 但一旦我将值写入 digital_speed_CTRL、器件就会立即运行 电机、但当我们将零值写入 digital_speed_CTRL 以停止电机时、需要花费很多时间。 即使  DIGITAL_SPEED_CTRL 更新为零值后不会停止电机、也是如此。 I2C 正常运行、能够进行读取和写入。  

    我们应该在影子寄存器更新之后应用访问密钥。 ? 或者 MCF 将自动读取影子并执行操作。  

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

    尊敬的 Ketan:

    如果将速度命令设置为零不能足够快地降低电机速度、我建议您查看一个制动引脚特性(第7.3.16 - 7.3.19.6节)。 您还可以在此处了解有关制动方法的更多信息: https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1212192/faq-sensorless-bldc-trap-and-field-oriented-control-foc-motor-stop-options

    不过、您似乎认为由于 I2C 读取和写入操作、将 DIGITAL_SPEED_CTRL 设置为零需要时间。 让我来调查一下、并在下周开始时回到您的身边。

    此致!

    罗伯特

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

    您好

    感谢你的评分

    我将研究这篇文章、并尝试理解流程。 如果在 I2C 端有任何更新、请告诉我。

    您能否确认在将零写入  DIGITAL_SPEED_CTRL 位时、寄存器的第31位应为多少。  

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

    尊敬的 Ketan:

    ALGO_CTRL1寄存器的第31个寄存器是用于控制 SPD_CTRL 位的覆盖位。 您是否想知道在将零写入 digital_speed_CTRL 时专门做什么?

    请参考下面的寄存器字段说明:

    此致!

    罗伯特

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

    大家好。

    是的、我想知道我是否应该将其设置为零、因为在向  digital_speed_CTRL 位写入非零值时、我在第31位写入1。 根据数据表、待机模式的速度_ CMD= 0。

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

    尊敬的 Ketan:

    您可以将位31设置为1、即使应用 SPEED_CMD = 0、它也会像您在 tensb 后提到的那样进入待机模式:

    此致!

    罗伯特

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

    大家好。

    好的、明白了。

    然后、确认将零升至  DIGITAL_SPEED_CTRL 位后需要较长时间。

    仍然、我们没有对待机模式应用中断引脚、因此仅尝试使用 DIGITAL_SPEED_CTRL。 请告诉我是否还有其他方法可以进入待机状态。

    它是远程控制风扇所以这是强制进入待机更多后按下远程侧的关闭按钮,它是没有意义的,如果关闭花太多的时间来关闭风扇。

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

    尊敬的 Ketan:

    在电机运行期间是否执行自动读取故障状态、自动读取电机状态和自动读取所有寄存器? 这可能会导致 I2C 过载:

    在模拟模式下使用 SPEED 引脚时、是否仍然出现此问题?  在电机操作期间您是否在读取多个 I2C 寄存器?

    此致!

    罗伯特

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

    您好!

    否、我不使用 I2C 执行任何操作。 我只是初始化影子寄存器的值、并在乞求程序时应用 Access 密钥。 这也只是我们进入一阵子时的样子。 只有在遥控器上的 OFF 按钮被按下时、我才在写入速度寄存器、直到此时 I2C 上没有操作。  

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

    尊敬的 Ketan:

    感谢您提供的信息。 我将在下周同一时间再见。

    此致!

    罗伯特

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

    尊敬的 Ketan:

    我仍在进行这项调试工作、请允许我们进行、直至下周结束。

    此致!

    罗伯特

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

    尊敬的 Ketan:

    如果在电机旋转期间提供0%速度命令、器件将 利用 MTR_STOP 配置的电机停止选项来停止电机。 这与制动引脚 驱动为高电平时应用的电机制动不同、可以通过 BRAKE_PIN_MODE 配置为低侧制动或对齐制动。

    您能否检查您的 MTR_STOP 选项设置为什么?

    (请注意、 MCF8316A 中有一个勘误表#7 、其中再循环模式无法正常工作。)

    如果您需要更快的电机停止(在电机旋转时将速度命令设置为0)、我建议选择 低侧或高侧槽 形 g 作为电机停止选项。

    接下来、首先将 BRAKE_SPEED_THRESHOLD 设置为50%。  如果停止时间过长、建议增大阈值。 但是、将速度阈值设置为较高的速度将导致 FET 承载大电流。 因此、如果 FET 中识别出任何热点、建议降低阈值。

     MTR_STOP_BRK_TIME 还可配置为控制应用低侧或高侧制动的时间。

     有关更多详细信息、请参阅数据表中的第7.3.19节"电机停止选项"。 同样、 由于存在勘误、请忽略再循环模式部分。

    此致、
    埃里克·C·

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

    您好

    感谢您提供有关电机操作的详细说明。 我来再次调查配置。如您所说、我将在    配置中检查 MTR_STOP 和 BRAKE_SPEED_THRESHOLD 选项。 我将在一周结束时向您介绍最新情况。 我们忙于内部测试和培训。

    感谢 Eric C

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

    尊敬的 Ketan:

    我们将保持该主题处于打开状态、直到您能够确认调查。

    此致!

    罗伯特

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

    尊敬的 Ketan:

    如果没有其他问题、您可以帮助将此主题标记为已解决吗?

    我现在将关闭该主题、但如果您对此主题还有其他问题、可以随时再次打开该主题。

     

    此致!

    罗伯特

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

    您好!

    目前我们已移至另一个项目。 您现在可以关闭该主题。 如果需要任何问题、我会重新打开。  

    谢谢你。

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

    尊敬的 Ketan:

    感谢您的更新。

    此致!

    罗伯特