芯驰 E3620 XTRG 配置笔记:EB 配置、典型实例与注意事项

前言

在芯驰 E3620 的外设配置中,经常会遇到下面这些需求:

text 复制代码
eTimer / GTM → GPIO 输出

外部 IO → eTimer / GTM Capture

PWM / eTimer / GTM → ADC 硬件触发

软件事件 → eTimer 同步

XTRG1 → XTRG2 跨控制器传递信号

这些功能表面上属于不同模块,但中间往往都会经过一个共同模块:

text 复制代码
XTRG

刚开始接触 XTRG 时,容易被 Sig_i、Sig_o、SSIG、TmuxDrt、TmuxIndrt 等概念绕晕。

其实只要抓住一个核心:

XTRG 本质上就是芯片内部的"信号路由器"。

本文按照实际工程配置的思路进行整理:

text 复制代码
认识 XTRG
     ↓
了解 EB 配置页面
     ↓
根据实际需求选择配置项
     ↓
结合典型实例完成配置
     ↓
最后检查常见问题

1. XTRG 功能摘要

1.1 XTRG 是什么?

XTRG 全称:

text 复制代码
Cross Trigger

它负责将芯片内部不同外设产生的信号进行路由、组合和触发,从而实现外设之间的硬件联动。

E3620 的 XTRG 可以连接 ETIMER、EPWM、ADC、I/O Pad 等模块,并且芯片内部包含两个独立的 XTRG Controller。

可以把它简单理解为:

text 复制代码
         信号源
            │
            ▼
     ┌──────────────┐
     │     XTRG     │
     │              │
     │  路由 / MUX  │
     │  同步 / 逻辑 │
     │  触发 / 滤波 │
     └──────────────┘
            │
            ▼
         目标模块

例如:

text 复制代码
eTimer
  │
  ▼
XTRG
  │
  ▼
GPIO

或者:

text 复制代码
PWM / eTimer
      │
      ▼
     XTRG
      │
      ▼
     ADC

又或者:

text 复制代码
External IO
     │
     ▼
    XTRG
     │
     ▼
GTM / eTimer Capture

所以配置 XTRG 时,第一步不是去研究 EB 中每一个参数,而是先回答:

text 复制代码
1. 信号从哪里来?
2. 信号最终要去哪里?

只要这两个问题明确,XTRG 的配置方向基本就确定了。


1.2 E3620 有两个 XTRG Controller

E3620 内部存在:

text 复制代码
XTRG1
XTRG2

因此在配置之前,还需要确认:

text 复制代码
当前信号属于哪个 XTRG Controller?

如果信号源和目标分别位于不同的 XTRG Controller,还需要通过跨 XTRG 路由:

text 复制代码
XTRG1
   │
   ▼
INTER_XTRG_OUT
   │
   ▼
INTER_XTRG_IN
   │
   ▼
XTRG2

1.3 XTRG 中常见的信号类型

手册中主要涉及以下几类输入信号组:

text 复制代码
SIG_I
SYNC_I
TRG_I
IO_I
TID_I

另外在实际配置中还会经常看到:

信号 简单理解
SIG_I 普通内部功能信号
SYNC_I 同步事件相关信号
TRG_I Trigger 相关信号
IO_I XTRG IO 输入
TID_I ADC Trigger ID 相关信号
SSIG Signal Matrix 运算后的输出
SWT_I Software Trigger 产生的信号
INTER_XTRG_IN 另一个 XTRG Controller 传来的信号

实际开发不需要一开始把全部信号编号背下来。

更重要的是先理解:

text 复制代码
Source
  ↓
XTRG 中间路由
  ↓
Destination

1.4 常见功能应该使用哪个配置模块?

先给出一个快速对应关系:

需求 XTRG 主要配置
内部外设信号互相路由 SigOutConfig
eTimer/GTM 信号输出到 IO IOOutConfig
XTRG1 与 XTRG2 之间传递信号 InterOutConfig
eTimer 同步、Set、Clear、Snap SyncmuxConfig
多路信号进行逻辑组合 SignalMatrixConfig
软件产生触发事件 SwtConfig
硬件触发 ADC TmuxDrtConfig / TmuxIndrtConfig
外部 IO 去毛刺/过滤 IOFilterConfig
XTRG 信号触发 DMA TrigDMACfg
功能安全信号监控 SmonFirstMuxCfg / SmonSecondMuxCfg
信号 Watchdog SwdtCfg

后面看 EB 配置页面时,只需要围绕这张表去理解即可。


2. EB 中 XTRG 的配置结构

E3620 的 XTRG 在 EB 中大致可以看成:

text 复制代码
XTRG
│
├── General
│
└── XTRGController
    │
    ├── General
    │
    ├── SigOutConfig
    ├── IOOutConfig
    ├── InterOutConfig
    ├── SyncmuxConfig
    │
    ├── SignalMatrixConfig
    ├── SwtConfig
    │
    ├── TmuxDrtConfig
    ├── TmuxIndrtConfig
    │
    ├── IOFilterConfig
    ├── TrigDMACfg
    │
    ├── SmonFirstMuxCfg
    ├── SmonSecondMuxCfg
    └── SwdtCfg

实际项目并不需要全部配置。

只配置当前信号链真正需要经过的模块。


3. General 配置

XTRG 顶层 General 主要有:

text 复制代码
XTRGDevErrorDetect
XTRGSafetyEnable

含义如下:

参数 含义
XTRGDevErrorDetect DET Error Report 开关
XTRGSafetyEnable Safety Report 开关

这两个配置主要和工程的错误检测以及 Functional Safety 策略有关。


4. XTRGController General

进入具体 Controller 后,首先会看到:

text 复制代码
ControllerId
XTRGNotification

手册中的 EB 页面说明,ControllerId 用来选择 XTRG1/XTRG2,XTRGNotification 用于配置 XTRG 回调函数。

4.1 ControllerId

选择当前配置属于:

text 复制代码
XTRG1

或者:

text 复制代码
XTRG2

4.2 XTRGNotification

用于配置 XTRG 中断 Callback。

勾选以后,需要填写回调函数名称。

生成代码后可以在:

c 复制代码
Xtrg_PBCfg.c

中的:

c 复制代码
Xtrg_DeviceCfg

查看:

c 复制代码
.cb

成员。

这里要特别注意:

XTRGNotification 只是配置 Callback,并不代表对应 XTRG 中断已经使能。

手册明确说明,Notification 只有在 XTRG Interrupt 真正使能之后才会起作用。


5. 信号路由类配置

这一类是最容易理解的。

核心模型永远都是:

text 复制代码
Sig_i → Sig_o

也就是:

text 复制代码
输入信号 → 输出目标

5.1 SigOutConfig

SigOutConfig 用于把一个内部信号送到另一个功能模块。

常见 Sig_i 包括:

text 复制代码
SSIG
Etimer_CMP
ADC_DONE
IO_I
INTER_XTRG_IN
GTM_TRG_SIG
...

常见 Sig_o 包括:

text 复制代码
Etimer Capture
Etimer Fault
Etimer Clock
GTM_SIG
...

手册中的例子是:

text 复制代码
Sig_i = Etimer_Cmp_A0

Sig_o = ETIMER2_CPT_B0

对应:

text 复制代码
ETIMER Compare A0
       │
       ▼
      XTRG
       │
       ▼
ETIMER2 Capture B0

这类配置主要通过:

c 复制代码
XTRG_SignalMutiplex()

完成。


5.2 IOOutConfig

IOOutConfig 用于:

把内部信号输出到 XTRG IO。

典型用途:

text 复制代码
eTimer PWM
    │
    ▼
   XTRG
    │
    ▼
 XTRG_IO
    │
    ▼
 Physical Pin

配置思路依然是:

text 复制代码
Sig_i = 信号来源
Sig_o = IO_O_x

例如:

text 复制代码
Sig_i = Etimer_Cmp_A0

Sig_o = IO_O_0

即:

text 复制代码
Etimer_Cmp_A0
      │
      ▼
     XTRG
      │
      ▼
   IO_O_0

手册中明确给出了 eTimer Compare 信号通过 IOOutConfig 路由到 XTRG_IO_0 的示例。


5.3 InterOutConfig

当信号需要:

text 复制代码
XTRG1 → XTRG2

或者:

text 复制代码
XTRG2 → XTRG1

时,需要使用:

text 复制代码
InterOutConfig

例如:

text 复制代码
Sig_i = Etimer_Cmp_A0

Sig_o = INTER_XTRG_OUT_0

对应:

text 复制代码
Etimer_Cmp_A0
       │
       ▼
     XTRG1
       │
       ▼
INTER_XTRG_OUT_0
       │
       ▼
INTER_XTRG_IN_0
       │
       ▼
     XTRG2

手册说明,另一个 Controller 可以把该信号作为 INTER_XTRG_IN 使用。


6. 同步和软件触发配置

6.1 SyncmuxConfig

SyncmuxConfig 主要用于同步事件。

输入可以来自:

text 复制代码
XTRG_SWT
SSIG
Etimer Snap
Etimer Set
Etimer Clr
GTM_TRG_SYNC

输出可以送给:

text 复制代码
Etimer Set
Etimer Clr
Etimer Snap
PWMCNT_CLR_O

例如:

text 复制代码
Software Trigger
       │
       ▼
      SWT
       │
       ▼
   Syncmux
       │
       ▼
  Etimer Clear

手册中对三个常用事件的解释为:

text 复制代码
Set  → 更新 Counter/Compare 相关值

Clr  → 清除 Counter 或恢复 Compare Initial State

Snap → 将当前 Counter 保存到 Hold Register

对应 API:

c 复制代码
XTRG_SignalSynchronize()

6.2 SwtConfig

SWT:

text 复制代码
Software Trigger

即由 CPU 主动让 XTRG 产生一个内部触发信号。

支持:

text 复制代码
Pulse
High Level
Low Level
Toggle

E3620 提供:

text 复制代码
XTRG_SWT_SELECTOR0
~
XTRG_SWT_SELECTOR7

共 8 路 Software Trigger。

一个 SwtConfig 可以配置 1~8 个 SWT Event。

常见使用方式:

text 复制代码
CPU
 │
 ▼
XTRG_SoftwareTrigger()
 │
 ▼
SWT_I
 │
 ├──→ SyncMux
 │
 └──→ SignalMatrix

通常 SWT 不会单独使用,而是作为其他 XTRG 模块的输入。


7. SignalMatrixConfig

Signal Matrix 用于:

将多路信号做硬件逻辑组合,再输出新的 SSIG。

结构可以理解为:

text 复制代码
Input0 ─┐
Input1 ─┤
Input2 ─┤
Input3 ─┤──→ Signal Matrix ──→ SSIG
Input4 ─┘

一个 Signal Matrix 有:

text 复制代码
5 路输入

E3620 可以配置:

text 复制代码
XTRG_SIG_MATRIX0
~
XTRG_SIG_MATRIX15

共 16 个 Signal Matrix。

例如:

text 复制代码
XTRG_SIG_MATRIX0 → SSIG_0
XTRG_SIG_MATRIX3 → SSIG_3

其中:

text 复制代码
Ssm_instanceid

就是用来选择当前 Signal Matrix 实例。


7.1 Ssm_reg

Ssm_reg 本质上是一张:

text 复制代码
5 Input Truth Table

因为 5 个输入共有:

text 复制代码
2^5 = 32

种组合,所以使用 32 bit 表示所有组合下应该输出 0 还是 1。

例如:

text 复制代码
Output = Input0 && Input1

手册示例给出的:

text 复制代码
SSE_REG = 0x88888888

只有 Input0 和 Input1 同时为 1 时,对应输出才为 1。

所以:

Ssm_reg 并不是普通开关,而是 Signal Matrix 的逻辑真值表。


8. ADC 硬件触发:TmuxDrtConfig / TmuxIndrtConfig

这一部分通常是实际项目里最重要的 XTRG 功能。

典型链路:

text 复制代码
PWM / eTimer / GTM
        │
        ▼
     Trigger
        │
        ▼
       XTRG
        │
        ▼
TmuxDrt / TmuxIndrt
        │
        ▼
       ADC

XTRG 在这里相当于:

Timer/PWM 与 ADC 之间的硬件触发路由器。


8.1 Direct Trigger

对应:

text 复制代码
TmuxDrtConfig

驱动数据结构:

c 复制代码
Xtrg_DrtTrigMuxType

主要包括:

text 复制代码
directTmux
tidSignal
triggerSource
targetCfg[]

可以简单理解为:

text 复制代码
Trigger Source
      │
      ▼
 Direct Tmux
      │
      ▼
  ADC Target

8.2 Indirect Trigger

对应:

text 复制代码
TmuxIndrtConfig

相比 Direct,多了一层:

text 复制代码
TID Pool

可以理解为:

text 复制代码
Trigger Source
      │
      ▼
Indirect Tmux
      │
      ▼
   TID Pool
      │
      ▼
  ADC Target

因此在概念上:

text 复制代码
Direct
→ 直接建立 Trigger 与 ADC Target 的关系

Indirect
→ 通过 TID Pool 进一步组织触发关系

驱动结构中 Direct 和 Indirect 分别具有独立的 Mux 配置,其中 Indirect 额外包含 tidPool。


8.3 Tmux 配置完之后还必须 Enable

这是非常容易遗漏的一步。

Direct Trigger 配置完成后,还需要:

c 复制代码
XTRG_DirTrigEnableConfig()

Indirect Trigger 配置完成后,需要:

c 复制代码
XTRG_IndirTrigEnableConfig()

否则:

text 复制代码
配置已经生成
≠
Tmux 已经真正工作

手册对此有明确说明:Direct/Indirect Tmux 配置完成之后,都需要调用对应 Enable 接口才能生效。


8.4 Trigger Priority

如果:

text 复制代码
Tmux0 ──┐
        ├──→ ADC1
Tmux1 ──┘

两个 Tmux 同一时刻触发同一个 ADC,就存在资源竞争。

此时可以配置:

c 复制代码
XTRG_DirTrigAdcPrioConfig()

或:

c 复制代码
XTRG_InDirTrigAdcPrioConfig()

需要注意:

text 复制代码
Priority 数字越大
→ 优先级越高

并且:

text 复制代码
Direct Priority
只比较 Direct Tmux

Indirect Priority
只比较 Indirect Tmux

如果:

text 复制代码
Tmux0 → ADC1
Tmux1 → ADC2

目标 ADC 不同,则不存在竞争,也不需要考虑 Priority。


9. IOFilterConfig

如果外部 IO 作为 XTRG 输入,可以增加:

text 复制代码
IOFilterConfig

用于输入信号过滤。

E3620 可以针对:

text 复制代码
IO_I_0 ~ IO_I_63

配置 IO Filter。

主要参数:

text 复制代码
Filter_Edge_Sel
Posedge_interval
Negedge_interval
Sample_interval

例如:

text 复制代码
Filter_Edge_Sel = Rising Edge

Posedge_interval = 2

Sample_interval = 1

则上升沿后会过滤:

text 复制代码
2 × 1
= 2 个 XTRG Clock

手册中给出了 IO_I_3 的相同配置示例。


10. 其他配置模块

除了前面常用功能外,XTRG 还提供以下能力。

TrigDMACfg

用于:

text 复制代码
XTRG Signal
     │
     ▼
    DMA

主要配置:

text 复制代码
Trigger_Signal
Trigger_Mode
Trigger_Channel

SmonFirstMuxCfg

先从 XTRG 信号中选出:

text 复制代码
Input Signal
Output Signal

供 Signal Monitor / SWDT 使用。


SmonSecondMuxCfg

用于比较两个信号是否符合预期。

例如:

text 复制代码
Input0 == Input1

或者:

text 复制代码
Input0 != Input1

如果关系不符合预期,可以产生 Functional Safety Interrupt。


SwdtCfg

这里的 SWDT 是:

text 复制代码
Signal Watchdog

不是普通 MCU WDG。

它可以监控:

text 复制代码
Rising Edge
Falling Edge
Toggle
High
Low
Pulse Width

用于判断某个硬件信号:

text 复制代码
是否丢失
是否卡高
是否卡低
边沿是否按时出现
脉冲宽度是否符合预期

11. 实例一:eTimer / GTM 波形输出到 GPIO

先看一个非常直观的需求:

text 复制代码
eTimer
  │
  ▼
 XTRG
  │
  ▼
GPIO

目标:

eTimer 已经产生 PWM/Compare 波形,希望把该信号输出到某个物理 Pin。


Step 1:先配置 eTimer

首先保证:

text 复制代码
eTimer 本身已经能够产生预期波形

XTRG 并不会替代 eTimer 产生 PWM。


Step 2:配置 XTRG Controller

确认使用:

text 复制代码
XTRG1

还是:

text 复制代码
XTRG2

Step 3:进入 IOOutConfig

配置:

text 复制代码
IO_Sig_i_Sel

选择需要输出的 eTimer 波形,例如:

text 复制代码
Etimer_Cmp_A0

然后:

text 复制代码
IO_Sig_o_Sel

选择:

text 复制代码
IO_O_0

信号链变成:

text 复制代码
Etimer_Cmp_A0
      │
      ▼
     XTRG
      │
      ▼
    IO_O_0

Step 4:配置 Port / PinMux

XTRG 只是把信号送到了:

text 复制代码
XTRG_IO_O

还需要确认物理 Pin:

text 复制代码
Port Mux

是否正确配置。

最终完整链路:

text 复制代码
eTimer
  │
  ▼
Compare Signal
  │
  ▼
XTRG IOOutConfig
  │
  ▼
XTRG_IO_O
  │
  ▼
Port / PinMux
  │
  ▼
Physical Pin

手册中的典型应用也明确说明:eTimer/GTM 的输出可以通过 IoOutConfig 路由到 IO。


12. 实例二:外部 IO 输入给 GTM/eTimer 做 Capture

需求:

text 复制代码
External Signal
      │
      ▼
     GPIO
      │
      ▼
   XTRG IO_I
      │
      ▼
     XTRG
      │
      ▼
GTM / eTimer Capture

例如:

外部有一个脉冲信号,希望由 GTM 进行 Input Capture。


Step 1:配置 Port

先把物理 Pin 配置为对应:

text 复制代码
XTRG_IO_I

Step 2:如果需要,配置 IOFilterConfig

如果外部信号存在毛刺:

text 复制代码
GPIO
 │
 ▼
IOFilter
 │
 ▼
XTRG

可以通过:

text 复制代码
IOFilterConfig

进行硬件滤波。


Step 3:配置 SigOutConfig

例如:

text 复制代码
Sig_i = IO_I_x

目标:

text 复制代码
Sig_o = GTM_SIG_x

于是:

text 复制代码
External Signal
      │
      ▼
    IO_I_x
      │
      ▼
     XTRG
      │
      ▼
   GTM_SIG_x
      │
      ▼
   GTM Capture

手册在 ICU Capture 场景中说明,XTRG 可以通过 Smux 将外部 IO 或内部信号导向 eTimer/GTM 捕获通道。


13. 实例三:PWM / eTimer 硬件触发 ADC

这是实际项目中非常典型的一种应用。

例如:

每个 PWM 周期到固定位置时,自动触发 ADC 采样。

最终信号链:

text 复制代码
PWM / eTimer
      │
      ▼
Trigger Event
      │
      ▼
     XTRG
      │
      ▼
    TMUX
      │
      ▼
     ADC
      │
      ▼
Conversion

Step 1:确认 Trigger Source

首先确保 PWM/eTimer 已经产生对应触发事件。

这是整个链路的源头。

如果:

text 复制代码
Trigger Source 本身没有产生

那么无论后面的 XTRG 怎么修改:

text 复制代码
ADC 都不会触发

Step 2:确认 XTRG Controller

确认该 Trigger 属于:

text 复制代码
XTRG1

或者:

text 复制代码
XTRG2

Step 3:选择 Direct / Indirect Tmux

根据实际 ADC Trigger 方案选择:

text 复制代码
TmuxDrtConfig

或者:

text 复制代码
TmuxIndrtConfig

然后配置:

text 复制代码
Trigger Source

TID

ADC Target

ADC Channel

具体 ADC Target/TID 对应关系还需要结合 ADC 硬件触发章节以及芯片 TRM。


Step 4:配置 Priority

如果存在多个 Tmux 同时触发同一个 ADC:

text 复制代码
Tmux0 ──┐
        ├──→ ADC
Tmux1 ──┘

则需要配置 Priority。

如果不同 Tmux 分别触发不同 ADC,则可以忽略。


Step 5:Enable Tmux

Direct:

c 复制代码
XTRG_DirTrigEnableConfig()

Indirect:

c 复制代码
XTRG_IndirTrigEnableConfig()

这一项必须重点检查。


Step 6:配置 ADC 本身

XTRG 只负责:

text 复制代码
把 Trigger 送到 ADC

但 ADC 本身还必须允许对应:

text 复制代码
Hardware Trigger

因此排查 ADC 不采样时:

不能只检查 XTRG。


Step 7:需要时开启 TMUX_DONE 中断

调试阶段可以使用:

text 复制代码
TMUX_DONE0 ~ TMUX_DONE7

确认:

text 复制代码
XTRG 是否真正完成了一次 ADC Trigger

XTRG 的 TMUX 中断通过统一 Callback 返回,并通过 event 参数区分具体是哪一路 TMUX_DONE。

这样排查起来会很清晰:

text 复制代码
Trigger Source 有没有产生?
        │
        ▼
XTRG Tmux 有没有收到?
        │
        ▼
TMUX_DONE 有没有发生?
        │
        ▼
ADC 有没有真正转换?
        │
        ▼
ADC Result 有没有更新?

14. 实例四:Software Trigger 触发 eTimer 同步

如果希望由 CPU 主动产生一次同步事件,可以使用:

text 复制代码
SwtConfig
+
SyncmuxConfig

例如:

text 复制代码
CPU
 │
 ▼
XTRG_SoftwareTrigger()
 │
 ▼
SWT_I
 │
 ▼
SyncMux
 │
 ▼
Etimer Clear

配置步骤可以概括为:

text 复制代码
1. 配置 SwtConfig
2. 选择 SWT Selector
3. 选择 Pulse / High / Low / Toggle
4. Syncmux 的 Sig_i 选择对应 SWT
5. Sig_o 选择 Etimer Clear / Set / Snap
6. 软件调用 XTRG_SoftwareTrigger()

适合需要多个硬件模块同步动作的场景。


15. 生成代码后建议检查什么?

EB Generate 成功并不代表配置一定符合预期。

建议至少检查:

text 复制代码
Xtrg_PBCfg.c

中的配置结构。

重点确认:

text 复制代码
Controller Instance

Callback

Signal Input

Signal Output

Trigger Source

Tmux

ADC Target

Priority

特别是 ADC 硬件触发场景,要确认:

text 复制代码
EB 页面配置
     │
     ▼
生成的 XTRG Config
     │
     ▼
实际初始化调用

三者是一致的。


16. XTRG 配置注意事项

最后把比较容易踩坑的地方统一整理一下。


16.1 XTRG 本身通常不是信号源

除了 SWT 等特殊功能以外:

text 复制代码
XTRG 主要负责 Routing

而不是自己产生 PWM、ADC Conversion 或 Capture。

因此排查时一定先确认:

text 复制代码
Source Signal 是否真实存在

16.2 Tmux 配置完成并不等于已经生效

重点检查:

c 复制代码
XTRG_DirTrigEnableConfig()

以及:

c 复制代码
XTRG_IndirTrigEnableConfig()

16.3 Priority 只在竞争同一个 ADC 时有意义

只有:

text 复制代码
同时触发
+
同一个 ADC

才需要讨论优先级。


16.4 Direct 和 Indirect 的 Priority 是独立的

text 复制代码
Direct
只和 Direct 比较

Indirect
只和 Indirect 比较

两者不是一个统一的优先级队列。


16.5 Notification 不等于 Interrupt Enable

要进入 Callback,需要检查完整链路:

text 复制代码
XTRGNotification
      +
Interrupt Enable
      +
Callback Enable

16.6 IOOut 有配置但 Pin 没有波形

按照完整链路检查:

text 复制代码
eTimer/GTM
   │
   ▼
XTRG
   │
   ▼
XTRG_IO_O
   │
   ▼
Port / PinMux
   │
   ▼
Physical Pin

不要只修改 XTRG。


16.7 ADC 不触发时不要只检查 ADC

建议按照下面顺序排查:

text 复制代码
① PWM/eTimer 有没有波形?

② Trigger Event 有没有产生?

③ XTRG Controller 对不对?

④ Trigger Source 选对了吗?

⑤ Tmux 配对了吗?

⑥ TID / ADC Target 对吗?

⑦ Tmux Enable 了吗?

⑧ ADC Hardware Trigger 打开了吗?

⑨ TMUX_DONE 有没有产生?

⑩ ADC Result 有没有更新?

16.8 SWT 连续触发要注意上一次 Event 是否结束

手册说明,SWT 下一次触发需要等待上一次触发事件结束。

尤其配置较长 Pulse 时需要注意。


17. 总结

E3620 XTRG 的配置页面虽然比较多,但从工程角度看,本质上就是三件事。

首先确定:

text 复制代码
Source

也就是:

谁产生信号?

然后确定:

text 复制代码
XTRG Routing

也就是:

信号需要经过哪个 Mux、Matrix 或 Trigger 模块?

最后确定:

text 复制代码
Destination

也就是:

最终由哪个外设使用?

整个配置过程始终围绕:

text 复制代码
Source
  │
  ▼
XTRG
  │
  ▼
Destination

去展开即可。

实际使用时,可以先根据需求选择 XTRG 子模块:

text 复制代码
普通内部路由
→ SigOutConfig

输出到 IO
→ IOOutConfig

跨 XTRG
→ InterOutConfig

同步事件
→ SyncmuxConfig

逻辑组合
→ SignalMatrixConfig

软件触发
→ SwtConfig

ADC 硬件触发
→ TmuxDrt / TmuxIndrt

IO 滤波
→ IOFilterConfig

DMA 触发
→ TrigDMACfg

Functional Safety
→ Smon / Swdt

然后再结合具体外设:

text 复制代码
Port
eTimer
GTM
ADC
DMA

完成整个信号链配置。

相比单独记忆每一个 XTRG 参数,建立这种:

"从信号源一路跟到目标外设"

的思维方式,在后续做配置、代码检查以及问题排查时会更加高效。


相关推荐
熊猫钓鱼>_>3 小时前
端侧 NPU 轻量大模型推理接入笔记【鸿蒙心迹】
开发语言·笔记·华为·ai编程·harmonyos·鸿蒙
David猪大卫3 小时前
【C++修炼】STL容器—stack与queue
c语言·开发语言·数据结构·c++·经验分享·笔记·学习
凯凯姜3 小时前
Ollama 本地部署大语言模型笔记
人工智能·笔记·语言模型
ACP广源盛139246256733 小时前
选型评估笔记:面向轻量化边缘 IO 扩展的 PCIe4.0 交换方案 IX8012@ACP
笔记·硬件架构·pcie·hdmi·国产芯片
克里斯蒂亚诺更新3 小时前
ruoyi项目验证码 登录接口的调用
笔记
Nuanyt4 小时前
Agent 学习笔记(下篇二):Claude Code 生态、RAG 与 Memory(Stage 5–6)
笔记·python·memory·rag·aiagent·claude code·agentskill
qeen874 小时前
【Linux】磁盘读写文件原理及文件系统基本概念介绍
linux·运维·服务器·笔记·学习
无心水4 小时前
6、软件工程 核心考点与学习笔记
笔记·学习·软件工程·软考高级·架构师·软考·软考系统架构设计师
Rabitebla4 小时前
【Linux 底层原理】工具篇 (三):gcc/g++ 编译工具、动静态库与编译原理
linux·运维·服务器·笔记·学习