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