STM32的一键下载CH340 DTR RTS与复位电路NRST的学习笔记
這兩天在學習stm32最小系統板的時候 對這一部分特別的不理解 于是就去找了很多東西去看?
先說一鍵下載電路吧 先引用一張正點原子的原理圖:
在芯片手冊上查找ch340的手冊,上面對于?RTS與DTR的定義是這樣的?:
?
這就說明 我們是可以去控制RTS與DTR的一個高低電平的 從而間接的控制Q2、Q3兩個三極管的開關??這樣一來BOOT0的高低電平也是會受我們的控制的
這里先插入一點 就是stm32下載程序所需要的條件(芯片手冊有提到)
?這里面我們只需要知道當BOOT0為0 (BOOT1是0/1都無所謂)的時候stm32正常工作,當BOOT0為1? BOOT1為0的時候stm32會進入下載模式,這個時候我們就可以燒錄程序進去了
為了簡化電路設計 BOOT1直接接地(BOOT1為0) 這樣我們只需要控制BOOT0的高低電平就可以控制stm32的下載模式或者正常運行模式了。
我們可以讓DTR輸出高電平? RTS輸出低電平 NPN管Q2導通 可以看做導線 此時Q3也就會導通,BOOT0輸出為1 stm32進入下載模式。
我們也可以DTR輸出低電平,NPN管Q2截止,Q3也會截止,BOOT0輸出為0,stm32進入正常運行模式。
你以為這么簡單就完了?其實stm32下載程序的時候是需要復位的,當BOOT0為1? BOOT1為0時stm32進入下載模式,需要給stm32的復位管腳NRST輸入一個低電平,讓單片機復位,要能一鍵下載,復位電路是肯定少不了的。查詢stm32的芯片手冊,我們又知道了管腳NRST的低電平得小于0.8V并且持續100ns,這樣一來單片機實現復位了。
這里還是放一張正點原子的手動復位電路原理圖
這兩個RESET的信號都會連接到NRST,簡單理解就是說當RESET輸出低電平小于0.8V并且持續100ns,stm32就會復位,先說上圖,這個算是一個手動復位RC充電電路,上電的瞬間,電容C12兩端電壓可以認為是0,RESET會輸出低電平,stm32處于復位狀態,VCC3.3通過電阻R3給電容充電,當電容C12的電壓升高到0.8V以上,stm32退出復位狀態進入運行狀態。當我們需要手動復位的時候只需要按下按鈕,讓電容放電,松手后就會重復上述流程,stm32會進行一次復位。
其實復位電路不止這一個,還記得一鍵下載也需要復位嗎,如下圖(和上面的是重復的,嘿嘿不用翻上去看了。)
?進入下載模式后stm32需要復位才能下載,我們可以讓DTR輸出高電平? RTS輸出低電平 NPN管Q2導通,可以看做導線,Q2的發射集又與RTS相連(RTS低電平,近似于接地),這個時候大部分電壓都在R46上面,RESET輸出低電平?此時Q3也就會導通,BOOT0輸出為1,stm32進入下載模式。
我當時其實是不理解為什么RESET會輸出低電平,但是其實原理很簡單,附上一張自己理解后畫的圖
?
?這里我把這兩個引腳連接起來了,為了方便理解(兩張圖原理是一樣的),后面還是會以正點原子的原理圖來進行講解。開關二極管1N484的陰極因為Q2的導通、大部分電壓落在R46上面,二極管的陰極電壓被拉的很低,二極管的陽極相當于只加了0.62V(1N484的管壓降是0.62V),還是低電平(因為二極管導通,在我畫的這個圖上面來看 R6會多吃掉一點3.3V的電壓,讓二極管的陽極能從一個高電平到一個低電壓的狀態),這個是導通的時候,RESET會輸出低電平。
當DTR輸出低電平,NPN管Q2截止,相當于電阻無窮大,大部分電壓都給三極管吃掉了,二極管的陰極是高電平,二極管的陽極也是高電平,所以二極管會截止。Q3也會截止,BOOT0輸出為0,stm32進入正常運行模式。有個魔鬼細節,就是說進入正常模式后也需要復位,而C12電容在二極管導通的時候,電容的電是放完了的,當BOOT0輸出為0,stm32進入正常運行模式的時候,電容是在充電的,RESET會輸出低電平,stm32復位。
水平有限,有理解不對的地方望糾正。
參考資料
【stm32】一鍵下載電路
STM32 復位電路設計
總結
以上是生活随笔為你收集整理的STM32的一键下载CH340 DTR RTS与复位电路NRST的学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: avada打开速度慢怎么办?
- 下一篇: WSF操作系统抽象层学习笔记 (五)--