野火stm32f103的mcuisp设置与一键ISP下载原理分析总结
最近學(xué)習(xí)STM32遇到的一鍵ISP下載原理與MCUISP下載等問題總結(jié):
1、mcuisp是stm32串口下載軟件,在載入程序時,需要進(jìn)行如下圖所示操作:
其中注意設(shè)置第四步DTR低電平復(fù)位,RTS高電平進(jìn)bootloader(mcuisp采用的RS-232電平邏輯,即負(fù)邏輯電平)
2、ISP下載原理
ISP(In-System Programming)在系統(tǒng)可編程,指電路板上的空白器件可以編程寫入最終用戶代碼, 這里ISP就是通過單片機(jī)專用的編程接口(一般是串口)對單片機(jī)內(nèi)部的Flash存儲器進(jìn)行在線編程。
ISP又分為普通ISP和一鍵ISP
STM32有三種啟動方式,通過配置boot引腳不同電平即可設(shè)置不同啟動方式,如下圖
原理圖如上圖所示,ISP模式即要把BOOT0,BOOT1設(shè)置為1、0;BOOT1在板子默認(rèn)為0,要想把BOOT0設(shè)置為0,三極管8550必須要導(dǎo)通,此處可理解為就是8550箭頭方向PN結(jié)要導(dǎo)通,即RTS為低電平時導(dǎo)通,BOOT0引腳連接了10k電阻,所以BOOT0輸出高電平1;此時進(jìn)入ISP模式,對于普通ISP此時需要手動復(fù)位,這個電路是一鍵ISP電路自動復(fù)位,復(fù)位電路NRST引腳默認(rèn)為高電平,stm32復(fù)位是低電平復(fù)位,所以一鍵下載電路中8050要導(dǎo)通,即同理按箭頭PN結(jié)方向DTR輸入為高電平,U18為模擬開關(guān)1腳2腳在使能狀態(tài)下為導(dǎo)通狀態(tài),所以8050導(dǎo)通,NRST就被拉到與RST一樣的電平,使系統(tǒng)重新進(jìn)入ISP模式,此時boot狀態(tài)被鎖存了,然后通過上位機(jī)自動控制RTS和DTR引腳使BOOT0和NRST還原成原來的狀態(tài)即BOOT0為0,NRST為1;重新進(jìn)入ISP是為了實(shí)現(xiàn)從系統(tǒng)存儲器啟動BootLoader,BootLoader程序ST自帶的引導(dǎo)程序,通過BootLoader將程序從串口下載到Flash中;這樣程序?qū)嶋H上是通過串口最終下載到了FLASH中,程序從flash啟動。其中DTR和RST與CH340連接,CH340是USB轉(zhuǎn)TTL邏輯電平片,DTR與RTS電平由mcuisp上位機(jī)提供,這里有一個問題,mcuisp中設(shè)置DTR為低電平和RST為高電平與這里原理中的電平剛好相反,這是因?yàn)閙cuisp是用的RS-232電平,這與TTL電平剛好相反,之前也一直糾結(jié)這個地方。加模擬開關(guān)是為了避免反復(fù)復(fù)位進(jìn)入ISP模式,在剛上電時,系統(tǒng)電平不穩(wěn)定,所以加模擬開關(guān),通過延遲使能引腳EN使能時間,加入了RC充電電路,EN高電平復(fù)位,一般TTL大于2V認(rèn)為是高電平,所以通過電容充電時間延遲EN到達(dá)高電平時間,跳過系統(tǒng)電平不穩(wěn)定時間,避免重復(fù)復(fù)位。
最后如果有理解不準(zhǔn)確錯誤的地方希望大家能多多指正。
總結(jié)
以上是生活随笔為你收集整理的野火stm32f103的mcuisp设置与一键ISP下载原理分析总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: usb 驱动
- 下一篇: 前端学习(3248):react的脚手架