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.

[参考译文] TM4C1294KCPDT:PWM 无效

Guru**** 2558250 points
Other Parts Discussed in Thread: EK-TM4C1294XL, TM4C1294KCPDT

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/892530/tm4c1294kcpdt-pwm-voids

器件型号:TM4C1294KCPDT
Thread 中讨论的其他器件:EK-TM4C1294XL

之前曾发布过类似的问题、即在间隔1-5秒之间什么会导致 PWM 再次发生电气干扰。 然而、1/2电桥输出驱动器在大多数时间都非常干净、而在所有 PWM 周期中突然发生100ms 至200ms 的崩溃。 我怎么能如此盲目地不去看这场电风暴,除了灾难性的事情。

最近我发现、在 GPTM 驱动的输出间隔 PWMENABLE 寄存器期间、全局同步更新可能不同步。 因此、在加载发生器计数期间启用 PWM 输出可能并非所有条件中的最佳状态。 奇怪的是、这种频繁的随机风暴不会使直流逆变器崩溃、但绝对会严重破坏发生的 EMF 尖峰对硬件的影响。 有点像割草、在这种情况下、草地更深、必须更用力地推入才能穿过粗糙的路面。 出口时、您会突然加速、然后甚至超出自走速度。 从那以后购买了42英寸甲板式割草机、但这是另一个庭院故事。

无论如何、GPTM 配置的 OSHT 具有一个中断处理程序函数、用于控制 PWMENABLE、并在 ADC 中断处理程序内的2个 PWM 周期内重新加载 OSHT 计数。

然后还有另一个 GPTM 用于捕获 ADC 中断的边沿时间、用于确定通过另一个 NVIC 中断 PWMENABLE 驱动换向的新 PWM 边沿。   

全局同步更新期间、也许会发生 PWM (过载)、ADC 中断通过 OSHT 超时间接控制外部换向功能环路。

问题是如何在不增加复杂性和/或中断 PWM 换向周期的情况下停止过度运行?  

我的第一个猜测是添加一个 while not loop 到驱动换向事件的 OSHT 处理程序中、这是不是要回避?

是否有人曾看到过同样的随机 PWM 电风暴?

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

    在更长的星期六审查和暂停全局同步更新期间的进一步重复周期更新后、没有任何区别。  

    我现在注意到的是慢速衰减似乎是问题的原因。 当占空比通过大约10-15个 PWM 周期上升至98%时、在重复周期中每个累积的末尾附近都有一个电流上升趋势。 当发生气候变化时、电流传感器会进入具有高频高压瞬态响应周期的状态、直到风暴结束。 他们都很兴奋、然后在暴风雨过后放松一段时间。 电流传感器可检测高达-4V 的电压、并将过零瞬态直接传递到 ADC 中、但确实存在计数器测量。     

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

    当占空比增加时、设置为接近100%的低侧开关周期似乎会变得更饱和、每个衰减周期结束时、PWM 过冲运行会变差。 这会导致高电流尖峰、25-30安培的峰值浪涌。 PWM 更新和本地死区时序中更有可能会粗鲁中断高侧 NFET 衰减周期。

    看到 PWM 驱动器像它们一样随机失真是一个有点令人震惊的现象。 过去的白粉电流高潮事件是与 dV/dT 相关的瞬态、但这个问题看起来更像是在慢速衰减周期结束附近的 PWM 驱动过度运行。 当前的气候事件始终在低开关饱和斜坡的末尾发生。 也就是说、低侧开关并不总是达到89-99%的饱和、因为死区周期似乎会影响部分延迟关闭时间。  死区发生器(180ns)不是静态寄存器值、它们会逐周期打开或关闭、因为 Wiki 文本与高效相关。

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

    从表1和图4 (链接)可以看出、原始 SW 从未将 PWM-B 驱动器反相为低电平有效状态。 添加动态死区开关控制 PWM-A/B 通常是有效的。 TM4C1294死区发生器输入 PWM-A、反相使 PWM-B 驱动信号。 表1第1行信息器 PWM-B (2、4、6)为低电平有效使能、PWM-A (1、3、5)为高电平有效使能。 可能会考虑启用静态死区的互补 A/B 驱动器。 高效率硬件可以动态设置死区、正如 TI 在后续的 NexFET 和 GaN 分析技术表中所建议的那样。

    TM4C1294静态死区控制示例未能演示互补 PWM 驱动信号是否正确配置。 为什么在启用死区寄存器之前、低侧 PWM-B 驱动器从未反相低电平有效使能、如表1第1行所示?   

    如果 PWM-B 驱动器配置为高电平有效、则添加慢速衰减似乎会导致体二极管击穿。 根据 Infineon 的说法、只要高侧 NFET 导通、就会发生这种情况、因为低侧 NFET 续流二极管在任何1/2电桥上都有电流。 是否通过死区发生器的动态 SW 控制来防止开关节点击穿、这似乎是正确的。

    在下一次 PWM 有源开关事件之前、NFET 续流二极管 Qrr/TRR 是否有足够的恢复时间? 软件是否反转 PWM-B 驱动器、是、但仅在任何1/2桥的硬件死区控制期间。 否则、PMW-B 驱动器配置为高电平有效、表1建议使能低电平有效。

    如果 PWM-B 驱动器未配置为低电平有效、则在慢速衰减周期(Climax)结束时、似乎 PWM 过载可能会发生。 根据表1、死区示例软件配置似乎不正确、这会导致未来出现看起来不那么明显的问题。

    http://www.ti.com/lit/an/spra289/spra289.pdf

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

    您好!

     您使用 GPTM 模块还是 PWM 模块来生成 PWM? 一方面、您讨论了 GPTM、另一方面、您讨论了 PWMENABLE。 PWMENABLE 是 PWM 模块中的寄存器、而不是 GPTM。  

     您如何知道 PWM 不同步? 您是否有示波器电容器来显示它?  

     什么是 OSHT? 我在 driverlib、数据表和外设驱动程序库用户指南中找不到此缩写。  

     如果您使用 GPTM 模块生成 PWM、您是否将 TnPLO 和 TnMRSU 位设置为高电平?  

      

    如果您使用 PWM 模块生成 PWM、那么您尝试使用哪种同步方法? 我将尝试全局同步方法。  

    通过写入 PWM 时基同步、PWM 发生器中的计数器可被复位为零
    (PWMSYNC)寄存器、并设置与发生器相关的 SYNCn 位。 多个 PWM
    通过在一个访问中设置所有必要的 SYNCn 位、可以将发生器同步在一起。 原因
    示例、将 PWMSYNC 寄存器中的 SYNC0和 SYNC1位置位会导致 PWM 中的计数器
    发生器0和1一起复位。


    通过更新寄存器内容、可在多个 PWM 发生器之间进行额外的同步
    以下三种方式之一:


    ¡μ s。 写入值立即生效、硬件立即做出反应。


    ¡本地同步。 写入的值在计数器到达时才会影响逻辑
    PWM 周期结束时为0。 在这种情况下、写入的影响被推迟、提供
    保证定义的行为、并防止输出 PWM 脉冲过短或过长。


    ¡全局同步。 写入的值在两个连续的事件发生之前不会影响逻辑
    1)发生了:(1)发生器功能的更新模式被编程为全局模式
    在 PWMnCTL 寄存器中同步、和(2)计数器在结束时达到零
    PWM 周期。 在这种情况下、写入的影响被推迟到随后的 PWM 周期结束
    所有更新的结束。 此模式允许更新多个 PWM 发生器中的多个项目
    在更新过程中不会同时出现奇数效应;所有操作都从旧值运行、直到
    它们都从新值运行的点。 负载和比较器的更新模式
    匹配值可在每个 PWM 发生器模块中单独配置。 它通常会产生
    在计时器时感应在 PWM 发生器模块之间使用同步更新机制
    在这些块中是同步的、但这不是该机制所必需的
    正常工作。

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

    您好、Charles、

    这是 PWM0全局同步和 DB 同步本地。 因此、当慢速衰减处于活动状态 PWM-B 时、PWM-A 的占空比不能与 PWM-B 相同  WA 只能在新周期之前启用1/2电桥上的红色/馈送。 否则、当反转使 B 时、不会通过 DB。GPTM 的 OneShot (OSHT)通过数据 PWM_ENABLE 寄存器控制换向事件的时序。  

    我在反相 PWM-B 驱动器后使用静态红色/馈入设置测试了表1第1行、更像是1/2电桥短路情况。 这包括 PWM_ENABLE 的本地更新、过去试用过的全局更新、没有同步、两个工作周期都不同步。

     

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

    示波器通道10KSPS、1k 采样深度、无滤波。 CH1是所有 PWM-A/B 相驱动器、CH2通常峰值25-30安培@150Vdc (未显示)。 负极部分 CH2最为相关。  

     

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

    "完美风暴"(据称)问候、

    也许这里有人会发现您的示波器演示文稿"不够完美"、"风暴"减少到了困惑?

    (一些)基本规则是否应该证明是有秩序的?   (供应商代理太"好"-太" PC 绑定"-不能轻易施加...)

    • 这主要是一个以 MCU 为中心的论坛-您(唯一的)提出的问题证明了"与 BLDC 电机控制更相关"。   供应商代理经过高度培训和技能、但"深入探究"、"高度专注的应用细节"几乎可以肯定"超出了他们的章程。"   
    • 供应商提供(其他)-更多与电机相关的-论坛。
    • (任何供应商的) MCU 手册不太可能完全/正确地"预测和解决"每个用户的"深度"应用要求。   这似乎是你的期望...

    文章的具体内容:

    • 您会报告"慢速衰减电流累积斜坡捕捉"-但"CH1 (栅极驱动器)和 CH2 (电流传感器)"均未显示(任何)形式的累积。   (对我团队的"受过较少训练的眼睛!")   这样的"建筑斜坡"应该会显示为"定期扩宽栅极驱动脉冲和电流传感器的上升输出"-不应该这样做?   
    • 您提供了两种信号捕获-均为" MCU 外部"!   (电流感应波形会打开您的报告、让您了解(几乎)无限的"应用、设计和实施问题"-您是否不是在寻求我们的"盲目信仰?")   虽然栅极驱动器(CH1)的输出很可能与 MCU 的输出(但对于振幅而言)密切相关-"专业诊断人员始终更喜欢"真正的"MCU 信号!"
    • 此主题中先前的帖子(正确)指出了"半"H-桥"死区问题-但尚未找到显示这些"死区对"的示波器迹线。   这是一种监督-不是吗?
    • 而且-也许最重要的是-"在(明显)电流浪涌的"附近/周围"显示"不充分的"近端"详细信息!"   由于这一浪涌代表您(被指控)的"风暴"-甚至是极好的"侦探哥伦比亚"-将很难"提出案例"-提供的证据太少(即基本上没有)!   显示的多个"关键渠道"(远远超出了简单的两个渠道)将大大提高"可能的因果联系"的"认可和理解"!    您对供应商代理帮助者(甚至是外人)提出了(非常)高的要求-但您的仪器似乎"极具挑战性"-这(既是)好奇、也没有什么帮助-直到现在...

    同时、"感受您(持续)的痛苦"-您的方法、

    • 确定并提出最重要的问题
    • 向"最合适的资源组"介绍这些内容

    可能会受益于"更精确、更有针对性的手工制作"。   (当然)大家同意您提出了"多个兴趣点"。

    这里有许多人、"希望您取得成功"-建议是可行的(甚至可能)、"朝着这个方向迈出的一步"。

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

    您好!

     我不知道建议什么、也不知道您的系统。 您需要自己弄清楚什么是错误的。 在这里、您会看到完美的风暴与栅极驱动器上的一些噪声同时发生。 看到白色圆圈内的噪音。 为什么是这样? 我无能为力。

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

    您好、Charles、

    [引用用户="Charles Tsaaa">查看白色圆圈内的噪音。 为什么是这样? 对此我无能为力。

    它来自 CH2在地面上的骑行。 Storm 看起来更像是在 PWMENABLE 时间范围内运行时的同步更新。 奇怪的是、它可能会在一段时间内保持非常干净、然后随机产生一组极高失真脉冲 CH2。 一些 SNR 与示波器混叠或接地噪声相关、但并非全部。  

    唯一一种可能的 SysTick 中断处理程序被 NVIC 中断以清除其源代码。 SysTick 用于确定触发 OSHT (OneShot)重新加载的 EMF 边沿时间、并加载 PWM_ENABLE 值以在 CH1上输出。 如果 SysTick 与 PWM 更新不同步、则可能会在 PWM 同步更新期间导致过度运行。

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

    [引用 USER="Gl]唯一的另一种可能是 SysTick 中断处理程序被 NVIC 中断以清除其源。 SysTick 用于确定触发 OSHT 重新加载的 EMF 边沿时间并将 PWMENABLE 值加载到 CH1上输出。 如果 SysTick 与 PWM 更新不同步、则可能会在 PWM 同步更新期间导致过度运行、这是另一种想法。

    SysTick 是一个异常、其优先级高于中断。

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

    您好、Charles、

    感谢您指出这一点、它使用了 GPTM1周期模式与 SysTick。 此 SW 始终存在启用慢速衰减时死区 B 反转的问题。 在 SW 的这一领域中、似乎做出了几个 PWM 设计假设。

    我过去看过 PWM 发生器、假设比较器产生补码 PWM 输出、占空比相等。 但比较器似乎遵循数据表图23-5逐字记录、从而导致死区问题。 查看下面的调试寄存器、注意 PWMB 使用 CMPB-D/U、再次逐字记录图23-5。

    看似图23-5给出了一个不执行的操作示例、并在同时启用慢速衰减的情况下导致死区问题。 它是否起作用、 这是有争议的、因为它不能具有启用静态的死区和慢速衰减。 而 PWM-B 不会被死区发生器逐字逐次传递、而是将 PWM-A 反相。 即使在动态死区周期内、重叠的信号也可能会导致通过 NFET 低侧体二极管部分1/2电桥击穿。 数据表的下一个示例(图23-6)显示了可能存在重叠信号的死区图23-5、这是谨慎的吗? 也许另一种方法更谨慎、使用更少的死区谐波?  

    奇怪的是、其他 PWM 发生器会产生互补的 GEN-B 输出作为默认比较器操作。

    我们是否应该将 GENB 比较器 B 的操作更改为生成补码输出 PWM-A/B 的操作?

    2.为什么数据表不建议使用最常见的 PWM 输出模式和死区?  

    3为什么没有用于多种不同比较器配置的表?  

     

    似乎 Fig.23-5无法产生下面显示的波形、为什么会误导它所从事的社区?

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

    最常见的 PWM 发生器配置没有重叠的信号、如图所示。 23-5. 它们是辅助 A/B、只有正确配置比较器才能生成以下图形。 与过去毫无根据的帮助者索赔相反,没有《议定书》/《公约》缔约方会议 B 行动图3-10。 旧的 LM3S 和新的 TM4C 数据表似乎误导了所有使用 CMP-B 的人、因此下面的静态死区显示无法正常工作、如图所示。 23-6. 谁会更明智,直到混乱造成了完美的风暴。   

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

    Tivaware PWMPulseWidthSet() 如果 PWM 驱动位具有奇数值、则强制 CMPB 输出、强制 PWM-A/B 输出产生重叠信号。 这似乎会使死区寄存器红色/馈送在慢速衰减周期中被静态启用。 通过使用最后一个同步更新值、为最后一个 PWMENABLE 寄存器 GENn 位启用了动态死区、并且 PWM-B 在死区中丢失。  

    为什么 Tivaware 强制使用 CMPB、并且不允许用户选择比较器作为数据表文本信息器、以便尽可能保持安静? 似乎有人按下了简易按钮、但没有产生可行的脉宽设置功能、互补 PWM 信号无法轻松产生。 这似乎解释了死区 Tivaware 示例在我的测试中失败的原因。

    比较器(CMP-A/B)操作不是输出驱动(PWM-A/B)、开发人员开发的 PWM.c 模块也不知道这种差异。 否则、整个模块应该通过/检查 CMP 选择 A/B 操作、此时脉宽值被传递到下面的调用中、而不是根据 PWM 位强制执行。 同样、CMP-A/B 操作不是 PWM A/B 输出(错误)、如图32-1图23-2所示。 否则、PWM 模块将与数据表文本相冲突、显示 CMP-A/B 操作的图是与 PWM 时钟相关的 PWM 输出操作。   

    void
    PWMPulseWidthSet (uint32_t ui32Base、uint32_t ui32PWMOut、
    uint32_t ui32Width)
    {
    //~~~~~~~~~~~~~~~ !!!!
    //它执行的其他操作
    
    //
    //写入相应的寄存器。
    //
    if (PWM_is_output_odd (ui32PWMOut))
    {
    HWREG (ui32GenBase + PWM_O_X_CMPB)= ui32Reg;
    }
    其他
    {
    HWREG (ui32GenBase + PWM_O_X_CMPA)= ui32Reg;
    }
    } 

      

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

    风暴(不是那么多)问候、

    除了您"错过"的"SysTick 避免(仅)中断引起的问题"之外、您似乎还没有注意到图中的前导码文本。 23-5 (底线)、它说:"信号在经过死区发生器之前!"

    实际上-正如我(过去)多次向您展示的(这里)、"当不命令或不启用"死区"时、很容易产生 PWM_A 和 PWM_B 的重叠。   任何"误导社区"都源于(图23-5除外)!   (有些人建议进行镜像反射-更好地识别此类来源...)

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

    gL 说:
    似乎图23-5无法生成下面显示的波形,因此为什么要误导它所从事的社区?

    图23-5仅演示了如何生成对称 PWM。 此图位于 23.3.4 PWM 信号发生器部分。 仅仅是因为第23.3.4节恰好在23.3.5死区发生器之前、并不意味着您使用图23-5中的示例来生成死区信号。  

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

    [引用 USER="CB1_MOBIST"]任何"误导社区"都源于(图23-5除外)!  [/报价]

    例如、本应更好地编写整个 PWM.C 的人完全不称职、以便比较器输出通过死区。

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

    [引用 USER="GL"]没有 CMP-B 操作图3-10,与过去毫无根据的帮助者请求相反。

    您正在参考与 C2000 MCU 完全不同的 PWM 模块。 每个模块都有自己的操作方式。 您正在比较苹果和橙子。  

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

    [引用用户="Charles Tsaaaa">只是因为第23.3.4节恰好在23.3.5死区发生器之前、并不意味着您使用图23-5中的示例来生成死区信号。  [/报价]

    您缺少的一点是、Tivaware 会强制 PWM-B 像使用 PWM-B 输出一样使用 CMP-B。 图中显示了两条路径、但对块内的任何一条路径都没有详细说明。 因此、任何人都会将其视为 Tivaware 设计器、根据 PWMENABLE 中的引脚位置错误地强制 CMP-B 使用 PWM-B。

    为了产生没有任何重叠的互补 A/B 输出、需要为两个 PWM-A/B 输出操作选择 CMP-A。 当任何奇数引脚(低电平)被脉宽设置为使用 CMP-B 时、无法实现这一点

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

    供应商的 API "始终"是一个出色的指南和模型。   (任何来源的 API 都不能满足"所有用户的所有需求... 随时都可以!")

    您(长期)在这里的表现已取得进展-这在很大程度上归功于 API。   (甚至是 PWM.c!)

    任何(除了技能/时间/精力)都不会阻止您根据自己的要求修改"pwm.c"。   (明智的做法是重命名该文件,这样它就不会被(待定) API 升级改写... 似乎"狗狗"在2020年3月承诺的更新中吃了!)

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

    [引用用户="Charles Tsaaa"]您引用的是 C2000 MCU 完全不同的 PWM 模块。

    除了来自 Tivaware 脉宽设置函数的重叠之外、我们不能生成任何其他类型的输出波形。 比较器 A/B 连接到 PWM 时钟作为 PWM-A/B 输出的计数操作、而不是输出本身。 比较器输出在内部控制相对于图23-4中所示 PWM 时基操作的发生器 A/B 输出。 这样、可以根据特定的比较器操作轻松生成其他类型的 DSP 波形。  

    Tivaware PWMPulseWidthSet()被写入的方式只能生成一个重叠的信号对。

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

    "风暴"问候语迅速下降、

    [引用 user="gl"]写入 Tivaware PWMPulseWidthSet()的方式只能生成重叠的信号对。

    不真实-(社区警报!) 我再次为您制作了多个示波器盖-这证明了这一事实。

    正确启用死区并配置(前端和后端)后、最明显的"非重叠"信号对就会产生!

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

    [引用 USER="GL)您错过了 Tivaware 强制 PWM-B 像使用 PWM-B 输出一样使用 CMP-B 的一点。 [/报价]

    在数据表中、说明使用 COMP-B 生成死区的位置是什么?  

    正如我提到的、23-5中的数字与死区生成无关。 如果图23-5与第23.3.5节相距10页(其他章节在之间)、则不会将它们关联在一起。  

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

    许多令人难忘的沙龙!  

    [报价 USER="CB1_MOBIT]\n 您(长期)在这里的外观已经取得了进步-这在很大程度上归功于 API。   (甚至是 PWM.c!)[/quot]

    因此、天真地认为这一代码是福音、问题可以追溯到 Stellaris PWM.C  正在寻找供应商确认 PWMPulseWidthSet()没有告知真相的方法,也许您的答案需要进一步调查。 谈论任何人都能在没有的情况下学习的曲线。。

    上周在电视上看到的 Wozniak 和妻子说,1月下旬,Corona 从中国回来,这是我听说过的最真实的事情。 2月份,其他家庭成员因未知病毒而生病,残留物仍在继续。

    很高兴在这里住得安全,远离这种可怕的大流行病!  

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

    [引用 USER="Charles Tsaaa">数据表中的哪一个地方说使用 COMP-B 来生成死区?  [/报价]

    Tivaware 通过以下调用在上面发布的代码中强制执行此操作。

    MAP_PWMPulseWidthSet (PWM0_BASE、PWM_OUT_2、ulWidthA);//CMP-A HS
    MAP_PWMPulseWidthSet (PWM0_BASE、PWM_OUT_3、ulWidthA);//CMP-B LS 

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

    "聪明/体贴"更好地描述问候(  通过年轻/天才员工...)

    您是否可以浏览(概述/讨论)您的"风暴声明"并接受:  (CH1:PWM_A、 CH2:PWM_B -通过 API 启用死区-不存在问题!)

    可怕的重叠 [您的诉求](某种程度上)似乎"证据不足!"   (正如 API (最合适的)死区(前端和后端)声明所保证的!)    

    3-4年前我在这里为你们做了这件事-遗憾的是今天它必须被"重新命名"!   (范围显示采集日期- 2016年!)   不幸的是、您的"协议"日期仍然未知-可能(那)是唯一的、真正的风暴?

    e2e.ti.com/.../1900414

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

    [报价用户="GL"]

    Tivaware 通过以下调用在上面发布的代码中强制执行此操作。

    1
    2.
    MAP_PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2, ulWidthA);//CMP-A HS
    MAP_PWMPulseWidthSet(PWM0_BASE, PWM_OUT_3, ulWidthA);//CMP-B LS

    [/报价]

    谁说 PWMPulseWidthSet 将推断 CMP-B? 通过硬件、当死区被启用时、PWM-B 是 PWM-A 的倒数、具有可编程延迟。  

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

    [引用 USER="Charles Tsaaa">数据表中的哪一个地方说使用 COMP-B 来生成死区?  [/报价]

    右死区发生器使 PWM-B 下降、并使用 PWM-A 反相来形成 PWM-B 我们希望在未通过 PWMENABLE 输出为一对1/2驱动电桥启用动态死区时、针对两个 PWM-A/B 输出执行 CMP-A 操作。 仅当 NFETS 关闭(红色/馈入)时、我们才不需要死区。  

    我认为您的观点是静态死区的显示方式。 如果它不是首先或根本不是在 PWM-A 反相前使用 GEN PWM-B 来设置内部输入状态。 死区段落似乎表明 PWM-B 不会完全丢失、从电子角度而言、丢失意味着什么?

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

    [引用用户="Charles Tsaaaa">谁说 PWMPulseWidthSet 将推断 CMP-B? 通过硬件、当死区被启用时、PWM-B 是 PWM-A 的倒数、具有可编程延迟。  [/报价]

    调试寄存器显示 TI 提供的 Tivaware 和代码不正确、以强制 CMP-B 操作验证 PWM-B 输出。 如果正确、我们可以启用与慢速衰减周期交错的静态死区。 为什么这是不可能的、唯一的答案是、如果 PWM 发生器占空比更新不强制 PWM-B 使用 CMP-B、我们不需要慢速衰减

    似乎过捆绑信号与互补信号会产生截然不同的逆变器功率级别。 TI 为何在所有直流电源逆变器中都采用过(CMP-A)的 PWM-A/B 互补输出、如上所示?  

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

    [引用 user="CB1_MOBIT)] 3-4年前,我在这里为您做了这件事-遗憾的是,它今天必须“重新调用”!  [/报价]

    最糟糕的是、如果死区被静态启用、PWM-B 将如何获得更新? 每隔100个 PWM 周期随机发生一次风暴的时间点。 当然还有动态死区。 动态:PWM-B 更新仍可在下方启用的慢速衰减下工作、否则这是一种死马。

    当 PWM-B 可以使用 CMP-A 操作来限定两个 PWM-A/B 输出时、似乎没有必要使用慢速衰减或具有不均匀的占空比。 在下面的 Tivaware 调用中、这是无法测试的、这会强制奇数引脚使用更宽的 CMP-B 操作计数。   

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

    CB1、

    由于上面的更新代码穿过死区是死区周期的一个挑战。  

    HWREG 调用将 CMP-A 用于两个 PWM-A/B、将在每个1/2桥上产生互补输出。 您是否曾测试过此类场景?

    这似乎可以产生相同或更多的功率、而不会因偶数占空比、PWM-A/B 而出现慢速衰减 也许电流放大器输出将具有更多的正弦波属性是一种想法。 如果 CMP-A 开发了稳健的均匀配电(两个高/低开关)、谁关心 PWM 的样子。  

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

    [报价用户="GL"]

    /* GEN1 pulse width update */
    MAP_PWMPulseWidthSet(PWM0_BASE, PWM_OUT_2, ulWidthA);//HS
    MAP_PWMPulseWidthSet(PWM0_BASE, PWM_OUT_3,
                         (g_ulPWMClock - (g_sParameters.ucDeadTime - 1 ))); //LS
     
    /* GEN2 pulse width update */
    MAP_PWMPulseWidthSet(PWM0_BASE, PWM_OUT_4, ulWidthB);//HS
    MAP_PWMPulseWidthSet(PWM0_BASE, PWM_OUT_5,
                         (g_ulPWMClock - (g_sParameters.ucDeadTime - 1 ))); //LS
     
    /* GEN3 pulse width update */
    MAP_PWMPulseWidthSet(PWM0_BASE, PWM_OUT_6, ulWidthC);//HS
    MAP_PWMPulseWidthSet(PWM0_BASE, PWM_OUT_7,
                         (g_ulPWMClock - (g_sParameters.ucDeadTime - 1 ))); //LS

    [/报价]

    我看不到 您在代码中调用 PWMDeadBandEnable()。 当您允许硬件根据偶数引脚为您生成死区时、您似乎正在尝试手动生成死区信号。  

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

    从"指责"(误导性 MCU 手册)转变为(进一步)调查(即有效)问候、

    员工非常惊喜:您愿意(现在)探索"解决方案"、而不是"投掷炸弹"。

    我们的团队现已分成三部分(我们有多个 BLDC 控制器(和电机)出货量供您使用)-但我们将(增加)努力(进一步)引导您(正如我们经常做的那样-早在过去!)

    很久以前、我的天才员工通过专注、亲吻的探测性实验、"找出"一个"高度满意"的解决方案。   我们在这一方向上反复"敦促您"、但"抱怨我们付出了巨大的努力..."

    我们设计并随后实施了多个"半桥 PCB"(因为"死区"行为确实存在)、并且我们的"密集、多通道数据测量和采集"直接导致了我们的成功。

    "直觉-经常猜测"-证明不能取代系统、适当(深入)深思熟虑的实验。"   (以某种方式-这种严谨的努力-证明"无风暴!")

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

    [报价用户="Charles Tsaaa"]我看不到您在 代码中调用 PWMDeadBandEnable()[/quot]

    因为静态死区一词意味着固定配置和动态一个被切换时间管理的使能。

    我发现了两个问题,PWMGenConfigure()强制 CMPB 操作,另一个问题是 PWMPeriodSet(),每个强制重叠的中心对齐 A/B 信号,就好像这是唯一可能的配置一样。 不是。

    [引用用户="Charles Tsaaa">当您允许硬件根据偶数引脚为您生成死区信号时、您似乎正在尝试手动生成死区信号。  [/报价]

    正确、正如所解释的、在启用慢速衰减且静态死区丢失 B 的情况下、PWM-B 上的硬件更新周期如何? 我们正在使用局部死区更新、以便慢速衰减可以与动态死区共存并在 B 上进行更新。如果死区在 PWMENABLE 期间未启用动态、则每个1/2桥上都将有全冲。  

    请注意、中心对齐的互补输出设置了匹配的更新脉冲宽度。

    /*为中心对齐的互补 GENA/GENB 驱动器配置 PWM0 */
    HWREG (PWM0_BASE + PWM_O_1_GENA)=(PWM_X_GENA_ACTCMPAU_ONE | PWM_X_GENA_ACCCMPAD_ZERO);
    HWREG (PWM0_BASE + PWM_O_1_GENB)=(PWM_X_GENB_ACTCMPAU_ZERO | PWM_X_GENB_ACTCMPAD_ONE);
    HWREG (PWM0_BASE + PWM_O_2_GENA)=(PWM_X_GENA_ACTCMPAU_ONE | PWM_X_GENA_ACCCMPAD_ZERO);
    HWREG (PWM0_BASE + PWM_O_2_GENB)=(PWM_X_GENB_ACTCMPAU_ZERO | PWM_X_GENB_ACTCMPAD_ONE);
    HWREG (PWM0_BASE + PWM_O_3_GENA)=(PWM_X_GENA_ACTCMPAU_ONE | PWM_X_GENA_ACCCMPAD_ZERO);
    HWREG (PWM0_BASE + PWM_O_3_GENB)=(PWM_X_GENB_ACTCMPAU_ZERO | PWM_X_GENB_ACTCMPAD_ONE); 

      

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

    [引用 USER="CB1_MOBIST"]从"指责"(误导性 MCU 手册)转变为(进一步)调查(即有效)问候,[/QUERPLET]

    用户可以从其他 TI 复杂系统上的书面文本或后续自我发现中部分学习。 许多解决方案都被论坛拒绝所阻止、除图1之外、其他可能的配置都不存在。 23-5、但问过多少次了。  明智地意识到问题代码或文本是所有末尾的问题需要时间。

    其他论坛人员现在可以发布配置原、以生成中心对齐的非重叠互补波形。 补充对于直流/直流转换器尤其有用、上面提到的两个 Tivaware 调用可以进行改进。 尚不清楚它如何消除慢速衰减、更早发布这些结果。 也许补充将减少驱动信号重叠产生的恼人的瓦瓦瓦噪声。 仅此一项就值1000个水箱!

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

    反转所需的互补输出 PWM-A'(高)驱动、并快速减少占空比分压或直流电源欠压。 奇怪的静态死区工作、但占空比更新向后工作。 否则、互补的 GENA'/B'输出似乎可以通过周期设置 CMPA 在不慢速衰减的情况下工作。 编码的 SW 利用奇数反相占空比、因此较低的 PWMnLOAD 值会产生较高的占空比%。 因此、电流从高电平开始、然后在初始开环电流斜坡期间减小。 然而、在没有慢速衰减 CMPB 周期的情况下、电流非常强、 后向占空比控制是一个谜。   

    所有这些都比在死区发生器输入之前没有 GENA/B 输出反转能力的情况下要多一些。 使用 CMPB 似乎只是一个事实、无论负载值如何、都会产生一个重叠的信号。 这是配置互补输出的原因、但死区发生器对轻松实现有不同的想法。

    回到 CMPAA/B 慢速衰减模式、示波器探针发现 在通道扫描模式下、每隔30到12秒出现一次400ms 的 PWM-A 驱动器失效、这与首次发布的捕获类似。  

    PWM 更新中断过多似乎在某种程度上与应用相关。 奇怪的延迟不会导致换向崩溃、但会导致风暴、因为 CMPA 返回390ms 后。  

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

    复兴历史问候,

    [引用 user="gl"]其他论坛用户现在可以发布配置原,以生成中心对齐的非重叠互补波形。[/quot]

    现在怎么办?   您是不是说您喜欢(这个)-(很容易)在4 年前在这里获得并展示给您(为您)?    (范围上限记录的右下角捕获日期...)

      

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

    达成(超出)"部分学习"问候、

    [报价用户="GL"]可以从其他 TI 复杂系统上的书面文本或以后的自我发现中部分学习。[/quot]

    正如我的团队向您(以及众多客户)提出的长期且直接的建议-"系统、集中、富有洞察力的实验"似乎非常有帮助-经常深刻地扩展"关键的新学习流程"-不太可能进入(广泛/过去)和不太准确的设计(即挑战-精简)环境!

    员工认为他们(近军)开发 的基本"半桥" PCB 具有广泛的组件和等级、远远(通常最远)达到"速度、易用性和增强"(真实)学习!   

    众所周知、(许多/大多数)通过"全板方法"开发电机控制器。   我们的团队发现(两者)过于昂贵/不必要效率极低!   很明显、大部分受控功率"在半桥中发生操作"-因此它们应"独立执行"并针对以下方面进行优化:

    • 探测速度和易用性
    • 多个关键测量/监控"连接点"
    • 快速且可靠(且安全)"仅正确方式"插件到 A、"接收主板"
    • 多电路板-电流和功率功能-产生20-120安培和40-160V (V_Motor)范围内的有效测量值
    • 这些半桥 PCB 中最多有六个可以"插入"到控制主板上。   我们的设计"扫过细节"以确保实现"带电电路板转换"(在全速、全功率运行下)、从而实现最精确的比较测量(自动、顺便说一下)!   这种"交换"是以电子方式管理的-所有板保持完全连接(即隔离、除非处于活动状态)、所有"交换"都处于完全"命令和控制!"

    电路板设计采用4盎司。 铜缆、多个散热过孔和非对称(额定功率)香蕉插孔和电缆、可实现快速插入/移除。   (主要客户寻求"销毁测试"能力...)

    遵循我们过去的几种电路板设计-这些设计极大地增强了我们对"现实运营绩效因素"的发现。    尤其是如何才能最好地实现"性能优化因素"!   应该指出的是,备选案文(见地少得多)的"书面文本"读数证明"效果差得多!"

    电流最低的半桥(成本降低)。   所有电路板都遵循这一"尺寸/连接模型"、简化并加快了"插入、更换和严格要求" (A 与 B 与 C 与 D 与 E 与 F)动态、比较 测量...   在这种"严格控制、均衡和高可重复性测试条件下、再也无法实现!"

    我们开发的八个半桥中的两个用于适应20-120A 的电流。  (右侧板采用车顶座舱"双侧"冷却功能。   未显示定制的顶部散热器)

    底视图-展示大电流栅极驱动器和海量(4盎司) 铜层

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

    [报价 USER="CB1_MOBILE]*现在怎么办  您是不是说您喜欢(这个)-(很容易)在4 年前在这里获得并展示给您(为您)?  [/报价]

    这些波形是否不是您在上面想象的重叠波形? 互补对具有明显对齐的 PWM-A/B 边沿曲线、如下所示。 还测试了反相 CMP-A/B、上行/DN 配置与高侧驱动器输出反相的关系。 通过 Tektronix 示波器捕获的毫秒间隙(PWM-A/B 驱动器)无论发生什么情况、但对蓝光通道的访问频率较低。

    奇怪的是、调试 GENn 加载值当时变得非常低、但 XDS102似乎永远不会在 GAP 发生时捕获加载值0x0。 在完成调整后、软件能够在加速期间关闭慢速衰减、因此两个 CMP-A/B 在0x42附近具有相等的脉宽值。 奇怪的是、PWM-B 时间加宽以与 PWM-A 间隙宽度紧密匹配、但发生频率要低得多、间隙现在为秒级宽、电流变小。

    由于极低的负载值<0x100、PWM 发生器因未知的未记录原因而停止。 发生器停止会导致稍后的相电流风暴、例如从远处观察到的热雷。 阻止发电机计数停止是以任何方式实现的目标。 奇怪的是、A/B 发生器周期加载值0x5dc 快速下降<0x3C、转子速度更低。 当 PWM 发生器随机失速计数时、人们只能想象不大的电流在较高速度下的行为。 BTW 出色的印刷电路板工作、可产生较高的毛发提升电流。

      

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

    慢速衰减 PWM-B 加载值0x7锁定且 CMP-B 间隙变窄、CMP-A 间隙保持相同的宽度。 当两个 PWM-A/B 具有相等的负载值(0x3c)而没有缓慢衰减锁定 CMP-B 时 、间隙会变宽几秒、电流会变得极周期性、此时会发生尖峰。 答案就在眼前、 PWM 模块的硬件配置似乎要归咎于它、并会出现未记录的勘误表!   

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

    我测试了在零 INT 更新期间强制将 pwmA/B 置为低电平、但停止发生器停止事件没有任何影响。 以下 GEN/A-B 控制操作的压缩数据表。 PWMn 控制寄存器设置比较器零/装载操作、它们现在是0x0、不执行任何操作。 在负载期间强制将 PWM-A/B 置为低电平并不会停止发生器的停止。 我不确定强制它们进入任何状态会如何阻止发生器计数停止。   

    寄存器44:PWM0发生器 A 控制寄存器(PWM0GENA)、偏移量0x060
    寄存器45:PWM1发生器 A 控制寄存器(PWM1GENA)、偏移量0x0A0
    寄存器46:PWM2发生器 A 控制寄存器(PWM2GENA)、偏移量0x0E0
    寄存器47:PWM3发生器 A 控制寄存器(PWM3GENA)、偏移量0x120

    寄存器48:PWM0发生器 B 控制寄存器(PWM0GENB)、偏移量0x064
    寄存器49:PWM1发生器 B 控制寄存器(PWM1GENB)、偏移量0x0A4
    寄存器50:PWM2发生器 B 控制寄存器(PWM2GENB)、偏移量0x0E4
    寄存器51:PWM3发生器 B 控制寄存器(PWM3GENB)、偏移量0x124

    这些寄存器根据计数器的装载输出脉冲和零输出脉冲以及比较器的比较 A 脉冲和比较 B 脉冲来控制 pwmA/B 信号的产生(PWM0GENA/B 控制 PWM 发生器0模块、依此类推)。 运行时的时钟频率
    递减计数模式中、只发生4个事件;在递增/递减计数模式下运行时、全部发生6个事件。 这些事件在产生的 PWM 信号的定位和占空比方面提供了极大的灵活性。   

    PWM0GENA/B 寄存器控制 pwm0A/B 信号的产生;PWM1GENA/B、pwm1A/B 信号;PWM2GENA/B、pwm2A/B 信号的产生; 和 PWM3GENA/B、pwm3A/B 信号。 如果零或装载事件与比较 A 或比较 B 事件相同、则采取零或装载动作、比较 A 或比较 B 忽略。 如果比较 A 事件与比较 B 事件相同、则进行比较 A 操作、比较 B 操作将被忽略。

    比较器 A/B 递增/递减时的动作
    该域指定计数器匹配时采取的动作
    在递减计数时比较器 A。
    值描述
    0x0不执行任何操作。
    0x1反相 pwmA/B.
    0x2驱动 pwmA/B 为低电平。
    0x3驱动 pwmA/B 为高电平。

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

    不能和/或不愿意"基本知识"问候、

    [报价 USER="GL"]是否是您上图中没有重叠波形的波形?[/报价]

    否-正如(此处的大多数)所同意的那样-示波器电容器显示了一个正确形成的互补 PWM 输出对-具有相等值死区的设置-施加在 PWM_A 的前沿和后沿上   (通道1)

    为您提供此类示波器电容器所需的时间/精力是为了响应您的" 其他论坛用户 现在可以 发布配置原子、以生成中心对齐的非重叠互补波形"。

    所示的两个 PWM 输出驱动一个合适的栅极驱动器(正逻辑-输入高电平有效)、该驱动器反过来为一对"功率 N-FET"提供适当的信号电平-这激发了一个 BLDC 电机的一相。   它可提供接近100安培的 BLDC 电机电流、同时(从不)证明致命的"重叠"、从而确保 Power-FET "击穿!"

    对于任何需要注意的"重叠"、两个 PWM 输出必须同时处于激活状态(即高电平)。   显然、任何此类(破坏性)重叠在此处都"根本不可见"。   "您认为(任何)重叠发生的原因是什么!"这是未知的!    并证明可能会"产生怀疑"您的其他发现和信仰...

    当您(继续)完全拒绝时、"实验"(作为学习辅助工具)-并且似乎受到"重叠识别"的挑战-您对"风暴云超越地平线"的注意事项预计会继续(长期)。

    员工/我"祝您一切顺利"-但您追求"正确"远远超出您对"更好的方法和手段"的接受范围!

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

    [引用 USER="CB1_MOBIN">否-正如(此处的大多数内容)所同意的那样-示波器电容器显示了一对正确形成的互补 PWM 输出-设置为等值死区-施加在 PWM_A 的前沿和后沿上   (CH1)[/报价]

    我们所说的情况是、发生器 CMP-A/B 产生非重叠信号、而不启用死区。 我不知道您在第2次重叠信号讨论中包含死区、图 23-5.  添加死区不会产生重叠的信号对、它只会延迟从 PWM-A 传递到它的发生器信号 我曾具体说明如何创建和生成重叠与非重叠信号、而不是使用死区。

    请尝试查找多次发布的空白 PWM 周期的解决方案、通过此 MCU 类别销毁任何生产。 为什么您认为电流放大器在使用此 MCU 时表现如此糟糕、下面的截图证明了这一点。 如果不是我的拓扑、你似乎更喜欢战斗、而不是回答问题。 然而、这个供应商应该尝试回答当 SW 写入 PWM_ENABLE 寄存器时为什么会出现空洞。

    通过 PWM_ENABLE 输出发现的奇数勘误表清楚地证明了 PWM-A 发生器输出的顺序截断。 奇怪的是、如果我们在 PWM_ENALE 寄存器上设置不同步、则几个脉冲会显示在仅 PWM-B'的空白空白区域中。  

    MAP_PWMOutputUpdateMode (PWM0_BASE、(PWM_OUT_2_BIT | PWM_OUT_3_BIT | PWM_OUT_4_BIT |
    PWM_OUT_5_BIT | PWM_OUT_6_BIT | PWM_OUT_7_BIT)、
    PWM_OUTPUT_MODE_NO_SYNC);//PWM_OUTPUT_MODE_SYNC_LOCAL
    

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

    显然、在任何相位上都不适合在中功率周期内出现电流浪涌。 请注意、CH2电流传感器放大器在多个 ADC 通道上的瞬态响应。 因此、不正确采样值的高失真表示将阻止实现精确结果的任何尝试。 然而、较快的 PWM 脉冲会使不太明显的放大器 SNR 失效、因为低通 SW 滤波器会抑制不明显的随机浪涌。

    因此,除非...,否则这个 MCU 将成为一场完美的风暴

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

    [引用 user="gL"]因此该 MCU 设置的完美风暴[/引用]

    影片《Mad Captain -无舵船》一词以某种方式逐行逐帧播放。   (在船舶的船尾上仍可看到超额写入的"BP"...)

    我们对"设计和实施重点突出且测量得当的实验"(因为我们为您提供了高度详细的指导)的"重复指导"与您的错误主张("更感兴趣的是战斗而不是回答所发布的问题")背道而驰。   我们的帖子针对"您的直接陈述"(被"引用") [作为证据]、 显然是"不符合标准"、要求对"保护他人!"提出质疑   

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

    您似乎误解了我的观点、试图建立非重叠的 PWM-A'/B'驱动器、以改变问题基线。 不能通过 CMP-A/B 实现互补信号对、如图23-5所示。 该方法通过具有 CMP-B 领先 CMP-A 接通计数的三角 PWM 时钟源明确地产生重叠信号。

    如果 PWM 时钟源是方波图23-5、则情况完全不同。 CMP-B 在上升或下降方向上没有选择、而是主导和滞后通过 CMP-A 生成的信号 但是、当我们仅配置 CMP-A 时、情况会有所不同、仅对于 CMP-B 更是如此。 较低的互补值 CMP-B 将使电流提前扫过占空比值、并使平均共享的开关电流低/高 NFETS。

    在显示的示波器捕获中、300ms 至600ms 的奇数部分是 PWM_ENABLE 寄存器位、永远不会停止切换。 然而、GPIO 高偏斜率 PWM 配置的 MCU 引脚确实具有无脉冲序列的明显空隙。 输出到 MCU 引脚的 PWM_ENABLE 信号在此期间中断。 在较高占空比下、这不是很容易检测到的、因为空位接近闭合、但电流瞬变仍然会对 ADC 样本造成严重破坏。 谁会更明智地认为 PWM 中的空洞可能导致电流浪涌、甚至看起来甚至 CB1也不会。  

    如何将值 PWM_ENABLE 寄存器位输出到具有消隐无效的 MCU 引脚、这似乎是一个棘手的难题。  

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

    [引用 user="gL"]但是、GPIO 高偏斜率 PWM 配置的 MCU 引脚确实存在明显的空隙而没有脉冲序列。您能否创建一个在标准 LaunchPad 上运行的程序来证明这一问题?

    如果是、这将允许其他人调查潜在的软件问题或器件勘误表。

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

    对于 PWM_ENABLE 如何或为何会将 GPIO 状态变为无效 MCU 引脚、我应该不解释。我已经检查了共享 GPIO 引脚的重叠或中断冲突、没有。 无论发生什么情况、栅极发生器都会将 PWM-A/B 计数到 PWM_ENABLE 寄存 器中怀疑信号无效的原因。 奇怪的是、如果输出模式更改为_No_Sync、低 PWM-B 会在空隙内获得一些脉冲。  

    我们只能查看使能状态位 PWM_ENABLE 寄存器、而不能查看 PWM-A/B 发生器信号流入或流出到封装引脚的实际传输情况。 有些事情是将计数器输出消隐至 PWM_ENABLE、而不是使能状态。 从下面的说明中可以看到、在 GPIO 引脚上的 PWM 无效期间、发生器正在同步。 这与启用全局同步更新的位 PWMCTL 不同。 测试了在每个 PWM_ENABLE 寄存器写入后启用全局且无变化。  写入 PMW_ENABLE 寄存器发生50µs 间隔@20kHz。  我的直觉告诉我发生器正在重新同步、但 PWMSYNC 状态位需要通过 LaunchPad 上的 XDS102 ICDI 快速捕获。

    寄存器3:PWM 输出使能寄存器(PWMENABLE)、偏移量0x008

    该寄存器主要控制将哪些产生的 pwmA'和 pwmB'信号输出到 MnPWMn 管脚。 通过禁用 PWM 输出、可以继续生成过程(例如、在时基同步时)、而无需将 PWM 信号驱动到引脚当该寄存器中的位被置位时、相应的 pwmA'或 pwmB'信号被传递到输出级。 当位清零时、pwmA'或 pwmB'信号被一个也传递到输出级的零值所取代。 PWMINVERT 寄存器控制输出级、因此如果该寄存器中相应的位置位、MnPWMn 信号上的值将与该寄存器中配置的值反相。 对该寄存器中位的更新可以是立即的、本地的或者全局的同步到下一次同步更新、这是由 PWMENUPD 寄存器中的 ENUPDn 域控制的。

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

    确保 PWM 同步 SW 监控器 REG4不会停止无效问题。 这仍然不能证明 PWM 发生器不会以高于 XDS102 ICDI 或 CCS 调试所能检测到的速度自动重新同步。  

    /*同步 PWM 发生器时基。 //
    HWREG (PWM0_BASE + PWM_O_SYNC)=
    (PWM_GEN_0_BIT | PWM_GEN_1_BIT | PWM_GEN_2_BIT | PWM_GEN_3_BIT);
    //
    while (!HWREG (PWM0_BASE + PWM_O_GEN_3_BIT)| PWM_GEN_3_BIT
    
    
    =~ PWM_GEN_BIT)| PWM_3_BIT = PWM_GEN_BIT 

    到目前为止、测试是在 EK-TM4C1294XL LaunchPad 上进行的。 奇怪的定制 PCB (TM4C1294KCPDT) MCU 具有更频繁的 PWM 中断(CH1)。 最近发生的一种情况是、设置为扫描或滚动的示波器水平时基可能不会在频率大于20kHz 时触发、即使示波器样本为100KSPS、10KS 深。

    重复的空隙(电流尖峰) CH2实际上可能不是零计数(CH1)、而是由>100KHz 的极高 PWM 频率组成。 唯一的了解方法可能需要在扫描或滚动模式期间触发附加频率计数器范围。  

    请注意,KCPDT 上的重复间隔为秒,NCPDT 上的重复间隔为>10秒。