試想這樣一個場景,我們新設計了一款集成了很多芯片的板卡,包括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. 總結
通過邊界掃描可以快速的判斷文章開頭提到的幾個問題,如果使用邊界掃描的方式,發現讀取和控制管腳的狀態不對,那么可以判定是焊接的問題,通過編程,甚至可以按照一定的時序來控制管腳的狀態,從而達到控制外部器件的目的。
總之,邊界掃描是一種非常實用的測試方法,在電路板生產制造、芯片設計、芯片封測等方面都有很廣泛的應用。
-
微控制器
+關注
關注
48文章
7646瀏覽量
152027 -
傳感器
+關注
關注
2552文章
51383瀏覽量
756305 -
BGA封裝
+關注
關注
4文章
118瀏覽量
17996 -
STM32F103
+關注
關注
33文章
479瀏覽量
63842 -
LED閃爍
+關注
關注
0文章
29瀏覽量
9862
發布評論請先 登錄
相關推薦
評論