<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 關(guān)于CH340在STM32實(shí)現(xiàn)一鍵下載電路的研究

          關(guān)于CH340在STM32實(shí)現(xiàn)一鍵下載電路的研究

          作者: 時(shí)間:2016-11-10 來源:網(wǎng)絡(luò) 收藏
          在做基于STM32的多功能MP3播放器的課題時(shí),在程序下載這部分時(shí)借鑒了正點(diǎn)原子開發(fā)板上的一鍵下載電路,采用CH340G這款芯片設(shè)計(jì)。
          在畫PCB初期原理圖部分,對(duì)采用CH340G設(shè)計(jì)的一鍵下載電路不甚了解,于是花了一些時(shí)間來研究一下這個(gè)電路。
          引用正點(diǎn)原子的一鍵下載電路:
          我們通過RTS#和DTR#兩個(gè)輸出信號(hào)來控制STM32 IC的BOOT0和BOOT1兩引腳來選擇啟動(dòng)模式,如下表:
          當(dāng)燒寫程序時(shí),我們希望BOOT0=1,BOOT1=0。當(dāng)燒寫完成后我們希望BOOT0=0,BOOT1=0(這個(gè)模式BOOT1可以是0可以是1,這里我們讓BOOT1拉低,即整個(gè)過程BOOT1都為L(zhǎng)接地,簡(jiǎn)化電路設(shè)計(jì))。這里我們只需考慮BOOT0的高低。
          查看STM32的參考手冊(cè),如下圖:
          注意表6下方第一句話:“在系統(tǒng)復(fù)位后,SYSCLK的第4個(gè)上升沿,BOOT引腳的值將被鎖存。”

          OK,綜上所訴,我們可以得到:
          1、系統(tǒng)上電,BOOT0需為L(zhǎng),進(jìn)入模式一。上電復(fù)位后,在SYSCLK的第4個(gè)上升沿,BOOT引腳的值將被鎖存,進(jìn)入主閃存存儲(chǔ)器,執(zhí)行我們燒寫的代碼。
          2、當(dāng)我們編譯好程序,生成HEX文件。在燒寫HEX文件時(shí),BOOT0需為H,進(jìn)入模式二。然后,系統(tǒng)必須復(fù)位一次(因?yàn)橛?知道,系統(tǒng)上電后默認(rèn)執(zhí)行代碼,即模式一),讓系統(tǒng)重新鎖存BOOT引腳。系統(tǒng)進(jìn)入模式二,開始燒寫HEX文件。
          3、燒寫完成后,我們希望系統(tǒng)再次進(jìn)入模式一,執(zhí)行代碼。但正點(diǎn)原子的一鍵下載電路并沒有讓系統(tǒng)完成燒寫程序后再次復(fù)位重新鎖存BOOT引腳進(jìn)入模式一。這個(gè)原因應(yīng)該是MCUISP軟件幫我們配置好了,在燒寫完成后會(huì)有報(bào)告:“成功從08000000開始運(yùn)行”。在參考手冊(cè)中有這樣一段話:
          從另一個(gè)方向來理解它,可以這么說:主閃存存儲(chǔ)器從地址(0x0800 0000)訪問,不管是系統(tǒng)自動(dòng)的還是軟件配置的,只要系統(tǒng)指針跳到主閃存存儲(chǔ)器的地址(0x0800 0000)處開始執(zhí)行代碼,就可以了,結(jié)果是我們想要的。
          以上就是一鍵下載電路需要實(shí)現(xiàn)的功能,原子兄幫我們?cè)O(shè)計(jì)出來了。如果看不懂的話,可以參考我下面的解釋。
          我們需要注意一點(diǎn):CH340G上電后DTR#和RTS#都為高電平,在用MCUISP燒寫軟件時(shí),我們?cè)谲浖路竭x擇“DTR的低電平復(fù)位,RTS高電平進(jìn)BootLoader”,CH340G IC在實(shí)際操作時(shí)引腳的變化為“DTR#拉高,RTS#拉低”,即軟件設(shè)置和實(shí)際情況是取非的,相反的。
          畫個(gè)時(shí)序圖,直觀一些:



          關(guān)鍵詞: CH340在STM32一鍵下

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();