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.

[参考译文] AM2434:所有 GPIO 的去抖功能?

Guru**** 2393725 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1435210/am2434-debounce-function-for-all-gpio

器件型号:AM2434

工具与软件:

尊敬的专家:  

 我研究了 AM24x TRM、以了解如何对 GPIO 使用去抖功能。 以下说明指出去抖功能 并非与所有信号相关联、因此有必要查看数据表。
   

 然后、我查看 AM24x 数据表、发现一些 GPIO 信号描述 带有 注释(1)、表明这些 GPIO 具有去抖功能、如以下示例所示。
   

 但是、我检查了 TRM、所有 GPIO 都有自己的 PadConfig 设置(位13–11)、可单独配置去抖功能。

  PadConfig 示例:gpio1_54.

    1.数据表:它没有提到注释(1)
       

    2. GPIO1_54与 PadConfig 142匹配
       
    3. PadConfig 142可以设置去抖  
      
        

 因此、我想知道是否所有 GPIO 都可以使用去抖功能、或者仅数据表中标记了注(1)的 GPIO 信号具有此功能。
   

此致

螺栓

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

    HI 螺栓、

    感谢您的提问。

    [报价用户 id="549268" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1435210/am2434-debounce-function-for-all-gpio ]因此、我想知道是否所有 GPIO 都可以使用去抖功能、或者只有数据表中标记有注释(1)的 GPIO 信号才具有此功能。

    正如 TRM 中提到的、并非所有 GPIO 信号都具有关联的去抖功能。 因此、只有数据表中标记了注释(1)的信号才具有去抖功能。 对于 MCU_GPIO、信号将标记注释(2)。  

    请参阅下图。

    此致、  

    Tushar

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

    尊敬的 Tushar:

      感谢您的答复。

      我将 GPIO (例如 GPIO1_54)用于中断输入、但该 GPIO 没有去抖功能。

      当 GPIO 输入信号具有毛刺脉冲和噪声时、它会影响中断信号、导致在错误的时间触发。

      AM243x 是否具有任何其他功能来处理 GPIO 干扰或滤除噪声?

    此致

    螺栓

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

    HI 螺栓、

    您能更详细地解释一下该用例吗?

    它影响中断信号、导致其在错误的时间触发。

    计时不正确、这是否意味着它是周期性中断? 是否存在对 GPIO (高电平/低电平)的定期写入?

    中断的周期是多少? 当发生不正确的中断时、什么是时间差值?

    此致、

    Tushar

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

    尊敬的 Tushar:

      感谢您的答复。

      例如、我们的应用将使用 FPGA 生成两个恒定周期信号、一个在62.5 µs、另一个在1ms。 两个周期性信号都将使用两个 GPIO 引脚发送到 AM24x。 当发生触发信号时、FPGA 会仅对3 µs 将信号设置为高电平、然后将信号复位为低电平。

      该信号允许 AM24x 触发硬件中断来执行周期性操作。 但是、当我们的环境有噪声时(例如、在 ESD 测试期间)、我观察到 AM24x 会触发5 µs 内的硬件中断。 这意味着、当 GPIO 遇到噪声时、AM24x 会错误地触发硬件中断。

      因此、我想知道 AM243x 中是否有任何方法可以为所有没有去抖功能的 GPIO 提供抗尖峰脉冲信号。

    此致

    螺栓

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

    HI 螺栓、

    感谢您分享上述详细信息。

    我观察到 AM24x 会触发5 µs 内的硬件中断。

    您能说明一下您如何测量上述时间差吗?

    这种理解是否正确、中断应在3us 窗口内触发、但在5us 窗口内触发?

    此致、

    Tushar

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

    尊敬的 Tushar:

     我使用 CycleCounterP_getCount32()记录每个中断触发的时间。

     我记录的时间不是外部硬件中断信号到达与触发软件之间的延迟、而是每次软件触发之间的时间间隔。

     在正常的周期性触发下、记录的最小中断触发间隔约为62.5 µs。

     当发生噪声干扰时、记录的最小中断触发间隔为5 µs。

     我希望这些信息可帮助您提供一种处理 GPIO 干扰和噪声的方法。

    非常感谢。

    此致

    螺栓

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

    HI 螺栓、

     因此、我想知道 AM243x 中是否有任何方法可以为所有没有去抖功能的 GPIO 提供抗尖峰脉冲信号。

    如果 GPIO 引脚在中断模式下不存在此功能、则无法为该引脚配置去抖周期。

    作为替代方案、您可以使用轮询模式并读取 GPIO_IN_DATA/GPIO_OUT_DATA 用于检查是否检测到信号变化的寄存器。 检测到信号变化后、等待一个特定的超时(即去抖周期) 、然后再次读取寄存器以查看引脚状态。  

    这样就可以滤除 GPIO 信号变化产生的噪声。

    此致、

    Tushar