STM32單片機串口一鍵下載電路與操作方法詳解
在此介紹STM32單片機串口一鍵下載電路與操作方法詳解。
本文引用地址:http://2s4d.com/article/201808/384877.htmSTM32三種啟動模式對應(yīng)的存儲介質(zhì)均是芯片內(nèi)置的,它們是:
1)用戶閃存 = 芯片內(nèi)置的Flash。
2)SRAM = 芯片內(nèi)置的RAM區(qū),就是內(nèi)存啦。
3)系統(tǒng)存儲器 = 芯片內(nèi)部一塊特定的區(qū)域,芯片出廠時在這個區(qū)域預(yù)置了一段Bootloader,就是通常說的ISP程序。這個區(qū)域的內(nèi)容在芯片出廠后沒有人能夠修改或擦除,即它是一個ROM區(qū)。
要了解STM32的幾種啟動模式.
BOOT0接GND,BOOT1接GND.那就是正常的啟動模式,從flash加載代碼.
而BOOT0接V3.3,BOOT1接GND.則是ISP模式,也就是串口更新代碼.
其次,你要了解STM32 ISP下載代碼的過程.
首先BOOT0接V3.3,然后復(fù)位STM32.STM32就會加載ISP代碼(固化存儲在內(nèi)部),從而進入ISP模式.此時便可以通過串口下載程序了.
最后再來看看一鍵下載是怎么實現(xiàn)的呢?
從原理圖可知:DB9串口的RTS控制BOOT0,DTR控制RST.
我們要達(dá)到下載的目的,就必須先讓RTS拉高BOOT0(設(shè)置BOOT0為1),然后再讓DTR控制RST為低(STM32為低電平復(fù)位).然后再釋放RTS為高(停止復(fù)位),然后再開始串口下載代碼(此時BOOT0可以為高,也可以為低).
所以我們看到mcuisp連接過程是:
DTR電平置高(3-12V),復(fù)位(DTR接了RST)
RTS置低(-3--12V),選擇進入BootLoader(RTS接了BOOT0)
...延時100毫秒
RTS電平變高(+3-+12V)釋放復(fù)位(釋放復(fù)位,但是此時BOOT0為高,所以進入ISP模式)
開始連接...4, 接收到:1F (連接成功)
在串口COM0連接成功@230400bps,耗時437毫秒
DTR維持高
【需要注意的是 DTR_N是DTR的反相電平 RTS_N是RTS的反相電平】
注:此電路不需要USB轉(zhuǎn)串口芯片,只要一個普通的DB9串口就可以完成程序下載工作。對于那些只有串口的單片機控制板無疑是一個完美的選擇。
- STM32單片機中文官網(wǎng)
- STM32單片機官方開發(fā)工具
- STM32單片機參考設(shè)計
評論