强大的JTAG边界扫描(4):STM32边界扫描应用

文章目录

      • [1. 获取芯片的BSDL文件](#1. 获取芯片的BSDL文件)
      • [2. 硬件连接](#2. 硬件连接)
      • [3. 边界扫描测试](#3. 边界扫描测试)
      • [4. 总结](#4. 总结)

试想这样一个场景,我们新设计了一款集成了很多芯片的板卡,包括BGA封装的微控制器,如FPGA/MCU,还有LED、按键、串口、传感器、ADC等基本外设。

我们需要测试一下硬件电路工作是否正常、焊接是否良好,通常我们会写个测试代码,比如控制LED闪烁,读取按键的输入,串口收发一些数据,然后把程序烧录进去,看看现象是否和我们设计的一致。

当现象和设计不一致时,是代码设计的问题、还是硬件原理的问题、又或者是焊接的问题呢?应该如何一一排除呢?

这里就可以使用JTAG边界扫描的测试方法,来验证到底是哪里出的问题,因为JTAG边界扫描不需要写任何代码,只需要一个BSDL文件,就可以控制和读取芯片的任意管脚。

下面我们以意法半导体 MCU STM32F103为例,演示JTAG边界扫描的应用。

1. 获取芯片的BSDL文件

获取意法半导体MCU的BSDL文件,可以到官方网站搜索BSDL,就会弹出对应系列的BSDL文件包。

STM32F1系列BSDL文件的下载地址:

c 复制代码
STM32F1:
https://www.st.com/content/ccc/resource/technical/ecad_models_and_symbols/bsdl_model/75/4a/50/d0/ad/aa/49/92/stm32f1_bsdl.zip/files/stm32f1_bsdl.zip/jcr:content/translations/en.stm32f1_bsdl.zip

下载到本地之后解压,可以看到很多BSDL文件,我们开发板上的芯片型号是STM32F103ZET6-LQFP144,属于大容量芯片,所以BSDL文件对应的是:

复制代码
STM32F1_High_density_LQFP144.bsd

关于其他芯片的BSDL文件获取方式,可以参考之前的文章:强大的JTAG边界扫描(2):BSDL文件介绍

2. 硬件连接

按照下图所示,使用排线连接JLink和开发板的JTAG接口。

并确保设备管理器里JLink驱动被正确识别。

3. 边界扫描测试

关于TopJTAG边界扫描测试软件的介绍和基本使用,可以参考之前的文章:强大的JTAG边界扫描(3):常用边界扫描测试软件

打开TopJTAG Probe软件之后,先创建一个工程,并选择JTAG设备类型,这里我们使用的是JLink。

如果硬件连接正确,驱动安装正常,软件会自动识别到连接的芯片。

指定芯片所对应的BSDL文件,这里我们选择上一步下载的STM32F1_High_density_LQFP144.bsd文件,并进行IDCODE校验。

如果IDCODE不匹配,说明选择的BSDL文件错误,之后就进入到边界扫描测试界面了。

点击Instruction按钮,可以选择三种测试命令:

  • BYPASS:旁路掉当前器件,在菊花链拓扑方式时,跳过当前器件
  • SAMPLE:采样模式,可以对所有管脚的状态进行读取,可以统计电平翻转的次数,或者以波形方式显示实时状态
  • EXTEST:可以任意的控制所有外部管脚的状态,可手动指定为高低电平,高阻态。

这里我们选择SAMPLE模式,点击RUN按钮,可以看到芯片所有的管脚实时状态,

在Pins窗口,可以看到所有管脚的实时状态,选中一个管脚,可以把它添加到Watch窗口,或者Waveform窗口。

切换到EXTEST模式,可以手动设置管脚的高低电平或高阻状态。

Watch窗口信号的还原能力,完全取决于JTAG_TCK的频率,即管脚信号的采样时钟。

4. 总结

通过边界扫描可以快速的判断文章开头提到的几个问题,如果使用边界扫描的方式,发现读取和控制管脚的状态不对,那么可以判定是焊接的问题,通过编程,甚至可以按照一定的时序来控制管脚的状态,从而达到控制外部器件的目的。

总之,边界扫描是一种非常实用的测试方法,在电路板生产制造、芯片设计、芯片封测等方面都有很广泛的应用。

相关推荐
kebidaixu9 小时前
FreeRTOS 移植到 STM32F407VETX 记录(一)
stm32·单片机·嵌入式硬件
半条-咸鱼9 小时前
【INACCESSIBLE_BOOT_DEVICE】安装 Config Tool 后 Windows 蓝屏,最终通过 VMware 虚拟机解决
windows·stm32·vmware·芯片
技术落地手记11 小时前
一个需求 ID 换一份完整测试用例,我让 AI 替测试同事省掉半天
单元测试·测试
数智工坊12 小时前
机器人四大主控板系统分层选型指南:树莓派、ESP32、STM32与Arduino的能力边界与实战定位
stm32·嵌入式硬件·机器人
某林21212 小时前
跨越底层与AI的鸿沟:ROS2+多模态大模型(Qwen-VL)机器人全链路排障实录
人工智能·stm32·机器人·人机交互·ros2·技术复盘
项目題供诗13 小时前
STM32-AD单通道&AD多通道(十九)
stm32·单片机·嵌入式硬件
振南的单片机世界14 小时前
启动流程:上电先取栈顶和复位向量,再进main
arm开发·stm32·嵌入式硬件
数智工坊14 小时前
【ROS 2 全栈入门指南三】:Action、参数与Launch文件全链路指南
android·stm32·嵌入式硬件·学习·机器人
不脱发的程序猿15 小时前
我把360里真正用得到的功能拆出来,做个轻量工具
stm32·单片机·嵌入式硬件
QK_0015 小时前
EEPROM和W25Q64
stm32