正点原子STM32 ISP电路分析
最近想畫一塊STM32的開發板,需要設計ISP自動下載電路,在此借鑒正點原子的ISP自動下載電路的硬件設計。由于模擬電路不是很精通,本章結合PSpice進行仿真理解ISP的原理。
1. STM32的啟動方式
講到下載方式,一定得首先首先知道STM32的啟動方式。STM32一共有三種其中方式,如下圖所示
| 0 | X | 內部FLASH |
| 1 | 0 | 系統存儲器 |
| 1 | 1 | 內部RAM |
- 內部FLASH通常對應的是我們使用下載器進行燒錄,比如常用的Jlink、STlink、DAPlink等等
- 系統存儲器通常對應的是使用串口下載,因為STM32在出廠時就內置了一段BootLoader,這段BootLoader用于啟動串口下載的程序。
- 內部RAM沒用用過, 就不過多介紹
如果我們的開發板沒有一鍵下載電路的話,我們下載程序時要把boot 0的跳冒從接GND變成接VCC,然后下載,按一下復位按鍵程序才能燒錄,最后再把接VCC變成接GND,并且再按一下復位,這樣單片機才能運行程序,每一次燒錄程序都很麻煩。而當我們的單片機有了一鍵下載電路后,就不需要改變boot 0的值,直接燒錄就可以運行。下面就我個人來分析一下一鍵下載電路。串口ISP通信的詳細原理請看著: STM32 串口 ISP 原理
2. ISP自動下載電路設計
所謂自動就是指用戶無需按下復位鍵和BOOT切換來實現下載,一般復位管腳會接上拉電阻,默認為高電平,而BOOT0管腳一般會接下拉電阻,默認為低電平,我們需要設計一種電路,在下載的時候將RESET管腳設置為低電平,BOOT0設置為高電平。怎么才能設置這兩個管腳呢?解決的思路是通過上位機去控制這兩個管腳的電平,具體怎么控制呢?這就涉及到串口的硬件流控制了,上位機是可以通過編程控制USB轉TTL芯片的相關管腳狀態的。
2.1 正點原子ISP自動下載電路設計
如下圖所示為正點原子ISP自動下載電路設計原理圖。ISP電路只要看左邊部分,下載軟件(mcuISP或者FlyMCU等軟件)需要設置為DTR的低電平復位和RTS高電平進BootLoader,此時CH340G的RTS#為低電平,DTR#為高電平,電平相反的原因是:DTR#和RTS#表示反向標志的的意思。因為我們的mcuisp軟件使用的是232標準電平,而單片機是ttl電平,他們兩者電平是相反的。所以原理圖中DTR后面加了一個#表示我們CH340G芯片此時接收到的DTR是高電平(與我圈起來的序號1中的DTR低電平相反所以是高電平)。并不是說CH340G芯片會進行邏輯非運算,僅僅只是一個提醒標志而已。由電路圖可知,Q3會導通,導致BOOT0管腳為高電平,Q2也會導通, 導致RESET管腳為低電平,此時MCU進入復位,此時就能達到我們的設置電平的作用了。
2.2 ISP自動下載電路全過程解析
如下圖所示,為mcuisp串口燒錄軟件的全過程,我們需要設置好1和3就可以實現自動下載了,標號2處顯示的是下載時的調試信息。從圖示我們可知分為以下幾步:
- DTR置低、RTS置高(對應DTR#置高、RTS#置低), 延時100ms
- DTR置高、RTS維持高
- 程序下載
2.2.1 DTR置低、RTS置高(對應DTR#置高、RTS#置低) 階段
此時Q3和Q1都導通,BOOT0為高電平,RESET為低電平,STM32此時進入BootLoader,為燒錄程序做準備。下圖為仿真圖,注意在仿真的時候需要將RESET的上拉電阻和BOOT0的下拉電阻畫上, 不然很難分析出BOOT0和RESET的電平變化。
2.2.2 DTR置高、RTS置高(對應DTR#置低、RTS#置低) 階段
此時Q3導通,Q1截止,BOOT0為高電平,RESET為高電平,釋放復位。下圖為仿真圖
經過這兩步后就可以通過串口下載代碼了
2.3 疑問點
2.3.1 為什么需要將兩個三極管連接在一起?
這是因為Q3在這里其主導作用,當RTS#為低電平時,給Q2的射極提供了一個電平,若RTS#為高電平,此時不管DTR#為任何電平,Q2都不會導通,此時RESET為高電平。下圖為仿真結果
2.3.2 為什么需要那個IN4148二極管?
這個二極管的作用我覺得是防止手動復位電路影響到ISP自動下載電路,目前的仿真結果看不出這個結論。至于是不是得實物調試,有知道的大佬也可以麻煩告訴我
2.3.3 下載完成后RTS#是不是會自動變為高電平?
理論上在下載程序后需要將BOOT0拉低, 此時需要Q3截止,那就是需要RTS#為高電平,但是我們沖上位機下載日志中沒看出這個調試信息, 具體得看實物的電平。
參考資料
- stm32中的ISP一鍵下載原理分析
- STM32 串口 ISP 原理
總結
以上是生活随笔為你收集整理的正点原子STM32 ISP电路分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ppt如何替换其他mo ban_如何制作
- 下一篇: android_studio上传svn的