您現在的位置是:首頁 > 運動

學微控制器要循序漸進,先從瞭解程式的燒寫方式開始吧

由 玩轉嵌入式 發表于 運動2021-11-01
簡介SWIM單匯流排下載方式這種下載方式是針對STM8系列的微控制器,這種方式只需要一根線即可實現程式的下載,所使用的工具為ST-Link,如下圖所示:ST-Link以上為幾種常見的燒寫方式以及所使用的工具,歡迎大家留言評論,如果轉載請註明作者

燒是怎麼寫的

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

1。使用JTAG介面實現

JTAG介面是一種標準的測試協議,可以實現程式設計時線上除錯,利用單步追蹤可以很方便的查詢程式碼的Bug,大多數的微控制器都支援這種介面。這種介面除了電源線和復位引腳之外,還要用到微控制器的四個引腳,分別是:TDI、TMS、TCK、TDO,他們所代表的含義如下所示:

TDI--資料輸入

,所有寫入暫存器的資料都是透過TDI介面序列輸入的;

TMS--模式選擇

,Jlink輸出給目標CPU的時鐘訊號;

TCK--時鐘訊號

,所有資料的輸入輸出都是以該時鐘訊號為基準的;

TDO--資料輸出

,所有從暫存器讀出的資料都是透過TDO介面序列輸出的;

以上這四個引腳都是協議裡強制要求的,而且協議建議在設計電路時要選用上拉電阻。JTAG介面有多種形式,常用的20引腳、14引腳和10引腳。以20引腳JTAG為例,所設計的JTAG燒寫電路如下圖所示:

學微控制器要循序漸進,先從瞭解程式的燒寫方式開始吧

JTAG介面

上圖中JTAG介面都透過電阻上拉了,有的微控制器的這幾個引腳在內部已經上拉,所以這幾個上拉電阻可以省略,減少了成本和PCB空間的佔用。

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

學微控制器要循序漸進,先從瞭解程式的燒寫方式開始吧

Jlink實物圖

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

2。SWD介面燒錄方式

SWD是一種序列除錯介面,與JTAG相比,SWD只需要兩根線,分別為:SWCLK和SWDIO。他們的含義如下:

SWDIO

——序列資料線,用於資料的讀出和寫入;

SWDCLK

——序列時鐘線,提供所需要的時鐘訊號;

一般來說,大多數微控制器的JTAG介面和SWDIO介面是複用的,SWD也是用J-Link工具來實現的。所以在使用的時候,只需要在軟體介面做一下選擇,使用SWD方式還是JTAG方式,硬體上無需改動。除了J-Link外,意法半導體的ST-Link也是支援SWD模式的。

學微控制器要循序漸進,先從瞭解程式的燒寫方式開始吧

SWD介面

SWD的介面如上圖所示,可以看出,SWD和JTAG是相互複用的,由於SWD只需要兩根線所以大大減少了對微控制器GPIO口的佔用,SWD方式也是可以線上除錯的。

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

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

學微控制器要循序漸進,先從瞭解程式的燒寫方式開始吧

UART串列埠燒寫電路

在與微控制器連線的時候,一定要注意交叉連線,所謂交叉連線即,微控制器的TXD接串列埠RXD,微控制器的RXD接串列埠TXD,否則資料通訊失敗。51微控制器在使用該方式下載時需要斷一下點再上電才能下載。

STM32微控制器可以使用UART來實現程式下載,但是需要選擇BOOT的模式,現在透過CH340G晶片可以實現自動ISP的下載方式,即不需要手動設定BOOT模式。

4。SWIM單匯流排下載方式

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

學微控制器要循序漸進,先從瞭解程式的燒寫方式開始吧

ST-Link

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

推薦文章