先來copy下 JTAG、SW接口的定義
JTAG:JTAG(JointTest Action Group;聯(lián)合測試工作組)是一種國際標準測試協(xié)議,主要用于芯片內部測試?,F(xiàn)在多數(shù)的高級器件都支持JTAG協(xié)議,如DSP、FPGA器件等。標準的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時鐘、數(shù)據輸入和數(shù)據輸出線。
SWD:SW(Serial Wire Mode Interface),串行接口線模式。在串行線模式,只有針TCLK和TMS使用。TDO數(shù)據輸出引腳是一個可選。
SWD下載調試 原理圖:
從圖中看到:板子使用SWD接口下載調試,即使用SWDIO、SWCLK(PA13、PA14);PB3–JTDO 默認功能為JTAG的,而這里用作其他的功能–普通I/O。
問題來了:
1、需要關掉PB3的JTAG功能,復用為其他功能。
2、SWD 和傳統(tǒng)的調試方式區(qū)別。
STM32JTAG復用相關方法 :
直接上代碼,如下:
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);//改變指定管腳的映射GPIO_Remap_SWJ_JTAGDisableJTAG-DP失能+SW-DP使能GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);。..。...12345
但,當設置了以上語句后,當運行了這兩個語句后,JTAG仿真就與目標失去去聯(lián)系。
解決辦法有:
1、設置啟動模式為ISP模式(BOOT0=1、BOOT1=0)或設置啟動模式為RAM運行模式(BOOT0=1、BOOT1=1)。 將開發(fā)板斷電后重新上電,此時就因不是在用戶程序模式,因此就不會執(zhí)行禁用JTAG的語句,JTAG功能也就可以正常使用。
2、設置啟動模式為ISP模式(BOOT0=1、BOOT1=0),用ISP程序將STM32的FLASH擦除,之后就可恢復JTAG功能。
3、如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。 直接將仿真器的模式設為SWD模,就可以不受這個禁止JTAG功能的影響了。
我的環(huán)境切合第三個解決方案,IAR設置如下:
SWD 和傳統(tǒng)的調試方式區(qū)別 :
SWD 模式比 JTAG 在高速模式下面更加可靠。 在大數(shù)據量的情況下面 JTAG 下載程序會失敗, 但是 SWD 發(fā)生的幾率會小很多?;臼褂?JTAG 仿真模式的情況下是可以直接使用 SWD 模式的, 只要你的仿真器支持。 所以推薦大家使用這個模式。
在大家 GPIO 剛好缺一個的時候, 可以使用 SWD 仿真, 這種模式支持更少的引腳。
在大家板子的體積有限的時候推薦使用 SWD 模式, 它需要的引腳少, 當然需要的 PCB 空間就小啦! 比如你可以選擇一個很小的 2.54 間距的 5 芯端子做仿真接口。
-
單片機
+關注
關注
6067文章
44992瀏覽量
650691 -
JTAG
+關注
關注
6文章
404瀏覽量
73343
原文標題:STM32單片機JTAG的復用方法解析
文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
LM3S系列單片機JTAG口解鎖應用筆記
STM32單片機JTAG的復用方法解析
51單片機和STM32單片機有哪些區(qū)別

如何進行單片機的下載詳細方法講解

STM32單片機JTAG的復用方法解析資料下載

stm32單片機的基本工作原理
STM32F103單片機JTAG端口重映射

STM32單片機端口復用和端口重映射

STM32單片機GPIO口簡介

評論