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.

[参考译文] CCS/MSP432E401Y:如何在从输入更改为输出后避免 GPIO 尖峰?

Guru**** 2577385 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/836547/ccs-msp432e401y-how-to-avoid-gpio-spikes-after-changing-from-input-to-output

器件型号:MSP432E401Y

工具/软件:Code Composer Studio

您好!

我需要将 GPIO 引脚从输入更改为输出、并将其拉至低电平。 在模式变化期间、通常会出现短时毛刺脉冲。 这意味着在引脚变为低电平之前、引脚首先变为高电平几毫微秒。 我可以避免这种行为吗?

我将 CCS 与 "ti/devices/msp432e4/driverlib/driverlib.h"搭配使用

我的代码是:

GPIOPinTypeGPIOInput (GPIO_PORTM_BASE、GPIO_PIN_7);

(笑声)

(笑声)

(笑声)

//将引脚拉低以触发下一个位

GPIOPinWrite (GPIO_PORTM_BASE、GPIO_PIN_7、0x00);

GPIOPinTypeGPIOOutput (GPIO_PORTM_BASE、GPIO_PIN_7);
SysCtlDelay (48);

谢谢、致以诚挚的问候

Tiemo

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

    Tiemo、

    打开 MSP_EXP432P401R.C. 有一个名为 gpioPinConfigs[]的引脚配置数组、您可以在其中初始化 GPIO。 在这里、您可以使用 GPIO.h 中定义的 GPIO_CFG_OUT_OD_PD 来利用引脚的内部下拉电阻器来避免此问题。

    BR、

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

    你好、Song、

    感谢您的回复。 我已经将 GPIO 从外部连接到2k 下拉 电阻器和2k 上拉电阻器、因为当 GPIO 被配置为 输入时、我需要 VDD/2。

    内部下拉会更改我的电阻比、但我可能可以尝试动态启用和禁用内部下拉。 让我们看一下。


    谢谢、致以诚挚的问候

    Tiemo

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

     当 GPIO 引脚进入输出模式时、下拉电阻器被自动禁用。
     它在范围上清晰可见。

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

    您好、Tiemo、

    在启用输出路径之前、有一个权变措施可用于设置方向位。 请参阅此帖子 :https://e2e.ti.com/support/microcontrollers/msp430/f/166/t/733174?tisearch=e2e-quicksearch&keymatch=GPIO%20spikes

    此致、

    托比亚斯

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

    您好 Tobias、

    感谢您的回复。 我认为我的问题有点不同(如果我以正确的方式理解 GPIO_initWorkaround.c)。 =)  
    情况如下:


    GPIO 管脚配置为输入。 该引脚上施加的电压为~1.65V。
     我检查了该引脚的寄存器"GPIO_DATA"。 该引脚的相应位通常为高电平。
    当该位为高电平时、我将 GPIO DIR 更改为输出"GPIO_DATA"中的寄存器值保持高电平、引脚变为3.3V。 (我不这么做)
    200ns 后、"GPIO_DATA"获得正确的值、引脚将被拉至低电平。


    如何防止 GPIO 状态读写"GPIO_DATA"寄存器? 或者如何在 GPIO 状态变化期间强制"GPIO_DATA"为低电平?
    我不一定需要读取选项。 我只需要该引脚上的高 z 模式。  

    此致
    Tiemo

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

    您好、Tiemo、

    如果不需要输入值、可以通过清零 GPIODEN 位使引脚保持非驱动(三态)状态。 这将禁用您不需要的 GPIO 功能和输入功能。 在设置 GPIODEN 位并启用输出驱动程序之前、请注意将其配置为输出和 低电平。 一般情况下、这种方法在引脚上不会出现高尖峰的情况下工作。

    此致、

    托比亚斯