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.

[参考译文] TMS570LC4357:N2HET;我可以在一个环路周期中延迟2个不同的引脚吗?

Guru**** 2394295 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1378058/tms570lc4357-n2het-can-i-delay-2-different-pins-in-one-loop-cycle

器件型号:TMS570LC4357

工具与软件:

我正在尝试使用 N2HET 对制动器进行 PWM、我的硬件具有单独的高侧和低侧 FET 驱动器、 因此我必须确保两个 FET 不同时导通(本质上是软件死区时间)。

忽略 CNT 和 BR 指令、我的 N2HET 代码如下所示:

1.使用 ECMP (DATA = 0)、在 HR 延迟后将低侧置为开启
2.使用 ECMP (DATA = 0)立即将高侧关闭
3.使用 MCMP(主机设定数据),将低侧关闭——如果为真,执行下一条语句
4.使用 MCMP (DATA = 0)、将高侧设置为 HR 延迟后开启

除 ECMP 延迟外、这一切都有效。
如果我仅为 MCMP 添加延迟、则后沿会完全延迟。
如果我向第一个 ECMP 添加相同的延迟、低侧永远不会被清除(始终设置)

我有2个问题:
1.是否允许在一个 LRP 中有2 hr_delays? TRM 有点不清楚。 它看起来像2
HR_DELAY 只要在单独的引脚上就可以了。
2. ECMP 延迟是否以某种方式跳过下一个低侧 MCMP (因为延迟为1/2 LRP)?

谢谢!
吉姆

以下是我的实际 N2HET 代码:
l00 CNT{reqnum=0、request=NOREQ、reg=A、irq=off、max=PWM_period};
L01 ECMP{NEX=L02、hr_LR=高电平、en_pin_action=on、cond_addr=L02、pin=PWM_BRAKEALO、
action=set、reg=A、IRQ=off、data=0、hr_data=64};
L02 ECMP{next=L03、hr_LR=low、en_pin_action=on、cond_addr=L03、pin=PWM_BRAKEAHI、
action=clear、reg=A、IRQ=off、data=0、hr_data=0};
L03 MCMP{next=L05、hr_LR=low、en_pin_action=on、cond_addr=L04、pin=PWM_BRAKEALO、
action=clear、reg=A、IRQ=off、data=init_compare、hr_data=0、 order=REG_GE_DATA};
L04 MCMP{NEX=L05、hr_LR=高电平、en_pin_action=on、cond_addr=L05、pin=PWM_BRAKEAHI、
action=set、reg=A、IRQ=off、data=0、hr_data=64、 order=REG_GE_DATA};
L05 BR{next= L00、cond_addr=L00、event= NOCOND}

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

    您可以在一个环路分辨率周期(LRP)内具有两个高分辨率延迟(hr_delays)、只要它们位于单独的引脚上即可。  ECMP 延迟可能会导致时序问题、从而导致跳过低侧 MCMP。