扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

RT1050基于Lauterbach的Boundary Scan实战:JTAG边界扫描测试与引脚控制

2小时前
148
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

Boundary Scan(边界扫描)是基于 JTAG 接口的电路板互联测试技术,可直接控制 MCU 外部引脚电平、检测引脚状态与电压,无需拆卸芯片或复杂接线,广泛应用于硬件调试、故障定位与量产测试。本文基于 NXP MIMXRT1050-EVK revA1 开发板与 Lauterbach LA3050 仿真器,详解边界扫描的硬件改造、软件配置、BSDL 文件适配及自动化脚本开发,实现 RT1050 外部引脚的精准控制与测试。

资料获取:RT1050 基于lauterbach的Boundary Scan

1. 核心原理与环境准备

1.1 边界扫描核心逻辑

边界扫描基于 IEEE 1149.1(JTAG)标准,通过 MCU 内部的边界扫描寄存器(BSR)实现对引脚的间接控制:
  • 扫描链构建:RT1050 的 JTAG 接口(TCK、TMS、TDI、TDO)与边界扫描寄存器组成扫描链,Lauterbach 仿真器通过 JTAG 信号发送指令;
  • 引脚控制:通过 BSDL(Boundary Scan Description Language)文件解析芯片引脚定义,向边界扫描寄存器写入数据,即可控制对应引脚的输出电平(高 / 低);
  • 状态检测:读取边界扫描寄存器数据,可获取引脚的输入状态或电压信息,实现硬件互联测试。

1.2 软硬件环境准备

(1)硬件清单

  • 主控板:MIMXRT1050-EVK revA1 开发板;
  • 仿真器:Lauterbach LA3050(支持 JTAG 模式);
  • 辅助工具:100K 电阻、杜邦线、万用表(用于验证引脚电平);
  • 接线:Lauterbach 仿真器通过 J21 接口连接 RT1050-EVK,需严格对应 JTAG 信号(TCK/TMS/TDI/TDO/GND)。

(2)软件环境

  • 仿真软件:Lauterbach TRACE32 ICD Arm USB(配套 LA3050);
  • 配置文件:RT1050 BSDL 文件(芯片边界扫描描述文件);
  • 脚本工具:TRACE32 支持的.cmm 脚本(实现自动化测试);
  • 参考文档:NXP 应用笔记 AN13507(LPC 系列)、AN12919(RT 系列)。

(3)关键文件下载

  • RT1050 BSDL 文件:NXP 官网下载,用于解析芯片引脚与边界扫描寄存器映射关系;
  • TRACE32 软件:Lauterbach 官方提供的配套软件,需与 LA3050 仿真器型号匹配。

2. 硬件改造:RT1050-EVK 适配 JTAG 边界扫描

RT1050-EVK 默认配置为 SWD 调试模式,需通过硬件改造切换为 JTAG 模式,同时断开板载调试器避免冲突,核心改造点共 7 处:

2.1 修改 Fuse 位(切换 JTAG 模式)

RT1050 的 DAP_SJC_SWD_SEL 位(Fuse 0X460 [19])默认配置为 0(SWD 模式),需改为 1(JTAG 模式):
  • 操作方式:将开发板设置为 Serial Download 模式,通过 MCUbootUtility 工具修改 Fuse 位,保存后重启开发板。

2.2 移除指定电阻(断开冲突链路)

DNP(Do Not Populate)以下电阻,避免信号冲突:
  • R38、R323、R309、R152、R303(具体位置参考 RT1050-EVK 硬件手册)。

2.3 JTAG_MODE 引脚拉高

将开发板的 TP11 测试点连接到 J24_8 接口(3.3V),使 JTAG_MODE 引脚保持高电平,启用 JTAG 模式。

2.4 增加上拉电阻

  • R35 位置焊接 100K 电阻,用于信号上拉;
  • ONOFF 引脚(SW2 的 pin3 或 pin4)焊接 100K 电阻,上拉到 J24_8(3.3V),确保供电稳定。

2.5 断开板载调试器

断开 J32、J33 跳帽,彻底隔离板载 CMSIS-DAP 调试器,避免与外部 Lauterbach 仿真器冲突。

2.6 确认 JTAG 接口连接

Lauterbach 仿真器通过 J21 接口连接开发板,信号对应关系如下:
Lauterbach 引脚 RT1050-EVK J21 引脚 信号名称
TCK TCK 时钟信号
TMS TMS 模式选择
TDI TDI 数据输入
TDO TDO 数据输出
GND GND 接地

3. 软件配置:TRACE32 与 BSDL 文件适配

步骤 1:安装与启动 TRACE32 软件

  1. 安装 Lauterbach TRACE32 ICD Arm USB 软件,连接 LA3050 仿真器到 PC;
  2. 启动软件,若仿真器连接正常,将自动识别设备并进入主界面,黄色命令框可输入边界扫描指令。

步骤 2:BSDL 文件配置

BSDL 文件是边界扫描的核心,包含芯片引脚定义、边界扫描寄存器结构等信息,需正确配置:
  1. 将下载的RT1050.bsdl文件复制到 TRACE32 安装路径(如C:T32);
  2. 在 TRACE32 命令框输入以下指令,初始化边界扫描环境:
    SYStem.Mode Down    # 设置系统模式为Down
    BSDL.RESet           # 重置边界扫描配置
    BSDL.ParkState Select-DR-Scan  # 设置Park状态
    BSDL.state           # 打开边界扫描配置窗口
    
  3. 在弹出的边界扫描窗口中,点击「FILE」→「Select」,选择RT1050.bsdl文件;
  4. 输入指令触发软复位,加载 BSDL 配置:
    BSDL.SOFTRESET
    

步骤 3:BSDL 文件适配(解决 IDCODE 不匹配问题)

执行BSDL.IDCODEall指令时,可能出现 “读取 IDCODE 为 188c301d,期望 088c301d” 的报错,原因是 BSDL 文件版本与芯片实际 IDCODE 不匹配:
  1. 查阅 RT1050 参考手册(RM),确认芯片实际 JTAG IDCODE 为188C_301Dh(Rev1.1 版本),与读取结果一致,说明芯片正常;
  2. 打开RT1050.bsdl文件,找到第 408 行的IDCODE_REGISTER属性,将版本号从0000修改为0001
    attribute IDCODE_REGISTER of MXRT: entity is "00011000100011000011000000011101";
    
  3. 保存 BSDL 文件,重新执行BSDL.SOFTRESET,再次运行BSDL.BYPASSallBSDL.IDCODEallBSDL.SAMPLEall,三项测试均显示 “PASS”,说明配置成功。

4. 引脚控制:手动操作与自动化脚本

4.1 手动控制引脚电平

以控制 GPIO_AD_B1_06(J22_2 引脚)为例,手动操作步骤如下:
  1. 在 TRACE32 边界扫描窗口中,配置参数:
    • Instruction:选择EXTEST(外部测试模式);
    • DR mode:选择Set Write(写入模式);
    • Filter data:取消「intern」勾选,启用外部引脚控制;
  2. 配置运行模式:
    BSDL.SetAndRun ON    # 启用SetAndRun模式
    BSDL.TwoStepDR ON    # 启用两步DR扫描
    BSDL.RUN             # 应用配置
    
  3. 控制引脚电平:
    • 输入指令BSDL.SET 1. PORT GPIO_AD_B1_06 1,引脚输出高电平;
    • 输入指令BSDL.SET 1. PORT GPIO_AD_B1_06 0,引脚输出低电平;
  4. 验证:用万用表测量 J22_2 引脚,电平变化与指令一致,说明控制有效。

4.2 自动化脚本开发(.cmm 文件)

手动输入指令效率低,可编写.cmm 脚本实现一键自动化测试,以下为 GPIO_AD_B1_06 引脚高低电平循环控制脚本:
; 系统初始化配置
SYStem.Mode Down
SYStem.CPU CortexM7
SYSTEM.CONFIG.DEBUGPORTTYPE JTAG  # 指定调试端口为JTAG
SYStem.JtagClock 1MHz             # 设置JTAG时钟为1MHz

; 边界扫描配置
BSDL.RESet
BSDL.ParkState Select-DR-Scan
BSDL.state
BSDL.FILE RT1050.bsdl             # 加载BSDL文件

; 边界扫描链检查
BSDL.SOFTRESET
BSDL.BYPASSall                    # BYPASS模式测试
BSDL.IDCODEall                    # IDCODE验证
BSDL.SAMPLEall                    # SAMPLE模式测试
BSDL.RUN

; 配置引脚控制模式
BSDL.SetAndRun ON
BSDL.TwoStepDR ON
BSDL.SET 1. IR EXTEST             # 选择EXTEST指令

; GPIO_AD_B1_06引脚高低电平循环(6次)
BSDL.SET 1. PORT GPIO_AD_B1_06 0  # 低电平
BSDL.SET 1. PORT GPIO_AD_B1_06 1  # 高电平
BSDL.SET 1. PORT GPIO_AD_B1_06 0  # 低电平
WAIT 6.s                           # 延迟6秒
BSDL.SET 1. PORT GPIO_AD_B1_06 1  # 高电平
WAIT 6.s
BSDL.SET 1. PORT GPIO_AD_B1_06 0  # 低电平
WAIT 2.s
BSDL.SET 1. PORT GPIO_AD_B1_06 1  # 高电平
WAIT 2.s
BSDL.SET 1. PORT GPIO_AD_B1_06 0  # 低电平
WAIT 2.s
BSDL.SET 1. PORT GPIO_AD_B1_06 1  # 高电平
WAIT 2.s
BSDL.SET 1. PORT GPIO_AD_B1_06 0  # 低电平
WAIT 2.s
BSDL.SET 1. PORT GPIO_AD_B1_06 1  # 高电平
WAIT 2.s

4.3 脚本运行与验证

  1. 在 TRACE32 软件中,点击「File」→「New Script」,粘贴上述脚本,保存为RT1050_BoundaryScan.cmm
  2. 进入 DEBUG 模式,运行脚本,软件将自动执行初始化、测试、引脚控制全流程;
  3. 用万用表实时测量 GPIO_AD_B1_06 引脚,电平将按脚本设定的节奏循环切换,延迟时间符合预期,且无断连现象,说明自动化测试成功。

5. 常见问题排查与避坑指南

5.1 TRACE32 无法识别仿真器

  • 原因 1:仿真器驱动未安装或安装异常;
  • 原因 2:USB 线缆接触不良或损坏;
  • 解决:重新安装 Lauterbach 驱动,更换优质 USB 线缆,确保仿真器供电稳定。

5.2 BSDL.IDCODEall 测试失败

  • 原因 1:BSDL 文件版本不匹配,IDCODE 定义错误;
  • 原因 2:Fuse 位未正确修改,JTAG 模式未启用;
  • 解决:按本文步骤修改 BSDL 文件的 IDCODE 版本号,重新检查 Fuse 位配置与硬件改造点。

5.3 引脚控制无响应

  • 原因 1:BSDL 文件路径错误,未正确加载;
  • 原因 2:Instruction 未选择EXTEST,或 DR mode 配置错误;
  • 原因 3:硬件改造不完整(如 JTAG_MODE 未拉高、板载调试器未断开);
  • 解决:确认 BSDL 文件路径正确,重新配置边界扫描参数,逐项检查硬件改造点是否符合要求。

5.4 脚本运行过程中断连

  • 原因:JTAG 时钟频率过高,信号传输不稳定;
  • 解决:在脚本中降低 JTAG 时钟频率(如SYStem.JtagClock 1MHz),避免时钟过快导致的信号失真。

6. 进阶扩展与实用建议

6.1 多引脚同时控制

若需控制多个引脚,可在脚本中添加多个BSDL.SET指令,指定不同引脚名称与电平值,例如:
; 同时控制GPIO_AD_B1_06(高)与GPIO_AD_B1_07(低)
BSDL.SET 1. PORT GPIO_AD_B1_06 1
BSDL.SET 1. PORT GPIO_AD_B1_07 0

6.2 引脚状态读取

除了输出控制,还可通过BSDL.GET指令读取引脚输入状态,用于硬件互联测试:
; 读取GPIO_AD_B1_06引脚状态
BSDL.GET 1. PORT GPIO_AD_B1_06 status
PRINT status  # 输出引脚状态(0=低电平,1=高电平)

6.3 量产测试适配

将脚本集成到量产测试平台,通过 TRACE32 的批量运行功能,实现多块电路板的自动化测试,提升量产效率,核心适配点:
  • 脚本中添加故障判断逻辑,测试失败时自动记录日志;
  • 统一 JTAG 接口接线标准,避免量产时接线错误。

6.4 兼容其他 RT 系列芯片

该方案可直接迁移到 RT1060、RT1170 等其他 NXP RT 系列芯片,仅需替换对应的 BSDL 文件,硬件改造点参考对应开发板的 JTAG 接口定义。

RT1050 基于 Lauterbach 的 Boundary Scan 实现,核心是硬件 JTAG 模式改造 + BSDL 文件适配 + 自动化脚本开发,通过 Lauterbach 仿真器与 TRACE32 软件,可精准控制外部引脚电平、检测引脚状态,无需复杂硬件接线,适配硬件调试、故障定位与量产测试等场景。

关键要点:硬件改造需确保 JTAG 模式启用与板载调试器隔离,BSDL 文件需根据芯片实际 IDCODE 修改版本号,脚本开发可大幅提升测试效率。该方案兼容性强,可扩展至其他 RT 系列芯片,是嵌入式硬件开发中高效的调试与测试方案。

相关推荐