工具/软件:Code Composer Studio
大家好、我在项目中使用 PWM 模块。 当我给出占空比0时、我得到输出、就像我给出255一样
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.
工具/软件:Code Composer Studio
大家好、我在项目中使用 PWM 模块。 当我给出占空比0时、我得到输出、就像我给出255一样
这种情况早已为人所知/已被识别-并且发生在(许多) ARM 供应商的 ARM MCU 中。
[编辑] 01:38 -刚刚注意到您使用的是 PDO 和 PD1 -如果您是"LaunchPad"-供应商(永远)嵌入了"魔鬼瘟疫-恶魔"(R9/R10)-这"将 PDO/PD1与 PB6/PB7绑定!" 现在、如果您尚未解决 PB6/PB7 -那么没有伤害-没有碰撞。 (除了"潜在"的未来伤害之外!) 我建议您先去焊、然后再去"tombstone-"(通过焊接(仅)一根桥臂来支撑这些 Rs)、这样就消除了它们对 MCU 引脚争用的可能性、并删除了您更正了该供应商的"信号"(不建议这么做)"填充这2个电阻器"。 再说一次-除非您已"订购"PB6/PB7至 GPIO 输出-否则这证明您的问题不可能是由您造成的...
PWM 模块/发生器提供的出色控制-到达(某些)限制。
两种解决方案可帮助您"修复"此"已知"(PWM 问题@最大和最小设置: (即 PWM @ 100或0%)
如果您使用的是"栅极驱动器 IC"至(技术术语后面) "增大" MCU 的 PWM 输出-在向(可能的)功率 FET 演示之前-您可以在 MCU 的 PWM 信号和栅极驱动器的输入之间添加一个串联电阻器。 然后-通过(单独的) GPIO 信号(直接)连接到(相同的)"栅极驱动器输入")、您(实际上)能够"超控" PWM 信号-呈现(相反)逻辑"1"或"0"。
请注意、"无需添加硬件"(但对于串联电阻器)是必需的-并且您必须"测试并识别"MCU 的"@限制"输出-并使 GPIO 从"高阻抗"(即输入)切换到"输出"-并将其设置为正确的(1或0) 逻辑电平。 这种(GPIO 调制)"辅助至 PWM"技术可(偶数)扩展至"非栅极驱动器"应用! (通过将栅极驱动器替换为任何"单引脚、电平控制型 IC"。)
已注意到、MCU 的"生成 PWM"(可能)的"计时器方法"(更简单)"溢出"这一问题、即"命令到极限值时"PWM 发生器的"问题"。
我"感受到您的语言痛苦"-但问题是"不在代码范围内!"
如果将 PWM 周期设置为255 -则无法将 PWM 脉宽设置为"高于大约249"-以确保安全。
同样、您不能将 PWM 脉宽设置为"低于大约5左右"、这也是为了确保安全。
例如:
PWMGenPeriodSet (PWM1_base、PWM_GEN_0、0); // 您将此报告为失败-生成100%占空比!
相反-请尝试:
PWMGenPeriodSet (PWM1_base、PWM_GEN_0、5); // 这应该起作用-产生一个(非常小)占空比(< 2%)
这不是您的代码中的故障-这是 ARM (和其他) MCU 中的(已知)限制。
您可能会找一位朋友或老师来帮助您进一步阅读和理解。 祝你一切顺利...
[引用 user="Ali YOLCU"]要使 PWM 信号变为0,我需要做什么?
我在(第一)回复帖子中回答了这个问题、并提供了几种方法来实现这个问题。
您也可以(也可以)选择"将引脚从"PWM (type & config)"切换到 GPIO"、然后将其设置为逻辑"0"。 同样、如之前所述(第一个帖子)-您必须"测试"是否需要"将占空比设置为零"-此时-仅此时间-将引脚从 PWM 重新配置为 GPIO -并将其订购为低电平!
请注意、除了(非常)详尽的书面说明(多种方法)之外、我之前还提供了示例代码-它"非常接近"0占空比 PWM。
PWMGenPeriodSet (PWM1_base、PWM_GEN_0、 5); // 在(您的值) 255提供周期时提供小于2%的占空比。 您(可以)尝试使用"1-4"值-以进一步降低占空比! (哪个"侵犯"了"安全因素"-可以或不能. 请参阅法律"样板文件"(页底)、具体地说:"内容提供者"(这是我的工作)对所有"外人"都有利。)
[引用 user="Robert Adsett"]制造商似乎不共享 PWM 外设[/quot]
同意! 事实证明、"我公司的主要客户/投资者有更多理由 "促使我们 "调查许多(当然不仅仅是一个) ARM 供应商的 ARM MCU 产品。" 此外-我们注意到、 "几家 ARM MCU 供应商-但并非所有供应商-似乎都在"忍受" 这种情况、 "PWM 问题@占空比极端!" (因此、 "冲头"的说法是"不知情"、或者本身是"招贴画冲头!")
现在、"外设实现中的变化"扩展到了 PWM 模块之外。 许多/大多数现代 ARM MCU 都包含 DAC 和功能强大的 TFT 接口(此处不存在),在计时器、ADC、QEI、 I2C (另一 个类似 PWM 的“困难的一个”)中会出现差异-列表会增加。
是的、我们强大的 Intel MCU (甚至 Zilog)可以拨打 PWM 极限-不需要(任何)特殊的照顾/处理。 在 ARM 的防御中、 性能显著提升、 这必然提高 了许多/大多数此类 MCU 外设实施的复杂性。 每个"供应商实施团队"都有不同的设计目标-不同的价格点-因此(某种程度的) 外设变化是"新规范"- 并且是(令人不安的)预期! (虽然不愿意接受...)
[引用 USER="CB1_MOBIST"]是的-早在过去-我们强大的 Intel MCU (甚至 Zilog)可以拨打 PWM 极限-不需要(任何)特殊的照顾/处理。 [/报价]
还有 ST、Infineon 和其他人。 IIRC 其 DSP 上的 TI PWM 外设也可以覆盖整个范围。
CB1_mobile 说:在 ARM 的防御中- 性能显著提高- 必然提高了复杂性级别
嗯、不 这真的是一个自我伤害的伤口。 并非所有东西都需要更复杂。 CAN 和 UART、它们并不复杂。 尽管 TI 的 UART 也似乎犯了一些简单的错误。
TM4C 上的 PWM 实际上并不比其他正确的器件上的 PWM 复杂。 至少是我可以看到的。
我不知道他们重复了旧规范错误、还是很高兴重复了我们已经知道的解决方法、这是不是应该让我感到沮丧的。 也许这个外设设计问题在于以前的开发人员而不是 TI? 至少他们有不熟悉的借口。
Robert
[引用用户="Robert Adsett"]
CB1_MOBILE在 ARM 的防御中、 性能显著提升、 这必然提高了复杂性
[/报价]
如果我们(或我们的"预充")在1800年就存在了-我们每个人都说:"手枪的伸出距离"。 (亚伦·伯尔和亚历山大·汉密尔顿——为美国历史爱好者而来)
ARM 器件能够:
努力支持" ARM 的一般优势..."的(适当的)主张 (您本可以转至 MSP 器件-这不是真的吗?)
我 @注意您列出的一家 MCU 供应商-声称"不"会遇到"PWM 问题"-我们必须对此提出质疑。 (注意:提供了许多 MCU -我们的经验不太可能(完全)重叠。)
如果你"抵抗"----我已订购了一套"双匹配手枪"----两支都是满载的----并向"边境当局"提供(仅)最小的方向。 ("卸载"手枪-横穿(您的)侧...)
可能需要关键字。 虽然这些功能中的许多或大部分都在 ARM 之前的其他控制中存在、尤其是在 DSP 中、但 ST 和 Siemens / Infineon 的 ST10和 C166系列也具有相当复杂的 PWM (也有一些相当复杂的计时器)。 所有这些都不是 ARM 处理器所特有的
[引用 USER="CB1_MOBILE"]
ARM 器件能够:
[/报价]
并不特定于 ARM 器件。 其他器件具有此功能。 我不明白为什么这些功能的复杂性增加会使完全 PWM 变得更加困难。 也可添加到列表中
[引用 USER="CB1_MOBIST"]我必须注意您列出的一家 MCU 供应商-声称"不"遭受 "PWM 问题@四肢"的困扰-我们必须对此提出质疑。[/QUERPLET]
我只是注意到他们至少有一台设备没有受到这种不良影响。 就像在发送缓冲区为空时发生中断一样、这是一个得到广泛解决的问题、因此实际上无需重复。 尤其是因为它是一个设计/规格问题、而不是一个实现问题。
是否有理由认为硅器件的成本很高? 我不这么认为、但是...
现在、如果您的 PWM 仅用于控制 LED、或者提供 D/A、那么这种监督就相当小。 但是,对于直流电机控制*之类的东西,这种功能是必要的,尽管存在一些变通办法,但这些办法的实际实施可能会有点棘手。
Robert
*交流电机控制不需要达到全范围、这可能是关键所在。 也许 PWM 外设在设计时就考虑到了交流电机控制、而不考虑需求或其他器件。