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.

[参考译文] DRV8243-Q1:仅寄存器控制是否可行?

Guru**** 2484615 points


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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1167174/drv8243-q1-whether-register-only-control-is-feasible

器件型号:DRV8243-Q1

尊敬的团队:

我的客户希望使用 寄存器控制方法来驱动 BDC。 根据下面的描述、我认为这是可行的、只使用寄存器的控制方法可以实现与只使用引脚的控制方法完全相同的功能、对吧? 如果他们使用这种方法、他们可以悬空 IN1、IN2和 DRVOFF 引脚、对吧? 这里是否存在任何风险?

此外、如果不使用、如何连接 nFault 引脚?

谢谢、此致、

雪利

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

    您好、Sherry、

    感谢您的提问。 如果没有 PWM 操作、则可以正常工作。

    如果 PWM 运行和 PWM 频率更快(例如20kHz)、则 SPI 通信延迟会降低 PWM 频率和占空比的精度。

    此致

    Shinya Morita

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

    您好、Shinya、

    感谢您的回复!

    目前他们计划使用10kHz PWM 频率、对吧?

    此外、您不会回答一些问题。 如果客户仅使用寄存器控制、如何连接 IN1、IN2和 DRVOFF? 浮点?

    谢谢、此致、

    雪利

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

    您好、Sherry、

    我认为10kHz 并不慢、但这是客户的决定。 10kHz PWM 应在100us 内具有两次切换。 每个 SPI 注释的时钟频率为10MHz 时、周期为~2us。 MCU mush 在100us 内继续发送至少两条命令。

    这些引脚可以悬空。 请参阅数据表9.2

    此致

    Shinya Morita

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

    您好、Shinya、

    感谢您的回复! 但我不理解下面的描述。 请帮您澄清问题吗? 根据我的理解、如果 PWM 频率为20kHz、则 MCU 必须在50us 内持续发送至少两条更严格的命令。  

    [引用 userid="36147" URL"~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1167174/drv8243-q1-whether-register-only-control-is-feasible/4393424 #4393424"]10kHz PWM 应在100us 内进行两次切换。 每个 SPI 注释的时钟频率为10MHz 时、周期为~2us。 MCU mush 在100us 内继续发送至少两条命令。

    为什么该延迟会影响 PWM 频率和占空比? 例如 、10kHz PWM 应在100us 内具有两次切换、占空比为50%。 每次切换都需要增加2us SPI 命令时间、因此 PWM 的高电平时间 将为48us+2us、PWM 的低电平时间为48us、因此 PWM 频率和占空比会发生变化、对吧? 如果是、频率越高、精度越低。 因为如果 PWM 频率为20kHz、 那么高电平时间为23us+2us、低电平时间为23us。

    [引用 userid="36147" URL"~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1167174/drv8243-q1-whether-register-only-control-is-feasible/4392015 #4392015"] SPI 通信延迟降低了 PWM 频率和占空比的精度。

    谢谢、此致、

    雪利

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

    您好、Shinya、

    今天可以给我回复吗? 谢谢!

    谢谢、此致、

    雪利

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

    雪利、

    Morita-San 外出旅行。   

    您的理解是正确的、我认为您理解 SPI 写入时间的延迟。  这些延迟并不总是固定的、可能会导致 PWM 边沿上出现一些抖动。  如果客户可以接受这种方法、则该方法无法正常工作。  此外、客户需要了解、在最小和最大 PWM 占空比方面精度会降低。  如果每个命令2us、低脉冲<2us 将无法实现。   

    此致、

    Ryan

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

    您好、Sherry、

    [引用 userid="367370" URL"~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1167174/drv8243-q1-whether-register-only-control-is-feasible "]

    我的客户希望使用 寄存器控制方法来驱动 BDC。 根据下面的描述、我认为这是可行的、只使用寄存器的控制方法可以实现与只使用引脚的控制方法完全相同的功能、对吧? 如果他们使用这种方法、他们可以悬空 IN1、IN2和 DRVOFF 引脚、对吧? 这里是否存在任何风险?

    此外、如果不使用、如何连接 nFault 引脚?

    [/报价]

    我认为这取决于电机控制的应用--简单的像运转一个风扇或者高性能的像10位 PWM 伺服控制。

    我只会将 SPI_Pin 控制 用于 S_EN_IN1、S_PH_IN2仅用于简单的电机应用、因为它要求主机处理器在每个 PWM 周期向 SPI_IN 寄存器写入两次。 想象一下、对于典型的伺服闭环控制、我将使用10位 PWM 和20Khz PWM、那么每个主机都需要每50us 向 SPI_IN 写入2次。 这听起来不是很糟糕、但考虑以下最坏的情况: PID 控制环路需要输出1的 PWM 值(对于10位 PWM、100%为0x3FF)、因此主机首先在时间 T1将该位写入1、然后它需要在 T2将该位切换为零、即在 T1之后97ns。 主机需要每97ns 运行一次计时器计数器中断以触发 SPI 写入。 是否要执行此操作?

    我不知道 TI 工程师为什么没有为 SPI 版本添加 PWM 寄存器、无论是10位还是8位寄存器、那么驱动器芯片只有一个内部 PWM 发生器、通过 SPI 获取8位或10位输入。 这有助于从写入 SPI_BIT 中卸载主机。

    是的、IN1、IN2和 DRVOFF 可以悬空、因为它们具有内部上拉或下拉电阻。

    由于 nFault 是输出、因此如果要使用 SPI 读取 nFault 状态、则无需执行任何操作。

    Brian

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

    您好、Ryan、

    如果我的理解是正确的、那么下面 的描述是错误的。 频率越高、精度越低、那么10kHz 比20kHz 更精确。、它是正确的吗?

    [引用 userid="36147" URL"~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1167174/drv8243-q1-whether-register-only-control-is-feasible/4392015 #4392015"]如果 PWM 操作和 PWM 频率更快(例如20kHz)、则 SPI 通信延迟会降低 PWM 频率和占空比的精度。

    谢谢、此致、

    雪利

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

    雪利、

    你是对的。

    如果频率较低、如10kHz、则 SPI 通信延迟对最小/最大占空比的影响较小、因为10kHz 与20kHz 之间的周期较长。  因此、如果客户希望以这种方式运行、则优先选择较低的频率。  

    Brian 的所有观点也是有效的。  SPI 控制实际上用于对桥接器进行简单的开/关控制。   

    此致、

    Ryan

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

    您好、Sherry、

    [引用 userid="367370" URL"~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1167174/drv8243-q1-whether-register-only-control-is-feasible/4410817 #4410817">如果我的理解是正确的,那么下面 的描述是错误的。 频率越高、精度越低、那么10kHz 的精度比20kHz 更准确。、它是否正确?[/引述]

    请记住、10kHz 处于人类可听声音范围内、对于某些电机、它可能会导致可闻噪声。  

    Brian  

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

    您好 Brian、

    我对以下澄清并不十分清楚。 97ns 是如何产生的? 它是否包含在2us SPI 命令重放中?

    [引用 userid="106056" URL"~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1167174/drv8243-q1-whether-register-only-control-is-feasible/4410480 #4410480">但考虑以下最坏情况: PID 控制环路需要输出1的 PWM 值(对于10位 PWM、100%为0x3FF)、因此主机首先在时间 T1将该位写入1、然后它需要在 T2将该位切换为零、即在 T1之后97ns。 主机需要每97ns 运行一次计时器计数器中断以触发 SPI 写入。 是否要执行此操作?

    谢谢、此致、

    雪利

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

    您好、Sherry、

    [引用 userid="367370" URL"~/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1167174/drv8243-q1-whether-register-only-control-is-feasible/4412488 #4412488)]我对以下澄清不是很清楚。 97ns 是如何产生的? 它是否包含在2us SPI 命令重放中?

    它来自一个示例的计算、如果我要使用一个10位 PWM (与8位或更少的 PWM 相比、可获得更好的分辨率和更少的系统增益)来实现具有 PID 数字滤波器的伺服位置闭环控制、 对于20Khz PWM、因为在使用较低的 PWM 频率时、我不希望有可闻噪声(人可以听到高达20Khz 的噪声)。 因此、在20kHz PWM 和10位分辨率下、每个 PWM 步长为:

    (1/20kHz)/1024 = 49ns、而不是我之前写的97ns。 因此、MCP 在 t0时写入 SPI 以将 PWM 位设置为1、然后在49ns 后、MCP 必须在 t1时将 SPI 位切换为零、然后在 t0后50us、MCU 再次将 SPI 位切换为高电平以启动新的 PWM 周期。 对于50%占空比值、MCU 在 t0写入以将 SPI 位设置为高电平、然后在 t1 MCU 延迟25us 时将该位切换为低电平。 这需要大量的 MCP 处理能力、只需使用 SPI 接口创建正确的 PWM 信号即可。 因此、最好由 MCU 输出 PWM 信号来直接驱动 INx 引脚、因为大多数 MCU 可以通过写入 PWM 值寄存器轻松生成10位 PWM。

    Brian