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 时序

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

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/820899/tms570ls3137-tms570ls3137-synchronizing-het-timing-on-two-devices

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

大家好、

我在 TMS570LS3137上运行一个16kHz 的三相对称 PWM。
HET 代码基于 TI 的示例、该示例在该论坛的多个修订版中发布。

我的主要新增功能是生成 ISR 和 ADC 触发(32kHz 时)以及旋转变压器激励(8kHz 时)的其他几个计时器。

下面是一个代码 snip:

;--- 程序入口点
   
   ;处于循环中将所有引脚初始化为输出低电平,并清除计数器和状态(NXTxLOON)
         ;直到软件通过写入非零数据来启用 PWM 程序
启动    SUB  {src1 = IMM、src2 =零、dest=none、data=0、hr_data=0}
   br   {event=NZ、COND_addr= TBASEINT}
   添加  {src1 = IMM、src2 =零、dest=T、rdest=REM、remote=TBASE1、 DATA=1FFFFFFh、hr_data=0}
   MOV64{en_pin_action=on、 reg=T、pin=PEROUT、action=clear、data=0、 HR_DATA=0、COND_addr=PERSET、REMOTE =PERPIN、COMP_MODE=ECMP}
   添加  {src1 =零、src2 =零、dest=none、rdest=REM、data=0、 HR_DATA=0、REMOTE =PERCLR}
   添加  {src1 =零、src2 =零、dest=none、rdest=REM、data=0、 HR_DATA=0、REMOTE =NXTALOON}
   添加  {src1 =零、src2 =零、dest=none、rdest=REM、data=0、 HR_DATA=0、REMOTE =NXTBLOON}
   添加  {src1 =零、src2 =零、dest=none、rdest=REM、data=0、 HR_DATA=0、REMOTE =NXTCLOON、NEX=AHIONINIT}

;中断:应用程序定时的主计数器
TBASEINT CNT  {reg = A、max = defperint、data = defdladc}
;ADC:下降沿将触发 ADC 采样(请参阅 HALCoGen ADC 事件组设置),重要提示:启用此行以在 HALCoGen HET 设置中生成中断!!!
ADCCTRL  ECMP {reg = A、IRQ = on、en_pin_action = on、hr_lr = HIGH、pin = defpinadc、 操作= PULSELO、数据= defdcadclr、hr_data = defdcadchr}
; ADC:与 ADC 触发器进行相同的比较,但没有 IRQ,并且在不同的引脚上下降以支持调试
ADCTEST  ECMP {reg = A、en_pin_action = on、hr_lr = HIGH、pin = defpintest、action = PULSELO、 数据= defdcadclr、hr_data = defdcadchr}
;旋转变压器:重要:我们使用不同的计时器!!!
TBASERES CNT {reg = B、max = deferres、data = defdlres}
RESCTRL  ECMP{reg = B、en_pin_action = on、hr_lr= HIGH、pin = defpinres、action = PULSELO、 数据= defdcreslr、hr_data = defdcreshr}

TBASE1   CNT  {comp=GE、reg=T、max=cntmax_LR、data=1FFFFFFh};
(笑声)

新的项目要求是同步两个完全相同的反相器的 PWM (每个反相器都使用自己的 TMS570)。

要实现这一点的总体算法仍在开发中、但最后我需要做的是在线更改计时器的所有周期和相移寄存器!

HETGCR.CMS[16]看起来很有希望、但似乎只对片上产品有所帮助...


是否有任何关于调整 HET 计划的想法或提示?

此致、
Ralph

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

    您好 Ralph、

    你是对的。 同步机制只适用于同一芯片的 N2HET1和 N2HET2。 主控模式中的 N2HET 提供一个信号来同步受控 N2HET 的预分频器。 从器件 N2HET 将其环路分辨率与主器件发送的环路分辨率信号同步。 SYNC 信号不会路由到任何信号引脚。

    无法在不同的芯片上同步两个 N2HET 模块。 LS12x/LC43x 器件上的 ePWM 确实支持外部同步信号。

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

    QJ Wang、您好!

    你的回答 证实了我的恐惧。 因此、我必须这么做:命名一个反相主器件和另一个从器 件、使用主器件的同步脉冲来捕获从器件中的计时器、并使用闭环控制来最小化时序之间的间隙。 正如在原始帖子中所写的那样、这会导致在 HET 程序运行时更改所有 CNT 计时器(周期和相移)的问题。 这是我目前…的奋斗点 有什么想法吗?

    此致、

    Ralph

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

    您好 Ralph、

    是否可以同时使用一个外部信号来触发一个 N2HET 指令?

    启动后、NHET 代码执行1或2条指令、等待触发启动计数器并生成 PWM

    两个 MCU 在 GIO 或 NHET 引脚上输出一个脉冲。 例如 MCU0-GIOA[0]、MCU1-GIOA[1]

    GIOA[0]和 GIOA[1]作为输入连接到逻辑门、栅极输出馈送到 MCU0和 MCI1的一个 NHET 引脚(例如 N2HET1[0])

    N2HET1[0]的上升沿或下降触发一条指令来启动计数器。 以触发一个 BR 指令

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

    QJ Wang、您好!

    我的要求是在程序运行时反复执行同步、即补偿石英频率偏差。
    您是否认为您描述的过程也可以处理此问题?

    此致、
    Ralph

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

    您好、Ralph、

    这种方法无法补偿石英频率偏差、并且可能不适合 在 NHET 中运行程序(整个环路)。

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

    拉尔夫

    如果我理解正确、那么您正在寻找能够测量输入信号上频率偏差的方法、然后使用此测量方法来调整用于输出比较功能的 HET 程序内的计数器。 是这样吗?

    这当然可以使用 N2HET 支持的指令来实现。 不幸的是,我们没有一个我可以轻易提供的例子。 我们确实提供了一些基于 HET IDE 的应用手册、您可以将其用作参考。

    此致、Sunil

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

    您好、Sunil、

    是的、您完全描述了我要做的事情。

    我希望这项任务已经通过 HET 解决了、我可以采取一种捷径。

    我知道公共 HET 应用手册、但仍然发现 HET 编程复杂。

    但是、好的、我必须走很长的路。 我一定会回来回答有关该主题的更详细的问题:-)

    此致、

    Ralph