STC單片機(jī)的程序下載使用ISP模式,下載程序通過微機(jī)上串口,或者USB轉(zhuǎn)串口,與單片機(jī)上特定的下載端口相連進(jìn)行下載。不需要任何第三方的下載器,調(diào)試器便可以完成單片機(jī)的開發(fā),使用起來非常方便,但缺點是每次下載都需要人工復(fù)位才行。
本文介紹一種全自動STC下載電路,使得整個下載過程不需要人工干預(yù),這就大大提高的程序的開發(fā)效率,使得通過下載-運行-測試 模式完成程序的開發(fā)。
STC下載模式介紹
STC單片機(jī)ISP下載程序過程具有非常確定的流程,通過以下三個步驟。
PC在TXD每隔10ms發(fā)送兩個相連的0xff字節(jié);
單片機(jī)上電,并發(fā)送給相關(guān)的信息;
PC重新握手后繼續(xù)完成芯片的擦寫和下載程序。
其中單片機(jī)上電,進(jìn)行冷啟動是一個必要的環(huán)節(jié)。往往在單片機(jī)設(shè)計的時候。這部分通過手動的機(jī)械開關(guān)來給單片機(jī)上電。設(shè)計的全自動下載電路就是來替代手動上電的環(huán)節(jié)。
為了避免單片機(jī)從下載串口管腳獲取電能,則需要通過電阻和二極管來進(jìn)行有效的隔離。
相關(guān)的下載實驗參見下面的博文:
STC單片機(jī)下載實驗
STC下載程序界面。其中最低波特率設(shè)置為19200, 最高波特率設(shè)置為115200下載的成功率比較高。至于其它的設(shè)置為何單片機(jī)無法下載,還無法進(jìn)行解釋。
全自動下載電路
1. 基本原理
計算機(jī)下載程序時,會在串口(或者USB轉(zhuǎn)串口)的TXD管腳上出現(xiàn)低電平脈沖,并且在整個下載程序過程,TXD都會有低電平脈沖。設(shè)計的電路板可以通過檢測該低脈沖,來產(chǎn)生單片機(jī)電源上電控制脈沖,使得單片機(jī)斷電,然后重新上電。模擬原本手工操作的過程。
單片機(jī)供電部分,原本通過一個開關(guān),現(xiàn)在是通過一個受控繼電器開關(guān)完成掉電和上電過程。
2. 電路的功能描述
根據(jù)前面描述的原理,全自動下載電路包括有兩部分:
USB轉(zhuǎn)串口電路:這部分是由PL2303(SOP-8)完成;
電源控制電路:這部分包括有兩個單穩(wěn)態(tài)時間定時電路和繼電器電路組成;
電路功能框架如下圖所示:
▲ 全自動下載電路框圖
關(guān)于USB轉(zhuǎn)串口部分可以參見博文“Prolific PL2303SA 調(diào)試[2]”中的內(nèi)容,在這里就省略了。
電源控制電路中,可重復(fù)觸發(fā)單穩(wěn)態(tài)定時器是將微機(jī)串口TXD上的脈沖合并成一個大的脈沖。該脈沖再驅(qū)動后面的單穩(wěn)態(tài)定時器形成一個電源開關(guān)脈沖信號,驅(qū)動繼電器完成單片機(jī)的電源開關(guān)。
觀察STC的下載程序的波形,可以看到在整個下載過程中,脈沖中的最大時間間隔在0.5~1秒鐘,所以設(shè)計可重復(fù)觸發(fā)的單穩(wěn)態(tài)定時器的時間常數(shù)需要大于一秒鐘。
考慮到單片機(jī)掉電過程中,電路中包括有儲能電源濾波電容,需要放電,根據(jù)手工測試,掉電時間大于1秒鐘基本上可以保證單片機(jī)電路可靠掉電。所以第二個單穩(wěn)態(tài)定時器的時間設(shè)置為1秒鐘。
使用繼電器來控制單片機(jī)的電源,可以適應(yīng)單片機(jī)電路工作不同的電流范圍。這比使用半導(dǎo)體開關(guān)器件有更加可靠的控制效果。另外,這也可以將調(diào)試電路的工作電源與下載板的工作電源有效的隔離。
3. 電路原理圖
(1)電路圖
全自動程序下載接口板的原理圖如下圖所示。
▲ 全自動程序下載接口板
(2) 電路功能描述
定時器使用施密特反相器74HC14來設(shè)計。由于HC14中包括有六個相同的反相器,而在實際中只需要三個。所以為了保證工作的可靠和接近理想狀態(tài),就將HC14中六個反相器并聯(lián)成三個反相器。
第一組反相器是對TXD信號進(jìn)行隔離,并驅(qū)動后面的二極管+RC電路。二極管D1, 電阻R11,電容C1,C2組成了可重復(fù)觸發(fā)的單穩(wěn)態(tài)電路,由第二組反相器整形后,驅(qū)動后面的單穩(wěn)態(tài)定時器。
第二組定時器是由電容C20,電阻R12以及D3組成,最后經(jīng)過第三組反相器形成開關(guān)脈沖,通過三極管T1驅(qū)動繼電器RL1完成單片機(jī)電源的斷開與接入。
PL2303輸出的RXD信號也通過繼電器RL1另外一組開關(guān)與單片機(jī)相連,這樣也可以確保在單片機(jī)斷電的時候,RXD不會給單片機(jī)供電。PL2303的TXD還是通過二極管D2與單片機(jī)相連,可以在單片機(jī)掉電時不向單片機(jī)供電。
(3)輔助電路功能
除了上面主要電路功能之外,按鈕BTN1可以實現(xiàn)手動控制繼電器的開關(guān),在必要的時候手動控制下載過程。
發(fā)光二極管LED顯示可重復(fù)觸發(fā)單穩(wěn)態(tài)電路的狀態(tài)。當(dāng)它滅的時候,才能夠進(jìn)行下一次程序下載;當(dāng)LED亮的時候,說明上一次下載過程還沒有完成,此時不能夠進(jìn)行下載程序。
4. PCB板
繪制實驗電路,其中為了適合快速單面制版,對電路元器件的布局和布線做了考慮。如果使用商業(yè)制版,可以考慮雙面排布元器件,以便進(jìn)一步縮小電路的面積。
經(jīng)過快速制版和焊接,形成全自動下載電路的測試版。
根據(jù)原理圖設(shè)計,下載板的五個引線的功能定義如下表所示:
序號功能符號
1工作電源+5V
2單片機(jī)電源+5VC
3底線GND
4串口輸入RXD
5串口輸出TXD
功能測試
1. 測試單片機(jī)系統(tǒng)
使用STM15W415AS單片機(jī)的實驗板作為測試,利用面包板固定測試單片機(jī)電路板。將下載板的接口通過面包板與測試單片機(jī)板的電源、下載串口線相連。
2. 測試過程
設(shè)置STC的ISP程序,選擇MCU型號,調(diào)入測試程序。設(shè)置最低波特率為19200, 最高波特率115200。
(1)測試下載程序
按動下載/編程按鈕,便可以開始下載程序。此時下載板上的繼電器會自動斷開一秒鐘,然后重新上電。ISP程序完成握手信號之后,對單片機(jī)進(jìn)行擦除、編程等過程。當(dāng)操作成功之后,經(jīng)過大約2秒鐘,下載板上的LED熄滅。之后便可以進(jìn)行下一次的程序下載了。
(2)測試“檢測MCU選項”
按動“檢測MCU選項”,可以自動完成單片機(jī)的選項測試。
小結(jié)
在單片機(jī)開發(fā)中,為了簡化調(diào)試過程,可以通過迭代“下載-運行”過程完成程序的開發(fā)驗證過程。使用全自動下載電路板,則可以避免在程序下載過程中的手動開關(guān),提高程序開發(fā)的效率。
在STC-ISP程序中,包括有“當(dāng)目標(biāo)文件變化時自動裝載并發(fā)送下載命令” 選項,利用該選項,可以在程序開發(fā)IDE完成對工程文件編譯之后,自動觸發(fā)ISP程序下載。此時,全自動下載板將原來手工對電源控制的過程省略,實現(xiàn)了程序的修改-編譯-下載-觀察的自動過程,提高了程序開發(fā)的效率。
下面使用touch命令來模擬修改HEX文件,可以看到可以直接觸發(fā)ISP程序完成自動單片機(jī)程序下載。
本文所涉及到的電路板的AltiumDesign工程文件可以CSDN中下載。
責(zé)任編輯:haq
-
電路
+關(guān)注
關(guān)注
172文章
5818瀏覽量
171639 -
單片機(jī)
+關(guān)注
關(guān)注
6026文章
44459瀏覽量
631241 -
ISP
+關(guān)注
關(guān)注
6文章
473瀏覽量
51644
原文標(biāo)題:自制STC單片機(jī)下載電路,再也不用人工干預(yù)了
文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論