工具与软件:
我正在尝试使用 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}