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.

[参考译文] DRV8317:nSLEEP 和 AVDD LDO 电源问题

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

https://e2e.ti.com/support/motor-drivers-group/motor-drivers/f/motor-drivers-forum/1494614/drv8317-nsleep-and-avdd-ldo-supply-problem

器件型号:DRV8317
主题中讨论的其他器件: TMS320F2800137

工具与软件:

您好!

我正在使用 DRV8317驱动器 IC 和 TMS320F2800137微控制器开发 BLDC ESC。 稍后由 DRV8317的 LDO 供电。 我正在使用与 EVM 板中相同的 nSLEEP 电路、其中3.3V 齐纳二极管用于10k Ω 上拉至 VDC。 我不需要在 DRV8317上使用睡眠模式、但需要短脉冲来复位故障(如数据表中所述)。 问题是当 nSLEEP GPIO fom F2800137配置为输出时、CPU 会丢失调试连接。 我认为 GPIO 配置会在某种程度上负责将 DRV8317芯片置于睡眠模式、从而使 LDO 关断。 我可以看到3.3V 电压开始下降、然后 BOR 将复位 CPU。 CPU 返回后、会在初始化例程中再次发生、此时 GPIO 再次被置位、所有操作都会重复进行。 如果我禁用 nSLEEP GPIO 设置、一切都会正常运行。 我将介绍通用电机控制示例、GPIO 设置的代码为:

// GPIO29->M1_nSLEEP、1-有效、0-低功耗睡眠模式

GPIO_setPinConfig (GPIO_29_GPIO29);

GPIO_writePin (29、1);

GPIO_setDirectionMode (29、GPIO_DIR_MODE_OUT);

GPIO_setPadConfig (29、GPIO_PIN_TYPE_STD);

当我单步执行 GPIO_setDirectionMode 时、调试器关闭。 我还尝试将该引脚设置为开漏引脚(因为它应该是这样)、并且是相同的。

当我测量 nSLEEP 引脚上的电压时、尽管我有一个3.3V 齐纳二极管、但它会向我显示大约2.5V 的电压。

我在这里感到困惑、我需要一个解决方案、否则我将无法重置故障条件。

谢谢你。

Jernej

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

    尊敬的 Jernej:

    我想您的3.3V 总线可能负载过大、无法提供它应该能够提供的3.3V。  

    您是否可以对  TMS320F2800137施加外部电源并重试此代码以测试是否发生了这种情况?

    谢谢!

    Joseph

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

    您好!

    我已经尝试从外部为电路板供电以重新刷新 CPU、它已经工作了、但我不认为这是3.3V 的问题。 我在将 nSLEEP 的 GPIO 配置为输入的情况下成功运行了电路板。 电路板在没有外部电源的情况下运行、电机正在旋转(相当快)。 我唯一的问题是将 CPU 侧的 nSLEEP GPIO 配置为输出时、即使我将引脚设置为1和开漏类型、它也会出于某种原因将引脚驱动为低电平。 我可以通过 DRV8317的 nSLEEP 引脚上的示波器看到此结果。 然后 LDO 关断、电路板会释放3.3V 电源轨电压。 对于 nSLEEP 上的2.5V 电压、也许我的 EMS 放置了错误的齐纳二极管、但2.5V 就足够了。

    此致、

    Jernej

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

    尊敬的 Jernej:

    很有趣、感谢您提供的信息。 我很熟悉此微控制器上 GPIO 引脚的复杂性、不能确定每个 GPIO 引脚的不同功能。 我想知道、您是否尝试过 MCU 的不同 GPIO 引脚来控制 nSLEEP? 这应该无关紧要、但也许看看这会有什么变化。  

     也可能有助于在 TMS320F2800137论坛上发布帖子、因为他们比我更有见解。 但为了澄清一点、您将 GPIO29引脚设置为输出、它会将 nsleep 引脚拉低太长时间、器件会进入睡眠状态? 然后、它稍后会变为高电平至2.5V?

    这必须意味着您使用的器件的硬件版本正确吗? 否则、可使用 CLR_FLT 位通过 SPI 清除故障。 只是重复检查一下。

    谢谢!

    Joseph

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

    您好!

    可以、我正在使用器件的硬件版本。 将 GPIO 设置为输出后、LDO 关闭并且 BOR 复位 CPU。 复位后、CPU 再次被启动并且此周期重复。 我没有尝试使用不同的 GPIO、因为它是在我的 PCB 上通过硬接线连接的、非常小(18by20mm)。 很难到达其他引脚、并且几乎所有引脚都已被使用。 我使用32引脚封装。

    此致、

    Jernej

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

    您好!

    如果您将写入引脚29的代码行设置为输出后将其置为高电平、会发生什么情况? 在您发送的代码片段中、它是相反的。 是否不应该在设置输出方向后将引脚驱动为高电平? 还是顺序无关紧要?

    GPIO_setDirectionMode (29、GPIO_DIR_MODE_OUT);

    GPIO_writePin (29、1);

    谢谢!

    Joseph

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

    我想,我做了同样的排列。 没有任何帮助。 当调用 GPIO_setDirectionMode 函数时、调试器裸片。 有趣的是、当我 在更改方向模式之前使用 OpenDrain 设置调用 GPIO_setPadConfig 时、调试器在 GPIO_setPadConfig 函数中裸机。 我已将该消息重新发布到 TMS320F2800137论坛、并且将看到。

    Jernej

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

    它必须是 CPU 内部 GPIO 逻辑中的某个值。 可能是因为引脚在改变方向之前具有2.5V 电压。

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

    尊敬的 Jernej:

    非常感谢您的快速更新。

    我想负责 TMS320F2800137论坛的团队会知道问题出在哪里。

    我遇到过、尽管在不同的 MCU 上、GPIO 引脚没有"平均创建"。 这意味着、虽然标记为 GPIO、但有不同的多路复用器设置可能会影响它们的操作方式。 虽然我的知识在这里是有限的,但我也怀疑在这里发生类似的事情。

    谢谢!

    Joseph

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

    感谢您的帮助。 目前我不需要重置故障条件、因为在器件的硬件版本上、大多数故障都会自动重置。 正如我所说、它正在运行的电路板。 电机启动时、我遇到过流跳闸方面的一些问题。 根据示波器图、电流比预期高一个活动位、CMPSS 会跳变 PWM。 我也禁用了此功能、因为内置过流保护对我来说就足够了。

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

    尊敬的 Jernej:

    电机开始旋转时会出现高浪涌电流、这是正常现象。 只要您的电路能够处理浪涌电流而不会损坏、并且不会停止运行、就应该没问题。

    谢谢!

    Joseph