前面我们分享了https://mp.weixin.qq.com/s/BeL6UbSg2HI9qKemZugOhw?token=1054074707&lang=zh_CN
《基于“矿板”低成本学习FPGA》使用JTAG边界扫描快速进行引脚对应关系逆向。
不仅仅是在FPGA,在MCU中我们也可以使用JTAG进行边界扫描测试,前提是对应的芯片支持该功能,并且厂家提供BSDL文件。
这里就以LPC1857这颗MCU来演示,开发板是MCB1800.
前面提到TopJTAG是商业软件需要购买,这里为了方便测试提供一个和谐版,仅供测试学习之用,需要的可以购买正版支持。
通过网盘分享的文件:TOPJTAG.zip
链接: https://pan.baidu.com/s/1ea_Bsyf4GIaqAfYheNlmhg?pwd=ybqc 提取码: ybqc
--来自百度网盘超级会员v3的分享
从用户手册可以看到DBG_EN引脚拉高则为ARM仿真模式,拉低则为JTAG BSDL模式,我们
这里拔出跳线帽,即拉低DBG_EN使用JTAG BSDL模式。 如果要使用JTAG调试仿真程序则需要短接跳线帽,拉高DBG_EN.
下载BSDL文件,需要登录下载
https://www.nxp.com.cn/products/LPC1857FET256
连接JINK,给开发板上电
打开TopJTAG Probe
File->New Project Wizard
识别到芯片,JTAG BSDL模式和ARM DEBUG模式的IDCODE是不一样的。
选择BSDL文件
如果选择的BSDL文件IDCODE不对会提示
选择版本不对也会提示
可以直接打开BSDL文件查看IDCODE是如何解析的
需要选择正确IDCODE且版本对的BSDL
以测试按键输入为例
添加P40,P43,P44到波形
点击run
按开发板上的按键,可以看到波形变化
也可以直接控制LED,对应如下引脚,直接控制引脚输出1或者0,看到LED点亮和熄灭
两片8M 16位的NOR FLASH,组成32位访问,共16MB容量。
打开TopJTAG Flash Programmer
File->New Setup
设置FLASH属性
设置引脚
这里可以设置某些引脚为固定电平,这里不需要
开始读
Info可以看到设备ID
和手册的对应
可以File->Save Setup As...保存环境,下次可以直接加载使用。
如果已经保存了setup文件,则直接加载即可
File-Load Setup
Setup->JTAG Connection...
使用JTAG BSDL可以快速测试芯片,比如拿到一块开发板,可以用该方式快速测试对应引脚的输入输出是否正确,判断好坏,比写程序去测试更快。也可以直接通过其控制引脚读写FLASH,这里TopFlash支持并口的NOR FLASH。实际上我们可以编写上位机支持任意的协议的FLASH,因为我们能直接操作任意引脚。比如Vivado中的通过JTAG烧录SPI FLASH就是类似的原理。使用JTAG读写FLASH好处是灵活,劣势是用IO模拟速度取决于JTAG的速度,且JTAG协议消耗比较大,所以一般都比较慢。