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.

[参考译文] TMS570LS3137:TMS570LS3137:如何通过 HET IDE 工具生成20个 PWM? 是否有任何示例?

Guru**** 2562120 points
Other Parts Discussed in Thread: HALCOGEN, TMS570LS3137

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1031446/tms570ls3137-tms570ls3137-how-to-generate-20-pwms-by-het-ide-tool-are-there-any-examples

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

我想将20个 PWM 配置为 TMS570LS3137的输出、但 HALCOGEN 工具不支持它。 我使用 HET IDE 工具配置 PWM 生成、但配置结果不正确。 您是否有类似的 HET IDE 示例或告诉我如何配置以获得我想要的结果?

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

    你好、Lijian、

    IDE 包含几个生成 PWM 的示例:1通道、3通道和4通道。 我没有20个 PWM 的现成示例。

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

    你好,王先生

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

    你好,王先生

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

    你好,王先生

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

    你好,王先生

    我知道您的演示内容。 实际上、HET-IDE 生成的存储器内容与  HALCOGEN 不同。 我是指 pwm0-pwm7。 因此、我尝试直接修改 het.c、以便根据 HALCOGEN 生成的现有内容获得第9个 PWM。 我只修改了 PWCNM、DJZ、MOV64 (周期更新和占空比)。 之后结果不佳、pwm0-pwm7未输出、第9个 PWM 也不输出。 我想知道如何直接修改 het.c。 我认为这是与 HET-IDE 的快速比较。 我想控制许多步进电机、因此20个 PWM 是我的项目中必须使用的。 感谢您的帮助。

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

    你好、Lijian、

    请勿手动修改 HAlCOGen 生成的代码。 请使用 HET IDE 生成 C 代码和头文件、然后将 IDE 生成的 C 代码复制到 NHET RAM。

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

    您好、王先生、很抱歉在过去的一段时间里没有回复您。您告诉我、我使用 HET-IDE 工具来生成多通道 PWM。 由于使用了此工具、实际上 HAL 工具不使用 het.c 文件、而是使用 het-IDE 生成的相关文件。 这会阻止我使用 pwmSetDuty 函数来更改 PWM 占空比。 实际上、我尝试使用此函数、但没有任何效果。 初始化的占空比不变。 因此、我想知道在 HET-IDE 工具生成 PWM 波形后如何调整项目中的占空比。

    谢谢

     王联健

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

     我在 HET-IDE 工具中设置占空比为50%的8通道 PWM。 当我尝试更改程序中的占空比时、如图所示、我使用了 pwmSetDuty 函数、但它没有效果。 占空比没有变化。 我是否设置了错误的参数? 此函数的第二个参数是否取决于设置 et-IDE 的顺序? 或者、这个函数不能与 HET-IDE 一同使用吗?

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

    你好、Lijian、

    通常、我们使用 ECMP 生成 PWM 信号、并使用 MOV32或 MOV64更新占空比。 通过直接更改 ECMP 的数据字段来更新占空比将导致丢失脉冲。  

    HET IDE 生成 C 文件。 您需要将 HALCOGen 生成的默认代码(het1PROGRAM[])替换为 HET IDE 生成的 c 文件(HET_INIT0_PST[])。

    由 HAlCoGen 生成的代码:

    静态常量 hetINSTRUCTION_t het1PROGRAM[58U]=

     。

    HET IDE 生成的代码:

    HET_MEMORY CONST HET_INIT0_PST[4]=

       …

    您需要将  HET_MEMORY CONST HET_INIT0_PST[4]复制到项目中、并在 het.c 中更改 memcpy

    更改:

      (void) memcpy ((void *) hetRAM1、(const void *) het1PROGRAM、sizeof (het1PROGRAM));

    至:

      (void) memcpy ((void *) hetRAM1、(const void *) HET_INIT0_PST、sizeof (HET_INIT0_PST));

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

    您不能直接使用 API 来更改占空比。

    在 HALCoGen 生成的代码中、更改 PWM 占空比的指令为 (PWM << 1U)+ 41U、这是"此 PWM 的 MOV64指令"

    对于 HET IDE 生成的代码(示例如下)、指令为 L01

    ;在周期结束时具有同步占空比更新的 PWM
    l00 CNT{reg=a、IRQ=off、max=10}
    L01 MOV32{remote=l02、z_cond = on、type=IMTOREG&REM、reg=none、data=1、 HR_DATA=20};CPU 写入此数据字段
    L02 ECMP{en_pin_action=on、pin=0、action=PULSELO、reg=a、data=2、 HR_DATA=80}
    L03 BR{NEXT = L00、COND_ADDR=L00、EVENT= NOCOND}