您好!
目前我正在尝试通过具有主机 MCU 的 I2C 来控制 MCF 电机驱动器控制器。 我浏览了 MCF 的数据表、他们说、可以通过将值写入 algo_CTRL1的 DIGITAL_SPEED_CTRL 位来控制电机转速。 如果我对通过 DIGITAL_SPEED_CTRL 位控制速度的理解不正确、您能否建议我控制速度的正确方法。
问题。 如何计算 DIGITAL_SPEED_CTRL 位的值
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.
您好!
目前我正在尝试通过具有主机 MCU 的 I2C 来控制 MCF 电机驱动器控制器。 我浏览了 MCF 的数据表、他们说、可以通过将值写入 algo_CTRL1的 DIGITAL_SPEED_CTRL 位来控制电机转速。 如果我对通过 DIGITAL_SPEED_CTRL 位控制速度的理解不正确、您能否建议我控制速度的正确方法。
问题。 如何计算 DIGITAL_SPEED_CTRL 位的值
您好!
谢谢。
我们可以使用 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 设置为零需要时间。 让我来调查一下、并在下周开始时回到您的身边。
此致!
罗伯特
尊敬的 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·