Other Parts Discussed in Thread: HALCOGEN, TMS570LS3137
主题中讨论的其他器件:HALCOGEN、
我想将20个 PWM 配置为 TMS570LS3137的输出、但 HALCOGEN 工具不支持它。 我使用 HET IDE 工具配置 PWM 生成、但配置结果不正确。 您是否有类似的 HET IDE 示例或告诉我如何配置以获得我想要的结果?
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.
Other Parts Discussed in Thread: HALCOGEN, TMS570LS3137
我想将20个 PWM 配置为 TMS570LS3137的输出、但 HALCOGEN 工具不支持它。 我使用 HET IDE 工具配置 PWM 生成、但配置结果不正确。 您是否有类似的 HET IDE 示例或告诉我如何配置以获得我想要的结果?
你好,王先生
我知道您的演示内容。 实际上、HET-IDE 生成的存储器内容与 HALCOGEN 不同。 我是指 pwm0-pwm7。 因此、我尝试直接修改 het.c、以便根据 HALCOGEN 生成的现有内容获得第9个 PWM。 我只修改了 PWCNM、DJZ、MOV64 (周期更新和占空比)。 之后结果不佳、pwm0-pwm7未输出、第9个 PWM 也不输出。 我想知道如何直接修改 het.c。 我认为这是与 HET-IDE 的快速比较。 我想控制许多步进电机、因此20个 PWM 是我的项目中必须使用的。 感谢您的帮助。
您好、王先生、很抱歉在过去的一段时间里没有回复您。您告诉我、我使用 HET-IDE 工具来生成多通道 PWM。 由于使用了此工具、实际上 HAL 工具不使用 het.c 文件、而是使用 het-IDE 生成的相关文件。 这会阻止我使用 pwmSetDuty 函数来更改 PWM 占空比。 实际上、我尝试使用此函数、但没有任何效果。 初始化的占空比不变。 因此、我想知道在 HET-IDE 工具生成 PWM 波形后如何调整项目中的占空比。
谢谢
王联健
你好、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}