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.

[参考译文] TMS320F28335:TMS320F28335

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1536923/tms320f28335-tms320f28335

器件型号:TMS320F28335

工具/软件:

您好、

我正在使用 F28335 MCU、 具有 ePWM 的代码运行正常、现在想要实现 HRPWM。

我正在使用 SFO_TI_BUILD_V5B_FPU 和 SFO_V5 头文件。 ePWM[5]模块用于  通过函数 SFO_MepDis_V5 (5) 校准 MEP_ScaleFactor。

运行代码时、

在初始化期间、 MEP_ScaleFactor[5]中的值变为 51 (SYSCLKOUT = 144MHz、PWM 频率= 10kHz)。

之后、 MEP_ScaleFactor[5]变为 32767。

校准期间、函数 SFO_MepDisV5 (5) 的 MEP_ScaleFactor 值将达到非常高的值 32767。

此致、

S. Balaramkumar

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

    您好:

     更多有关 SFO_TI_BUILD_V5.lib 的信息、请参阅器件 TRM 的第 4.2.4 章“比例因子优化软件 (SFO) “。:www.ti.com/.../sprui07.pdf

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

    您好、  

    感谢您提供 TRM。 我通过这个文档、您能解释一下 TRM 第 339 页中的代码片段。

    main()

    //用户代码
    //案例 1:ePWM1、2、3、4 在 HRPWM 模式下运行
    SFO_MepEn (1);//这两个函数均启用
    SFO_MepEn (2);//相应的 MEP 诊断逻辑
    SFO_MepEn (3);//并返回 MEP 比例因子值
    SFO_MepEn (4);
    MEP_SaleFactor1 = MEP_ScaleFactor[1];//用于 ePWM1
    MEP_ScaleFactor2 = MEP_ScaleFactor[2];//用于 ePWM2
    MEP_SaleFactor3 = MEP_ScaleFactor[3];//用于 ePWM3
    MEP_SaleFactor4 = MEP_ScaleFactor[4];//用于 ePWM4
    // CASE2:ePWM1、2、3 仅在 HRPWM 模式下运行。
    其中一个 ePWM 通道(以 ePWM4 为例)用于
    比例因子校准
    //此处最小占空比限制为 3 个时钟周期。
    //
    // HRPWM 4 MEP 诊断电路用于估算 MEP 步长
    //假设所有 HRPWM 通道的行为相似
    //但可能不相同。
    SFO_MepDis (4);//使用 ePWM4 执行 MEP 步长
    MEP_SaleFactor1 = MEP_ScaleFactor[4];//用于 ePWM1
    MEP_ScaleFactor2 = MEP_ScaleFactor1 //用于 ePWM2
    MEP_SaleFactor3 = MEP_SaleFactor1 //用于 ePWM3
    MEP_SaleFactor4 = MEP_SaleFactor1 //用于 ePWM4

    根据上面的代码、如果我们运行下面的行、我假设在无限循环中(它将在每个循环中执行,即每 100 μ s 执行一次)

    SFO_MepEn (1);

    该函数将在几个周期内优化 MEP_SscaleFactor 值。 获得优化后、它会将新值传输到  MEP_ScaleFactor 变量中。  

    我是否理解正确、请纠正我?

    假设我们 在优化前读取 MEP_SaleFactor、它将给出什么值?

    此致、

    S. Balaramkumar

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

    您好:

    在代码片段中、 MEP_ScaleFactor 只有在为 ePWM 通道 4 启用 MEP 诊断逻辑后、变量才会更新为优化值、并使用 HRPWM 4 MEP 诊断电路计算该值。 这表明 MEP_ScaleFactor 变量在优化过程完成后更新。

    因此、MEP_ScaleFactor 变量存储 MEP 比例因子的当前值。 SFO_MepEn (1) 函数读取 MEP_ScaleFactor 寄存器的当前值、并将其返回为 MEP 比例因子值。
    当 MEP 诊断逻辑被启用和禁用并且 MEP 比例因子值被优化时、MEP ScaleFactor 变量会动态更新。
    如果在优化过程之前读取 MEP_ScaleFactor 变量、则将给出 MEP 比例因子的初始值、该值可能不是最优值。

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

    您好、  

     当我们使用 SFO_MepDisV5 时、问题是 MEP_SaleFactor[5]变为 32767 。

    从之前的 TI 论坛讨论中可以看出、问题源于库文件 SFO_TI_BUILD_V5B_FPU 版本。

    如果我使用库 SFO_TI_BUILD_V5_FPU、则 SFO_MepDisV5 可以正常工作、并在运行期间提供几乎相同的优化值。

    因此、最终结论是使用库文件 SFO_TI_BUILD_V5_FPU、 SFO_MepDisV5 和 SFO_MepEnV5 都可以正常工作。

    使用 SFO_TI_BUILD_V5B_FPU 时、仅 SFO_MepEnV5 可以正常工作。

    此致、

     S. Balaramkumar

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

    您好:

    TMS320F28335 是较旧的器件、请使用第 3 代器件以避免库和优化出现任何问题。

    此致、