试想这样一个场景,我们新设计了一款集成了很多芯片的板卡,包括bga封装的微控制器,如fpga/mcu,还有led、按键、串口、传感器、adc等基本外设。
我们需要测试一下硬件电路工作是否正常、焊接是否良好,通常我们会写个测试代码,比如控制led闪烁,读取按键的输入,串口收发一些数据,然后把程序烧录进去,看看现象是否和我们设计的一致。
当现象和设计不一致时,是代码设计的问题、还是硬件原理的问题、又或者是焊接的问题呢?应该如何一一排除呢?
这里就可以使用jtag边界扫描的测试方法,来验证到底是哪里出的问题,因为jtag边界扫描不需要写任何代码,只需要一个bsdl文件,就可以控制和读取芯片的任意管脚。
下面我们以意法半导体 mcu stm32f103为例,配合jlink,演示jtag边界扫描的应用。
1. 获取芯片的bsdl文件获取意法半导体mcu的bsdl文件,可以到官方网站搜索bsdl,就会弹出对应系列的bsdl文件包。
下载到本地之后解压,可以看到很多bsdl文件,我们开发板上的芯片型号是stm32f103zet6-lqfp144,属于大容量芯片,所以bsdl文件对应的是:
stm32f1_high_density_lqfp144.bsd
2. 硬件连接使用排线连接jlink和开发板的jtag接口。
hw
并确保设备管理器里jlink驱动被正确识别。
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. 总结通过边界扫描可以快速的判断文章开头提到的几个问题,如果使用边界扫描的方式,发现读取和控制管脚的状态不对,那么可以判定是焊接的问题,通过编程,甚至可以按照一定的时序来控制管脚的状态,从而达到控制外部器件的目的。
总之,边界扫描是一种非常实用的测试方法,在电路板生产制造、芯片设计、芯片封测等方面都有很广泛的应用。
防止因电池反弹而导致的瞬时断电
华润微电子获上交所2022-2023年度信息披露工作A级评级
智能燃气表电机阀的阀体安装结构的设计
创新充电桩设计:解决电动汽车充电难题
详解MATLAB函数编写与调用及参考例子
基于STM32+Jlink的边界扫描实际应用演示
2018年,新造车公司将迎来产品的集体阅兵
苹果7预售启动售价5288元被猪队友曝光
实用有效!让你做好全息投影显示的几项参考设计
NEC电子推出集成了LVDS接口的超解像系统LSI
e2v 推出新系列超紧凑、不受《国际武器贸易条例》ITAR约束微波功率模块
氮化镓材料为什么如此昂贵?
莱克魔力风智能空气调节扇,夏季停电也能照样清爽
电解电容的常识知识详细解析
继电器的测试方法一般都有哪些
台积电认购ARM 1亿美元股份!
利用测试打造值得信赖的品牌
简述光纤衰减器的技术和应用
预测:苹果明年全年iPhone出货量为2.2亿台
日月光推出整合设计生态系统IDE