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.

[参考译文] RM57L843:HET 模块如何生成具有不同相移的脉冲信号?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1166897/rm57l843-how-does-the-het-module-generate-pulse-signals-with-different-phase-shifts

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

大家好、

N2HET 模块可生成具有不同占空比的脉冲信号、客户想知道如何将不同的相移应用于这些脉冲信号?  

谢谢。

此致、

樱桃

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

    脉冲宽度为 PWCNT 指令(数据-1 )*LRP

    周期为 DJZ 指令(DATA + 1)* LRP

    两个信号之间的延迟:子指令(数据)*LRP

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

    您好、QJ:

    感谢您的答复。

    通过比较旧代码和发送给我的新代码、它们之间有两处变化。 您能确认吗?

    1.将"max"的值从"0x1FFFFFF"更改为"374998"。

    2.说明 L017从你刚发给我的新代码中删除。 (这似乎不合理。)

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. "max"的值从"0x1FFFFFF"更改为"374998"。

    可以

    2. 指示 L017已从你刚发给我的新代码中删除。 (似乎不合理。)

    是、已删除 L017  

    L06也被删除。

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

    问题1:如果 L06也被删除,如何在 L05中重新分配 con_addr 的值?

    问题2:如果移除了 L06和 L016、如何设置第二个波形的周期?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    问题1:如果 L06也已删除,如何在 L05中重新分配 con_addr 的值?

    L05中的地址应该为 L013  

    问题2:如果删除了 L06和 L016,如何为第二个波形设置周期?

    这和第一个信号一样。 2个信号之间仅需延迟。

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

    让我首先验证您的解决方案、并在 Chinse 新年后向您提供反馈。 再次感谢。

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

    ;PWM 编码对应给定的 HCLK 频率= 150MHz、VCLK2=75MHz、hr=1且 LR=32、因此 LRP=426.67ns
    ;Pulse Width = 600us、PWCNT Data=1407、Period = 160ms、DJZ DATA=374998
    ;两个 PWM 信号之间的延迟为2ms,subdata=4687
    l00 CNT{reg=a、max=374998、data=0};

    L01 PWCNT{next=L02、hr_lr=high、cond_addr=L02、en_pin_action=on、pin=0、action=PULSEHI、reg=none、data=1407、hr_data=0};;pulse width=(data-1)* LRP
    L02 DJZ{next=L03、COND_addr=L014、reg=none、data=374998};;;脉冲周期=(DATA+1)* LRP

    l03 sub{src1=IMM、src2=a、dest=none、next=L04、data=4687};
    L04 BR{next=L00、COND_addr=L05、event=N};;N 为负值

    L05 PWCNT{next=l013、hr_lr=high、COND_addr=l013、en_pin_action=on、pin=1、action=PULSEHI、reg=none、data=1407、hr_data=0};

    L013 BR{next=L00、COND_addr=L00、EVENT=NOCOND};

    L014 MOV64{next=L015、remote=L01、control=off、en_pin_action=on、cond_addr=L02、pin=0、comp_mode=ecmp、action=PULSEHI、reg=none、data=1407、hr_data=0};
    L015 MOV64{next=L016、remote=L02、control=off、en_pin_action=on、cond_addr=L014、pin=0、comp_mode=ecmp、action=PULSEHI、reg=none、data=374998、hr_data=0};

    l016 MOV64{next=L013、remote=l05、control=off、en_pin_action=on、cond_addr=L013、pin=1、comp_mode=ecmp、action=PULSEHI、reg=none、data=1407、hr_data=0};

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

    您好、QJ:

    我根据您的解决方案修改了汇编器代码、但它 在 HET IDE 仿真器上似乎不起作用。

    正如我所担心的、第二个波形 是非周期性的。  两个信号之间未实现相移。

     

    如果我使其返回到您给我的上一步、就可以捕获预期的波形。 但在应用中无法持续超过30秒。

    您能帮助您再次检查最新的解决方案吗? 谢谢。

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

    您忘记更改 L00指令中的最大值:

    l00 CNT{reg=a、max=10、data=0};

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

    谢谢。 该程序现在可以在仿真器上工作。 春节后我会在 RM57芯片上验证

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

    干得不错。  

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

    您好、QJ:

    在我对 RM57芯片进行验证之后、以下代码可用于在两个信号之间生成相移。  

    我还有另一个问题、如何根据上述程序在第二个信号之后添加具有相同相移的第三个信号?

    非常感谢!

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

    您好、QJ:

    我多次尝试通过运行仿真器程序来实现它、但失败了。 请帮助更正我的汇编程序、如下所示:

    非常感谢。

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

    我很高兴您让第二个信号的相移起作用。  

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

    您可以使用相同的方法来调整第3个信号的相移。 请阅读 NHET 指令的描述:PWCNT、MOV64、