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

2021-01-05 電子產品世界

  單片機是一種可編程控制器,搭好硬體電路後,可以利用程序實現很多非常複雜的邏輯功能,與純硬體電路相比,簡化了硬體外圍的設計、方便了邏輯的設計、豐富了邏輯的輸出。不同廠家的單片機需要不同編程IDE來實現編程。在學習單片機之前,要先清楚單片機程序是如何燒寫到單片機內部的,在燒寫的過程中需要用到什麼工具?因為不通用的燒寫工具可能價格較貴,比如說Micorchip單片機使用的ICD系列編程器,單臺價格在600-1000元人民幣之間。今天和大學來認識一下單片機最常用的四種燒寫方式和所使用到的工具。

本文引用地址:http://www.eepw.com.cn/article/201901/397234.htm

  1.使用JTAG接口實現

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

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

  


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

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

  


  相信大家都見過或者聽過這個燒寫工具,這個工具很通用,但是大家在使用的時候一定要注意版權資訊,因為這個工具是有版權的,前兩年因為版權風波,網購平臺還集中整治過一次。

  2.SWD接口燒錄方式

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

  SWDIO--串行數據線,用於數據的讀出和寫入;SWDCLK--串行時鐘線,提供所需要的時鐘信號;一般來說,大多數單片機的JTAG接口和SWDIO接口是復用的,SWD也是用J-Link工具來實現的。所以在使用的時候,只需要在軟體界面做一下選擇,使用SWD方式還是JTAG方式,硬體上無需改動。除了J-Link外,意法半導體的ST-Link也是支持SWD模式的。

  


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

  3.ISP燒寫方式,用UART實現

  使用過國產51單片機的朋友都清楚這種燒寫方式,這種燒寫方式是通過單片機的UART串口來實現的,所需要的工具也比較簡單-USB/TTL。這個USB/TTL的晶片可以通過MAX232、CH340G等晶片來實現,通過MAX232實現的UART燒寫電路如下所示:

  


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

  STM32單片機可以使用UART來實現程序下載,但是需要選擇BOOT的模式,現在通過CH340G晶片可以實現自動ISP的下載方式,即不需要手動設置BOOT模式。

  4.SWIM單總線下載方式

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

  


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


相關焦點

  • 單片機程序怎麼燒寫?各種單片機程序燒寫方法,快來看看吧!
    單片機學習、使用非常重要的一個步驟就是把寫好的程序燒寫到單片機裡,好多初學者,好不容易才寫好一個程序,馬上想讓他跑起來,但是如何燒寫程序確犯難了!我把單片機常用的燒寫方法做了一下歸納,希望能夠幫到大家!
  • PICkit4 燒寫、仿真時獲取ID失敗 Reception on endpoint 129 failed
    燒寫功能 1、如何在ATE中集成對PIC單片機的編程燒寫功能https://blog.csdn.net/dexinzheng/article/details/41723029?發表於 2020-09-09 JTAG/SWD/ISP/SWIM詳解單片機的四種
  • 單片機ISP編程器使用
    單片機ISP編程器就是用來把這個hex文件燒寫到單片機裡去的工具,這樣我們的程序才會被執行。簡單介紹一下我們使用的ISP編程器,什麼是在系統編程技術呢?在系統可編程技術即In System Programming,簡單地說就是指待編程的單片機在實驗板(目標板)上,不用拆下來用編程器進行編程,只需利用ISP編程接口,通過下載線就可把程序代碼下載到單片機內部,ISP技術是對傳統編程技術的一大革新。通過ISP技術,我們在燒寫程序的時候就不用頻繁拔插晶片,只要滑鼠點擊即可把程序寫入單片機,徹底告別以前那樣用編程器反覆燒寫撥插晶片的煩惱。
  • 學習單片機,為什麼我建議你從51單片機開始
    隨著物聯網的大潮,單片機的學習又有高潮,可是面對品類繁多的單片機,不知從何學起,不知道到底學習單片機需要哪些知識;是從8位單片機、16位單片機,還是現在正流行的32位單片機開始學習呢。因此經過我的教學經驗,如果想開始學習單片機,最好從51單片機開始學起,我都推薦STC系列的51單片機學習。原因就是一句話,因為51系列單片機簡單,學習起來也簡單。但是簡單不代表它功能少,51單片機雖然簡單,但體系是完備的。所以當你學會51單片機,會非常快速入門其它單片機學習。
  • 51單片機程序下載、ISP及串口基礎知識
    本文詳細介紹了串口、51單片機的ISP下載等基礎知識,已經學過單片機的也可以看看,加強一下對這方面的了解。 串口 串行接口簡稱串口,也稱串行通信接口,是採用串行通信方式的擴展接口。一方面USB接口負責給單片機供電,另一方面,USB轉TTL或RS232轉TTL已經集成的學習板上。 51單片機程序的燒寫 我們最常見的51單片機是美國Atmel公司生產的AT系列單片機和中國宏晶公司生產的STC系列單片機。
  • STC單片機程序燒錄與ISP下載相關知識
    說點題外話,為了感覺「專業」一點,以後不要再說給單片機「裝程序」了,專業點的說法應該是燒寫程序,或者下載程序。讀者很可能會好奇為什麼叫燒寫程序呢?難道下載程序的時候,要用火烤一烤單片機嗎?當然不是。這個就像馬路為什麼叫馬路一樣,是有來歷的,想知道具體原因,還是等大家學習了單片機,了解早期ROM的工作原理再去深究吧。  回歸正題,不同的單片機燒寫程序的方式是不一樣的。
  • 單片機三種燒錄方式ISP、IAP和ICP有什麼不同?
    ICP是在電路編程,是LPC晶片的編程方式,相當於ATMEL的ISP,而LPC的ISP就相當於ATMEL的IAP了。  如果IAP程序被破壞,產品必須返廠才能重新燒寫程序,這是很麻煩並且非常耗費時間和金錢的。針對這樣的需求,STM32在對Flash區域實行讀保護的同時,自動地對用戶Flash區的開始4頁設置為防寫,這樣可以有效地保證IAP程序(第一部分代碼)區域不會被意外地破壞。
  • 詳解PIC單片機的應用設計技巧
    筆者使用PICl6F716單片機設計了一個電動機保護器,在設計過程中遇到很多問題,通過多 方查找資料以及向Microchip公司技術人員尋求支持,問題一一得到解決。現將部分問題記錄如下,與大家一起探討。  1 ICD2作為程序燒寫的使用  1.1 ICD2簡介  MPLAB ICD2在線調試器是一款低價位的PIC開發工具。
  • 燒錄單片機的步驟
    單片機的燒寫原理本文引用地址:http://www.eepw.com.cn/article/201807/384398.htm1,把單片機當做一個ROM晶片,早期的單片機都是如此。
  • STLink和STM8/32單片機的連接方式
    STLink是ST官方開發的單片機仿真工具,可以燒寫程序、在線仿真,使用非常方便。STLink具有兩種接口,分別為:1)SWD模式;2)SWIM單總線模式。SWD模式主要針對STM32系列的單片機,而SWIM單總線主要針對STM8系列的單片機。下面介紹STLINK和STM32單片機的連接方式。
  • J-Link、J-Trace、Open JTAG區別
    Open JTAG(http://www.openjtag.org/)是一個開源項目,其目標是使嵌入式開發者能夠通過JTAG接口,用開放的硬體和軟體系統進行燒寫、校驗和調試[1]。他們都基於JTAG調試接口協議。
  • 自學單片機第五篇:TSC-ISP燒寫軟體
    ​這是將我們的可執行文件下載到單片機用的,如果你使用的是51系列單片機,可以採用這款,如果使用的是更加專業的單片機,一般去單片機的生產廠家官網都會提供相應的下載工具,專業的工具更 家便捷,同時功能也更全面。對於初學者,我們用這個就足夠使用了。
  • 關於STM32晶片的三種燒寫方式對比
    一般來講,將我們準備好的機器代碼HEX或BIN文件等寫進片上FLASH可以有三種常用的燒寫方式。顯然,我們可以通過ICP方式或ISP方式來完成用戶啟動代碼的事先燒寫。 下面是三種燒寫方式的一個簡單比較匯總表。三種方式各有特點.。表格中提到的無特定軟硬體接口需求是相對的,意思是指基於晶片現有常用接口和通用軟硬體工具,比方串口調試助手等。其中IAP方式對特定軟硬體的依賴性最弱,使用更為靈活。但開發工程師須多做一件事,即自己寫用戶引導程序。
  • 如何給Atmega328P單片機燒錄Arduino引導程序
    有些單片機出廠時晶片廠商已經燒錄好了引導程序,例如串口方式下載的引導程序。單片機復位或重新上電時先從引導程序執行代碼檢測是否有其他命令需要執行,再跳轉到用戶程序代碼執行。Arduino開發板預先寫入了bootloader,通過USB轉串口晶片下發下載命令給Arduino開發板使其復位進入bootloader,bootloader識別到下載命令後接著引導新的用戶程序下載到單片機內部flash,若沒有識別到下載命令則跳轉到原來的用戶應用程式繼續執行。
  • 在keil中怎麼燒寫程序
    打開APP 在keil中怎麼燒寫程序 發表於 2017-11-16 10:52:58   什麼是keil
  • 單片機下載文件:HEX文件和BIN文件的區別
    單片機程序寫好之後,我們都要把程序下載到單片機的內存中,單片機才會按照程式設計師的邏輯執行命令實現功能。之前也講過下載單片機的幾種方式,比如ISP下載,JTAG下載,下載文件的格式最常見的是hex文件,這個格式大家都是知道的,還有一種bin文件是單片機的下載文件。下面介紹這兩種格式的區別。本文引用地址:http://www.eepw.com.cn/article/201901/396291.htm  HEX文件和BIN文件是我們經常碰到的2種文件格式。
  • 51單片機玩轉物聯網基礎篇01-開發環境搭建
    前言上至航天,下至兒童玩具,凡事沾一點智能的東西,都離不開單片機的身影......,本文開始,我們學習STC89C52單片機,這款單片機屬於8051系列單片機,51單片機作為入門級單片機不僅在教學實驗中應用廣泛,在實際項目中應用亦是十分廣泛。
  • 單片機焊接過程中應該注意的幾大問題
    單片機焊接的過程中,應該注意一下幾點  1、注意電解電容、發光二極體、蜂鳴器的正負極性不能接反、三者均是長的管腳接正極、短的管腳接負極,如接反輕則燒毀元氣件
  • esp8266-01板的arduino燒寫方式分享
    esp8266-01板的arduino燒寫方式分享:   這個燒寫方式,是ESP8266無線模塊針對於Arduino開發的一種燒寫方式,可以方便的在Arduino IDE上對ESP8266進行透傳燒寫或者其他模式的燒寫。   第一步:在電腦上下載Arduino ide。並安裝好ide。我用的是1.6.5版本的IDE。