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.

[参考译文] TMS320F2800137:将 GPIO 引脚设置为输出会下拉 nSLEEP 引脚并关断 DRV8317上的 LDO

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1495757/tms320f2800137-setting-gpio-pin-as-output-pulls-down-nsleep-pin-and-shuts-down-ldo-on-drv8317

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

工具与软件:

您好!

我正在使用 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_OD);

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

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

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

谢谢你。

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

    您好!

    [quote userid="632656" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1495757/tms320f2800137-setting-gpio-pin-as-output-pulls-down-nsleep-pin-and-shuts-down-ldo-on-drv8317问题是:当 nSLEEP GPIO fom F2800137配置为输出时、CPU 释放了调试连接。 [报价]

    哪个 CPU 失去了调试连接? 都讨论的是 f280013x CPU 吗? GPIO 配置与 CPU 状态没有连接、

    您是否可以在不连接 DRV、齐纳二极管或上拉电阻的情况下单独检查 MCU (独立)。 并切换 GPIO

    谢谢

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

    您好!

    也许我不清楚我的描述。 我正在调试 F2800137 CPU、它由 DRV8317 IC 的 LDO 提供。 此驱动器 IC 具有 nSLEEP 引脚、为使 LDO 正常工作、该引脚需要处于1级。 如果 DRV8317进入睡眠模式(通过将 nSLEEP 引脚拉至低电平)、它将关闭 LDO、而 F2800137 CPU 会释放3.3V 电源。 这当然会导致 cJTAG 上的调试连接松动。 由于我在 nSLEEP 引脚上使用齐纳二极管和10k Ω 上拉电阻、因此这足以启动一切。 LDO 自动启动 、F2800137获取电源、引导过程开始。 稍后在 GPIO 初始化例程中、我将 GPIO29 (也连接到 nSLEEP 引脚)设置为输出和 OD 类型。 当调用改变方向的例程时、会某种程度上下拉引脚、这会导致 LDO 关断。 然后在 F2800137上进行 BOR 复位。 RESET 将 GPIO29引脚重新置于默认输入模式、LDO 再次启动。 一切都不停地重复。 我的问题是、什么导致 GPIO 引脚下拉? 在改变方向之前、我将其设为1。

    此致、

    Jernej

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

    我已将此帖子发布到 DRV8317论坛、它们会将我重定向到 C2000论坛。 也许将在其上具有一些电压的引脚设置为输出模式会以某种方式触发下拉引脚?

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

    我尝试从 F2800137控制 nSLEEP 引脚的原因是、该引脚上的短脉冲(小于50us)会复位 DRV8317内的故障条件状态、并且不会将 IC 置于睡眠模式。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价用户 id="632656" url="~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1495757/tms320f2800137-setting-gpio-pin-as-output-pulls-down-nsleep-pin-and-shuts-down-ldo-on-drv8317 "]

    GPIO_setPinConfig (GPIO_29_GPIO29);

    GPIO_writePin (29、1);

    GPIO_setDirectionMode (29、GPIO_DIR_MODE_OUT);

    GPIO_setPadConfig (29、GPIO_PIN_TYPE_OD);

    [报价]

    在开漏输出模式中、如果缓冲器被配置为输出模式、一个0值将从焊盘上输出、而一个1值将被驱动输出 tri 对缓冲器进行状态处理

    为什么要将引脚设置为开漏型、并对其进行三态处理?

    您是否不能按需将引脚设置为推挽输出配置和驱动引脚?

    谢谢

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

    您好!

    我也尝试将该引脚设置为推挽模式、也发生了同样的情况。 每当我调用 GPIO_setDirectionMode 时、它都会下拉引脚。 关于 OD 模式、我需要这样做、因为我只需将齐纳二极管短接一小段时间即可下拉 nSLEEP。 我还阅读了280049的勘误表、其中有关于 OD 模式的类似勘误表条目。 可能会发生类似的情况。

    谢谢