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.

[参考译文] TMS320F28388D:在修改 ePWM 和交叉输出后无 CLB 输出

Guru**** 1700900 points
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1200253/tms320f28388d-no-clb-output-after-modifying-epwm-and-intersecting-output

器件型号:TMS320F28388D
Thread 中讨论的其他器件:SysConfigC2000WARE

大家好

我将使用 DB 模块生成互补 ePWM、但希望在 EPWM1B 输出到引脚之前对其进行修改。 为了让问题简单易行、在逻辑块中、我刚才进行了"与"运算

 输入 i0信号(EPWM1B)的值为1。 如果我   根据下表将 CLB 覆盖设置为输出2 (EPWM1B)、 那么当我只需要 A 时、我获取的是 EPWM1B 引脚上出现的连续低电平

原始输入 EPWM1B 信号的副本。  如果我将覆盖项设置为输出0、EPWM1A 引脚也会变为低电平、但看到与 EPWM1B 转换相匹配的良好脉冲。 随附屏幕截图。

如果我没有分配覆盖输出、则 EPWM1A 和1B 在相应引脚上显示为"不变"PWM。

 作为  

   

最终、我需要使用 CMPSS1来修改 EPWM1B、如下面的 CLB 设置所示。 这可能发生在 TZ 模块之前或之后、因为我只对这两个信号进行与操作。 但我不能

甚至在忽略我分配给 CMPSS1的 i1 (AUXSIG0)时让它运行。 我 在交叉输出上广泛复制了 clb_ex12、但看不到我出错了。

我会 注意到、我  在不使用 SysConfig 的情况下设置 EPWM1和 CMPSS1、而是直接使用 driverlib。  

 有人能看出我可能做错了什么吗?

谢谢

Andrew

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

    我还要补充一点、上述操作是在我们自己的28388D 控制板上完成的。 28388D 控制卡上也会发生同样的情况。  而且、如果我运行的话 clb_ex12_output_intersect 从控制卡上的 C2000ware 4.01中、我只能看到 EPWM1A 和2A 上的低电平和高电平、而且根本没有 PWM、因此、我假设在一般情况下某个装置未正确设置。

    Andrew

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

    Andrew、您好!

    感谢您访问 E2E 论坛。

    作为一般调试说明、您要确保在您的程序代码中初始化和启用 CLB? CLB 输入配置看起来正确、我没有看到任何问题。

    对于逻辑块配置、您要将 LUT0的输出设置为"i0 & 1"。 或者、您能否尝试将 i2设置为1、然后将 LUT0的输出更改为"i0 & i2"。 您将获得一些有关输出中路由常量的警告、但您只需忽略该警告即可。 过去我就是通过这种方式将常量路由到输出中、因此我不确定 CLB 工具是否允许在输出字段中仅输入"0"或"1"。

    此致、

    彼得

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

    你(Peter)好

    感谢您的答复。 首先、我想举个例子 clb_ex12_output_intersect  非常重要。 我刚刚下载了 CCS12.2以及 SysConfig_1.15 (在我具有1.13之前)。 我还从下载最新的 C2000Ware 4.03获取示例。 一切都是最新的支架。 但 在28388D 控制卡上、EPWM1A 未显示任何内容。 我查看 controlCARD 适配器板上的引脚49。 没有 ePWM 信号。 在我看来、观察示例代码 EPWM2A 时、 其占空比发生变化、当与 EPWM3A 执行"与"运算并置于 EPWM1A 时、我应该看到一些东西。

    我开始相信 Christian Peters 在 这篇文章中指出、 操作单个 ePWM 不能完成:

    TMS320F28388D:如果配置了 ePWM1、CLB 将不起作用- C2000微控制器论坛- C2000 ︎ 微控制器- TI E2E 支持论坛

    您能建议我应该看到的内容、以及为什么该示例不会产生 任何 输出吗? TI 是否有人可以 验证示例?

    此致

    Andrew  

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

    Andrew、您好!

    没有为这个 CLB ex12示例获得正确的输出、请允许我花一些时间来调试这个问题。 我认为对于本示例、ePWM 配置不正确。 您能尝试 通过我们的 C2000 Academy 运行 CLB Lab 示例吗、网址为: https://dev.ti.com/tirex/explore/content/c2000_academy_2_03_00_43_all/modules/c2000_academy_lab/advanced_topics/clb_lab/c2000_lab_clb.html

    本实验示例还使用了带 EPWM 外设的输出覆盖、并且我已经对此示例进行了全面测试。 您可以在 C:\ti\c2000\c2000\C2000Ware_4_03_00_00\training\device\f2838x\advance_topics\lab_clb 中找到 CCS 文件

    此致、

    彼得

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

    你(Peter)好

    我的培训示例很好。 我还"手动"配置了 EPWM1B、使用 driverlib 作为具有死区的 EPWM1A 的补充。 当我禁用 EPWM1A 通过 CLB 时、EPWM1A 变为零、EPWM1B 保持预期状态。

    这是 非常 鼓励并接近我们的需要。 我希望你能找到与 ex_12的问题,因为这个原因,我不愿意说解决。 问题是一周结束时、我要休假3周、并想将我在 S/W 的同事了解到的信息传递给他们 在此之前是否有机会解决 ex 12的问题? 了解关键缺失步骤是/是什么将会有所帮助。

    此致

    Andrew

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

    Andrew、您好!

    我仍在调试这个问题。 不幸的是,我认为我目前还没有完全解决这一问题。  从初始测试来看、我的想法 仍然是 PWM 配置不正确、因为我已经尝试删除 CLB 依赖项、但仍然没有看到任何输出切换。 在您的示例中、如果您发现 CLB 覆盖功能在使用 DriverLib 配置 EPWM 信号的情况下正常工作、则可能是 SysConfig 问题。 您能否验证 SysConfig ePWM 配置和 DriverLib ePWM 配置之间的配置差异是否相同?

    此致、

    彼得

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

    你(Peter)好

    我将尝试该功能。 同时、我可以说、如果我略微更改培训示例并在 SysConfig 中设置 EPW1A 和1B、那么我可以相交/覆盖 EPWM1A 输出(Output0)正常、 无论我是否将输入 i1分配为 EPWM1A 或 EPWM1B、覆盖都只能正常工作。 但不起作用的是尝试相交/覆盖 EPWM1B (output2)。 我只是将覆盖输出设置为 output2、则不会获得任何 PWM 输出。 如果 i0设为 EPWM1A 或 EPWM1B、则无关紧要。

    此致

    Andrew

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

    Andrew、您好!

    我发现了问题! 这是我的一个疏忽,因为当你发送你原来的信息时,没有注意到这一点。

    CLB 输出覆盖的工作方式是、指定的 OUTLUT 输出用于覆盖外设输出。  

    从 TRM 中、您会注意到、第一个输出覆盖(SysConfig 中的输出0)被命名为 CLB1_OUT0_0、对应于 EPWM1的 PWMA。 选择"Output 0"进行覆盖时、即意味着 CLB1获取 OUTLUT 0的输出并用其覆盖 EPWM1A 输出。

    相应的输出会直接连接到 CLB 实例的相应 OUTLUT 输出。 在我发送的实验中、如果改为在 OUTLUT1中设置输出并在 SysConfig 中对输出0启用覆盖、则将无法在 EPWM1A 引脚上看到正确的输出。 这是因为它获取了 OUTLUT0的输出并用其覆盖 EPWM1A。

    如果要覆盖 EPWM1B、则输出必须在 CLB1的 OUTLUT 2中。 然后、您可以选择覆盖输出2、并且应该在 EPWM1B 引脚上看到正确的输出。

    此致、

    彼得

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

    你(Peter)好

    昨天晚上,我突然变得清楚了,我也做了什么错-和你张贴的一样。  逻辑块中设置的 OUTLUT 与  CLB 输出覆盖中设置的内容有很接近的映射。 为了与 EPWM1B 相交、我一直在使用 OUTLUT_0来尝试在 CLB 设置中连接到输出2。 就像您说的那样使用 OUTLUT_2。  也许我在下面的图片(对 CLB1有效)也对其他人有所帮助。

    非常感谢您的努力。

    Andrew