0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度解析STM32單片機(jī)JTAG的復(fù)用方法

2oON_changxuemc ? 來源:cg ? 2018-12-26 10:27 ? 次閱讀

先來copy下 JTAG、SW接口的定義

JTAG:JTAG(JointTest Action Group;聯(lián)合測試工作組)是一種國際標(biāo)準(zhǔn)測試協(xié)議,主要用于芯片內(nèi)部測試?,F(xiàn)在多數(shù)的高級(jí)器件都支持JTAG協(xié)議,如DSPFPGA器件等。標(biāo)準(zhǔn)的JTAG接口是4線:TMS、TCK、TDI、TDO,分別為模式選擇、時(shí)鐘、數(shù)據(jù)輸入和數(shù)據(jù)輸出線。

SWD:SW(Serial Wire Mode Interface),串行接口線模式。在串行線模式,只有針TCLK和TMS使用。TDO數(shù)據(jù)輸出引腳是一個(gè)可選。

SWD下載調(diào)試 原理圖:

從圖中看到:板子使用SWD接口下載調(diào)試,即使用SWDIO、SWCLK(PA13、PA14);PB3–JTDO 默認(rèn)功能為JTAG的,而這里用作其他的功能–普通I/O。

問題來了:

1、需要關(guān)掉PB3的JTAG功能,復(fù)用為其他功能。

2、SWD 和傳統(tǒng)的調(diào)試方式區(qū)別。

STM32JTAG復(fù)用相關(guān)方法 :

直接上代碼,如下:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);//改變指定管腳的映射GPIO_Remap_SWJ_JTAGDisableJTAG-DP失能+SW-DP使能GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);。..。...12345

但,當(dāng)設(shè)置了以上語句后,當(dāng)運(yùn)行了這兩個(gè)語句后,JTAG仿真就與目標(biāo)失去去聯(lián)系。

解決辦法有:

1、設(shè)置啟動(dòng)模式為ISP模式(BOOT0=1、BOOT1=0)或設(shè)置啟動(dòng)模式為RAM運(yùn)行模式(BOOT0=1、BOOT1=1)。 將開發(fā)板斷電后重新上電,此時(shí)就因不是在用戶程序模式,因此就不會(huì)執(zhí)行禁用JTAG的語句,JTAG功能也就可以正常使用。

2、設(shè)置啟動(dòng)模式為ISP模式(BOOT0=1、BOOT1=0),用ISP程序?qū)TM32的FLASH擦除,之后就可恢復(fù)JTAG功能。

3、如果你的仿真器支持SWD仿真模式,如IAR下用JLINK、MDK下用ULINK2。 直接將仿真器的模式設(shè)為SWD模,就可以不受這個(gè)禁止JTAG功能的影響了。

我的環(huán)境切合第三個(gè)解決方案,IAR設(shè)置如下:

SWD 和傳統(tǒng)的調(diào)試方式區(qū)別 :

SWD 模式比 JTAG 在高速模式下面更加可靠。 在大數(shù)據(jù)量的情況下面 JTAG 下載程序會(huì)失敗, 但是 SWD 發(fā)生的幾率會(huì)小很多?;臼褂?JTAG 仿真模式的情況下是可以直接使用 SWD 模式的, 只要你的仿真器支持。 所以推薦大家使用這個(gè)模式。

在大家 GPIO 剛好缺一個(gè)的時(shí)候, 可以使用 SWD 仿真, 這種模式支持更少的引腳。

在大家板子的體積有限的時(shí)候推薦使用 SWD 模式, 它需要的引腳少, 當(dāng)然需要的 PCB 空間就小啦! 比如你可以選擇一個(gè)很小的 2.54 間距的 5 芯端子做仿真接口。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6030

    文章

    44500

    瀏覽量

    632176
  • JTAG
    +關(guān)注

    關(guān)注

    6

    文章

    397

    瀏覽量

    71562

原文標(biāo)題:STM32單片機(jī)JTAG的復(fù)用方法解析

文章出處:【微信號(hào):changxuemcu,微信公眾號(hào):暢學(xué)單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    關(guān)于STM32單片機(jī)復(fù)用問題,請大神賜教

    關(guān)于STM32單片機(jī)復(fù)用功能我有點(diǎn)疑問:什么時(shí)候用復(fù)用輸出????什么時(shí)候開啟復(fù)用時(shí)鐘????謝謝?。。?!
    發(fā)表于 08-13 10:22

    LM3S系列單片機(jī)JTAG口解鎖應(yīng)用筆記

    LM3S系列單片機(jī)JTAG口解鎖應(yīng)用筆記 介紹LM3S系列單片機(jī)JTAG口被設(shè)置為GPIO后,恢復(fù)JTAG功能的
    發(fā)表于 04-07 16:20 ?52次下載

    STM32單片機(jī)JTAG復(fù)用方法解析

    JTAGJTAG(Joint Test Action Group;聯(lián)合測試工作組)是一種國際標(biāo)準(zhǔn)測試協(xié)議,主要用于芯片內(nèi)部測試。現(xiàn)在多數(shù)的高級(jí)器件都支持JTAG協(xié)議,如DSP、FPGA器件等。標(biāo)準(zhǔn)的
    發(fā)表于 12-24 14:09 ?6500次閱讀

    51單片機(jī)STM32單片機(jī)有哪些區(qū)別

    大部分朋友可能都知道51單片機(jī)stm32單片機(jī)也知道一般入門會(huì)先學(xué)習(xí)51單片機(jī)在學(xué)習(xí)stm32單片機(jī)
    發(fā)表于 08-13 17:32 ?17次下載
    51<b class='flag-5'>單片機(jī)</b>和<b class='flag-5'>STM32</b><b class='flag-5'>單片機(jī)</b>有哪些區(qū)別

    如何進(jìn)行單片機(jī)的下載詳細(xì)方法講解

    及到的單片機(jī)有STC51、LPC11C14、 STM32F103C8T6等。這三種單片機(jī)都可以用ISP方式下載,LPC11C14可以用SW方式下載,STM32F103C8T6可以用
    發(fā)表于 08-07 17:33 ?1次下載
    如何進(jìn)行<b class='flag-5'>單片機(jī)</b>的下載詳細(xì)<b class='flag-5'>方法</b>講解

    深度解析STM32單片機(jī)JTAG復(fù)用方法資料下載

    電子發(fā)燒友網(wǎng)為你提供深度解析STM32單片機(jī)JTAG復(fù)用
    發(fā)表于 04-17 08:49 ?5次下載
    <b class='flag-5'>深度</b><b class='flag-5'>解析</b><b class='flag-5'>STM32</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>JTAG</b>的<b class='flag-5'>復(fù)用</b><b class='flag-5'>方法</b>資料下載

    STM32單片機(jī)JTAG復(fù)用方法解析資料下載

    電子發(fā)燒友網(wǎng)為你提供STM32單片機(jī)JTAG復(fù)用方法解析資料下載的電子資料下載,更有其他相關(guān)的
    發(fā)表于 04-18 08:45 ?13次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>JTAG</b>的<b class='flag-5'>復(fù)用</b><b class='flag-5'>方法</b><b class='flag-5'>解析</b>資料下載

    stm32單片機(jī)的基本工作原理

    我們使用的大部分電器都使用了單片機(jī),那么stm32單片機(jī)的基本工作原理是什么呢?下面小編就帶大家了解一下stm32單片機(jī)的基本工作原理。
    的頭像 發(fā)表于 08-19 11:06 ?2.8w次閱讀

    單片機(jī)入門--常見單片機(jī)PIC\STM32

    單片機(jī)入門--常見單片機(jī)PIC\STM32
    發(fā)表于 11-13 14:36 ?43次下載
    <b class='flag-5'>單片機(jī)</b>入門--常見<b class='flag-5'>單片機(jī)</b>PIC\<b class='flag-5'>STM32</b>

    STM32單片機(jī)使用SEGGER J-Flash 燒錄的方法

    STM32單片機(jī)使用SEGGER J-Flash 燒錄的方法
    發(fā)表于 12-02 10:21 ?20次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>單片機(jī)</b>使用SEGGER J-Flash 燒錄的<b class='flag-5'>方法</b>

    STM32F103單片機(jī)JTAG端口重映射

    STM32單片機(jī)復(fù)位后,JTAG口默認(rèn)是被占用的。如果想將JTAG占用的幾個(gè)IO口設(shè)置為普通IO口,就需要進(jìn)行端口重映射。復(fù)位后端口默認(rèn)功能可以在S
    發(fā)表于 12-04 15:36 ?10次下載
    <b class='flag-5'>STM32</b>F103<b class='flag-5'>單片機(jī)</b><b class='flag-5'>JTAG</b>端口重映射

    STM32單片機(jī)端口復(fù)用和端口重映射

    STM32單片機(jī)端口復(fù)用和端口重映射STM32單片機(jī)上有很多I/O口,也有很多的內(nèi)置外設(shè),比如I2C、ADC、DAC、USART等都屬于內(nèi)置
    發(fā)表于 12-28 19:23 ?8次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>單片機(jī)</b>端口<b class='flag-5'>復(fù)用</b>和端口重映射

    STM32單片機(jī)GPIO口簡介

    本篇主要介紹STM32單片機(jī)的GPIO口基本概念和GPIO 寄存器的使用參考資料【51/STM32】詳解單片機(jī)GPIO口輸入輸出的各種模式一、STM
    發(fā)表于 12-28 19:23 ?23次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>單片機(jī)</b>GPIO口簡介

    STM32單片機(jī)的GPIO輸入、輸出模式與配置方法

    STM32 單片機(jī)是一款高性能、低功耗的 32 位微控制器,具有強(qiáng)大的計(jì)算能力、靈活的外設(shè)模塊和實(shí)現(xiàn)微控制器應(yīng)用所需的社區(qū)支持。在單片機(jī)應(yīng)用中,GPIO 輸入輸出模式是必不可少的硬件接口之一。本文將介紹
    發(fā)表于 08-15 18:23 ?7944次閱讀

    單片機(jī)解析g代碼的方法

    的運(yùn)動(dòng)。 解析G代碼是將其轉(zhuǎn)化為單片機(jī)能夠理解和執(zhí)行的指令集。單片機(jī)解析G代碼的方法主要包括以下幾個(gè)方面:G代碼的格式
    的頭像 發(fā)表于 12-22 14:15 ?1580次閱讀