<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > JTAG/SWD/ISP/SWIM詳解單片機的四種燒寫(xiě)方式

JTAG/SWD/ISP/SWIM詳解單片機的四種燒寫(xiě)方式

作者: 時(shí)間:2019-01-29 來(lái)源:網(wǎng)絡(luò ) 收藏

  單片機是一種可編程控制器,搭好硬件電路后,可以利用程序實(shí)現很多非常復雜的邏輯功能,與純硬件電路相比,簡(jiǎn)化了硬件外圍的設計、方便了邏輯的設計、豐富了邏輯的輸出。不同廠(chǎng)家的單片機需要不同編程IDE來(lái)實(shí)現編程。在學(xué)習單片機之前,要先清楚單片機程序是如何燒寫(xiě)到單片機內部的,在燒寫(xiě)的過(guò)程中需要用到什么工具?因為不通用的燒寫(xiě)工具可能價(jià)格較貴,比如說(shuō)Micorchip單片機使用的ICD系列編程器,單臺價(jià)格在600-1000元人民幣之間。今天和大學(xué)來(lái)認識一下單片機最常用的四種燒寫(xiě)方式和所使用到的工具。

本文引用地址:http://dyxdggzs.com/article/201901/397234.htm

  1.使用接口實(shí)現

  接口是一種標準的測試協(xié)議,可以實(shí)現編程時(shí)在線(xiàn)調試,利用單步追蹤可以很方便的查找代碼的Bug,大多數的單片機都支持這種接口。這種接口除了電源線(xiàn)和復位引腳之外,還要用到單片機的四個(gè)引腳,分別是:TDI、TMS、TCK、TDO,他們所代表的含義如下所示:

  TDI--數據輸入,所有寫(xiě)入寄存器的數據都是通過(guò)TDI接口串行輸入的;TMS--模式選擇,Jlink輸出給目標CPU的時(shí)鐘信號;TCK--時(shí)鐘信號,所有數據的輸入輸出都是以該時(shí)鐘信號為基準的;TDO--數據輸出,所有從寄存器讀出的數據都是通過(guò)TDO接口串行輸出的;以上這四個(gè)引腳都是協(xié)議里強制要求的,而且協(xié)議建議在設計電路時(shí)要選用上拉電阻。接口有多種形式,常用的20引腳、14引腳和10引腳。以20引腳JTAG為例,所設計的JTAG燒寫(xiě)電路如下圖所示:

  


  上圖中JTAG接口都通過(guò)電阻上拉了,有的單片機的這幾個(gè)引腳在內部已經(jīng)上拉,所以這幾個(gè)上拉電阻可以省略,減少了成本和PCB空間的占用。

  JTAG接口燒錄方式常用的工具為J-Link,實(shí)物圖如下圖所示。

  


  相信大家都見(jiàn)過(guò)或者聽(tīng)過(guò)這個(gè)燒寫(xiě)工具,這個(gè)工具很通用,但是大家在使用的時(shí)候一定要注意版權信息,因為這個(gè)工具是有版權的,前兩年因為版權風(fēng)波,網(wǎng)購平臺還集中整治過(guò)一次。

  2.接口燒錄方式

  是一種串行調試接口,與JTAG相比,只需要兩根線(xiàn),分別為:SWCLK和SWDIO。他們的含義如下:

  SWDIO--串行數據線(xiàn),用于數據的讀出和寫(xiě)入;SWDCLK--串行時(shí)鐘線(xiàn),提供所需要的時(shí)鐘信號;一般來(lái)說(shuō),大多數單片機的JTAG接口和SWDIO接口是復用的,SWD也是用J-Link工具來(lái)實(shí)現的。所以在使用的時(shí)候,只需要在軟件界面做一下選擇,使用SWD方式還是JTAG方式,硬件上無(wú)需改動(dòng)。除了J-Link外,意法半導體的ST-Link也是支持SWD模式的。

  


  SWD的接口如上圖所示,可以看出,SWD和JTAG是相互復用的,由于SWD只需要兩根線(xiàn)所以大大減少了對單片機GPIO口的占用,SWD方式也是可以在線(xiàn)調試的。

  3.燒寫(xiě)方式,用UART實(shí)現

  使用過(guò)國產(chǎn)51單片機的朋友都清楚這種燒寫(xiě)方式,這種燒寫(xiě)方式是通過(guò)單片機的UART串口來(lái)實(shí)現的,所需要的工具也比較簡(jiǎn)單-USB/TTL。這個(gè)USB/TTL的芯片可以通過(guò)MAX232、CH340G等芯片來(lái)實(shí)現,通過(guò)MAX232實(shí)現的UART燒寫(xiě)電路如下所示:

  


  在與單片機連接的時(shí)候,一定要注意交叉連接,所謂交叉連接即,單片機的TXD接串口RXD,單片機的RXD接串口TXD,否則數據通信失敗。51單片機在使用該方式下載時(shí)需要斷一下點(diǎn)再上電才能下載。

  STM32單片機可以使用UART來(lái)實(shí)現程序下載,但是需要選擇BOOT的模式,現在通過(guò)CH340G芯片可以實(shí)現自動(dòng)的下載方式,即不需要手動(dòng)設置BOOT模式。

  4.單總線(xiàn)下載方式

  這種下載方式是針對STM8系列的單片機,這種方式只需要一根線(xiàn)即可實(shí)現程序的下載,所使用的工具為ST-Link,如下圖所示:

  


  以上為幾種常見(jiàn)的燒寫(xiě)方式以及所使用的工具,歡迎大家留言評論,如果轉載請注明作者信息和頭條出處,感謝支持。



關(guān)鍵詞: JTAG SWD ISP SWIM

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>