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.

[参考译文] TM4C1231H6PM:基于计时器的 PWM 控制和漏极开路

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/869830/tm4c1231h6pm-timer-based-pwm-control-and-open-drain

器件型号:TM4C1231H6PM

您好!

我希望得到一些关于使用基于计时器的 PWM 输出来控制三色共阳极 LED 的几个阴极的说明。 我使用 GPIOPinTypeGPIOOutputOD 将引脚设置为 GPIO 输出 od (开漏)、然后使用引脚配置将引脚强度设置为12mA、并使用 GPIOPadConfigSet 设置开漏。  

我的问题是 、当我稍后使用 GPIOPinConfigure (GPIO_PD6_WT5CCP0)和 GPIOPINTypeTimer (GPIO_PORTD_base、GPIO_PIN_6)等配置这些引脚时、这是否会使我先前的开漏设置消失? 我不太了解从标准 GPIO 引脚到计时器 PWM GPIO 的切断情况。  

是否可以将 GPIO 定时器 PWM 引脚设置为开漏?

任何见解都将不胜感激!

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

    您好!

    [引用用户="jef_e2e"]…… 使用基于计时器的 PWM 输出来控制三色共阴极 LED 的几个阳极。[/quot]

    除非我没有从节日庆祝活动中充分恢复、否则"开漏"似乎对阳极控制应用没有什么意义(原谅)。   开漏是否使多个器件能够"连接在一起并选择性地"下拉?"   因此、OD 似乎与任何 LED 的阳极匹配不良-必须采用上拉电阻器或(其他一些)阳极控制形式。   (注意:对于某些大电流 LED (不幸的是不是您的 LED)(12mA)、OD 输出可能会驱动(使能)一个小功率级-该功率级进而为 LED 的阳极提供电流驱动。)

    您的解决方案可能是将您的计时器输出置于"推挽"模式-在这种模式下(两种)电流都可能是"有效"或"有效"-并且"有效"适合您的(驱动 LED"阳极)情况。

    再次-您对漏极开路的需求出现、"不适合阳极驱动、共阴极" LED 应用...

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

    抱歉。 我必须是从假期中恢复过来的人。 我换用了 LED。 共阳极(+)多个阴极(-)。 我在原始帖子中修复了我的描述。  

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

    [报价用户="jef_e2e"]我换了 LED 指示灯。

    好的-至少您已经部署了"更易于驱动"的共阳极 LED。

    现在、很可能是在计时器模式下未启用 OD 输出。   (这样定时器可以更明显地驱动其他器件-我怀疑添加 OD 上拉 R 会减慢并舍入)计时器输出-从而解释在引脚处于计时器模式时 OD 的强制禁用!)   目前、我无法轻松访问 MCU 手册、但它应该会显示您的 OD 选择是否确实是"被占用"。   此外-您可以查看两个函数的源代码(如下所示)并查看是否存在引脚限制提示。

    另外-您配置的"顺序"可能是:

    •  GPIOPinConfigure()

    • GPIOPinTypeTimer()

    (可能)对"订单"敏感。   (因此-尝试两种方法!)

    如果定时器输出不能如此命令(如 OD)-您可以编写代码、以便根据定时器的逻辑电平切换非定时器、GPIO 引脚。   如您所知-普通 GPIO 没有此类 OD 限制!

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

    您好 Jeff、

    我也正在从假期中恢复、因为我错误地将"固定描述"解释为"固定问题"。 很抱歉。

    CB1在右侧、 命令顺序各不相同、特别是使用 GPIOPinTypeTimer API。

     GPIOPinTypeTimer 将调用一个 TivaWare 定义的 GPIOPadConfigSet、 如果您想使用与 TivaWare 中提供的设置不同的设置、该设置将覆盖您自己的 GPIOPadConfigSet 设置、这些设置为:

    //
    //为标准推挽操作设置焊盘。
    //
    GPIOPadConfigSet (ui32Port、ui8引脚、GPIO_Strength _2mA、GPIO_PIN_TYPE_STD); 

    因此、您需要将 GPIOPadConfigSet 移动到 GPIOPinTypeTimer API 调用之后。

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

    CB1通常采用这种方法。 重新排序函数调用使我启动并运行基于计时器且具有漏极开路的 PWM GPIO 引脚。 对早期的命名混淆表示歉意。   

    感谢 Ralph 和 CB1

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

    [引用 user="jef_e2e"]根据通常情况,CB1已将其成功通过。

    谢谢我的朋友。   当然,员工很粗力,“用他们的眼光看”你的评论——注意:“你为什么不能正确地指导我们?”

    应该有几个年轻(大部分是 gurl)的工作人员“去失踪”…… 任何陪审团都不会判罪……   很高兴你在空中!