看過之前很多STC自動下載方法,這里提供另外一個思路,歡迎指點。
1. 起因
最近搞了個普中的51學習板研究,如下圖。廠家提供了一個自動下載程序,但是支持的芯片型號不多。研究其電路發現,原理是靠串口的DTR端控制單片機復位,和Arduino的原理差不多,不同是STC單片機下載時必須斷電完成復位,該電路就是DTR控制斷電。
所以為了自動下載又可以用官方STC-ISP程序支持各種型號單片機,考慮做一個外掛,達到下載程序時控制DTR達成斷電復位
2. 準備材料
1個USB轉串口的下載器,需要引出DTR的,比如下面那個,或者你可以USB轉串口芯片的DTR腳自己引出。
1個三極管s8050,一個電阻1k
3. 硬件電路
原理就是DTR端控制單片機供電,可以用學習板那套電路,以下為山寨供電電路,湊合能用。
4. 軟件說明
上位機控制串口的DTR端的高低靠以下函數
EscapeCommFunction(h, SETDTR);
EscapeCommFunction(h, CLRDTR);
軟件原理主要是注入代碼到STC官方程序中,掛鉤打開串口函數CreateFile,在打開串口后執行上面兩句控制DTR,完成復位。涉及到部分IATHook知識,有興趣深入研究的可以看代碼,或者百度相關知識。
本軟件相當于STC-ISP的外掛,運行時修改其代碼環境,不修改原始文件。代碼在下面,Delphi7環境編譯。
5. 整體效果
測試環境用的STC12C2052AD,STC-ISP程序用的6.86,本程序也用于普中學習板
上位機.zip
(221.07 KB, 下載次數: 128)
2017-7-12 11:54 上傳
點擊文件名下載附件
delphi7
|