1. 程式人生 > >正點原子stm32f103mini版串列埠下載BOOT0引腳與與CH340G晶片引腳RTS、DTR、的關係原理

正點原子stm32f103mini版串列埠下載BOOT0引腳與與CH340G晶片引腳RTS、DTR、的關係原理

        在做串列埠實驗時,一直搞不明白一鍵下載是怎麼回事,於是自己就去捉摸CH340G這塊晶片,那麼這裡我將詳細的講解一下這塊晶片怎麼與stm32配合使用的。

1、由CH340G晶片資料可以知道這兩個引腳的功能都為輸出

RTS#:訊號輸出,初始狀態為高電平,表示晶片接收資料已經準備就緒,下載程式時會變成低電平。

DTR#:訊號輸出,初始狀態為高電平,下載程式時會變成低電平(但是,是在RTS變為低電平之後才為低)。

2、stm32BOOT

根據BOOT參考資料的配置可知


可以先把BOOT1直接接地,單獨控制BOOT0來調節啟動模式;

當BOOT0為低電平時,系統執行flash中的程式碼,當BOOT0為高時,可用串列埠下載程式到flash(且系統必須復位才可以)

當程式下載完成後CH340G的引腳RTS、DTR都變為高電平,使得BOOT0恢復原來的低電平狀態,之後系統開始讀取儲存器flash的地址的程式,執行程式碼。

3、下面由通過這張圖來說明電路設計的思路


上電;首先BOOT1接地先。BOOT0下拉10K電阻,保證開始為低電平(在stm32f103板子上電的時候,保證能直接讀取flash中的程式),且RTS、DTR都為高,所以BOOT0初始為低電平,reset初始為高電平(低有效),那麼重點來了。

        當串列埠開始傳輸資料前(開啟串列埠軟體時mcu),”DTR為高,RTS為低“,這樣圖中Q1導通reset為低開始復位,Q2導通BOOT0變為高,開始寫程式準備。之後DTR變為低,復位結束,開始寫程式。寫完 後BOOT0自動恢復到低電平讀取flash的狀態,或者可手動復位。stm32就可以執行flash中下好的程式了。

        這裡需要說明一點BOOT0非常敏感,在下載程式時僅僅需要一點點時間的高電平就可以下載程式,,且不需要保持到下載程式結束。