999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

STM32F10x一鍵串口下載的電路設計與調試

2018-05-16 09:29:16
單片機與嵌入式系統應用 2018年5期
關鍵詞:調試程序信號

(深圳技師學院 電子信息技術系,深圳 518052)

引 言

傳統的8/16位單片機因其有限的性能和簡單的內部外設模塊,使得其在設計一些功能稍顯復雜的電子產品時顯得捉襟見肘。而大多數32位處理器又因為其高功耗、高成本、復雜的開發應用環境限制了它在低端電子產品中的使用。因此基于ARM Cortex-M內核的32位嵌入式處理器應運而生,Cortex-M內核是ARM公司針對一些對成本比較敏感的低端嵌入式應用而專門開發的ARM處理器內核。

行業中基于Cortex-M內核的ARM處理器多如牛毛,這其中又以ST公司開發的基于Cortex-M3內核的STM32F10x系列處理器為其中的翹楚。STM32F10x系列處理器因其高性能(主頻達到72 MHz,同類產品性能最高)、低功耗、完善的器件軟件庫和開發工具鏈以及簡單的硬件應用環境(如芯片無BGA封裝等)使得其作為32得到廣泛應用。

STM32F10x系列處理器通常情況下有兩種方式來下載程序到芯片內部的主閃存存儲器中:一種是外接專用的ARM仿真器(如J-LINK仿真器等)通過芯片的JTAG接口將用戶編寫的應用程序下載到芯片內部的主閃存存儲器,另一種是通過芯片的ISP接口將用戶編寫的應用程序下載到芯片內部的主閃存存儲器,不需要外接專用的ARM仿真器。

可以看出,采用ISP方式來下載程序時,成本遠低于采用仿真器的方式下載程序。但是由于采用ISP方式下載程序需要用到芯片出廠時固化在芯片內部的Bootloader程序,下載完用戶的應用程序后又需要芯片重新上電且需立即切換到去執行用戶的應用程序,因此芯片通常需要通過跳線的方式在這兩者之間進行轉換,這給用戶的應用帶來了極大的不便。

鑒于此,本文設計了一種實用的STM32F10x系列處理器一鍵串口下載電路,運行調試PC機上的MCU-ISP軟件將用戶的應用程序下載到芯片內部的主閃存存儲器后,馬上就能運行用戶的應用程序,從而極大地減少采用此芯片時的開發時間成本和生產成本。

1 STM32F10x系列處理器串行下載的工作原理

STM32F10x系列處理器在使用上極其方便。除了性能和內部功能模塊都較傳統的單片機有很大的提升和擴展外,STM32F10x系列處理器在片內程序的加載和調試上都提供了豐富的手段。STM32F10x系列處理器除了可以通過JTAG(聯合測試行動組)協議接口在線下載程序和仿真程序外,還提供多種串行接口(UART、USB、CAN等)下載程序到芯片內部的閃存中。STM32F10x系列處理器通過JTAG接口下載程序時必須采用專門的仿真器(如JLINK仿真器等)來下載程序,因此提高了產品的開發成本和生產成本。在很多場合基于STM32F10x系列處理器的嵌入式電子系統通常采用串行ISP(in-system programming 在線系統編程)方式來加載程序。

圖1是STM32F10x處理器,采用UART(異步串行通信接口,俗稱232接口)下載程序的硬件接口連接圖。STM32F10x處理器的UART接口外接232轉換芯片,232轉換芯片再連接到單板的232串行接口插座。PC主機的232串行接口插座和單板的232串行接口插座再通過線纜連接。

圖1 STM32F10x處理器 ISP(UART接口)方式下載程序硬件接口連接圖

PC主機上運行ISP軟件,STM32F10x處理器上電后自動運行芯片出廠前燒寫到芯片內部系統存儲器中的Bootloader程序。芯片內部的Bootloader程序和PC機上的MCU-ISP程序通過專門的串口通信協議將用戶編寫的應用程序下載到芯片內部的閃存中。

2 一鍵串口下載電路的設計與工作原理分析

通常STM32F10x系列處理器是通過專用硬件配置引腳(BOOT1和BOOT0)的設置來確定處理器內部程序的啟動方式。

表1為STM32F10x系列處理器啟動硬件配置表。

表1 STM32F10x系列處理器啟動硬件配置表

當BOOT1=x、BOOT0=0時,系統上電后,處理器從主閃存存儲器啟動運行程序,這是正常的工作模式;當BOOT1=0、BOOT0=1時,系統上電后,處理器從系統存儲器啟動運行程序,系統存儲器中的程序一般都是芯片出廠前由廠家寫入的Bootloader程序;當BOOT1=1、BOOT0=1時,系統上電后,處理器從從內置SRAM啟動,這種模式主要用于調試程序。

從這里可以看出,當系統要通過串口來下載程序時,必須首先將BOOT1設置為0(低電平)、BOOT0設置為1(高電平),這樣芯片上電后首先運行芯片出廠前由廠家寫入的Bootloader程序。芯片內部的Bootloader程序和PC機上正在運行的MCU-ISP程序之間通過專門的串口通信接口連接好后,就可將用戶編寫的應用程序下載到芯片內部的主閃存存儲器中。下載應用程序到芯片內部的主閃存存儲器后,如果要測試下載的應用程序的運行結果,就必須要重新將BOOT0設置為0(高電平),然后系統再重新上電運行。系統再重新上電運行后就能執行主閃存存儲器中的應用程序了。在系統軟件調試過程中,為了下載應用程序和觀察應用程序的執行效果,就需要不斷地將BOOT0在高低電平之間進行切換,這給應用程序的調試和開發帶來了很大的不便。

圖2為一種實用的一鍵串行下載電路的原理圖。除此電路外,系統還需要將STM32F10x芯片的BOOT1引腳固定拉低,即將BOOT1信號永遠設置為低電平。

該電路是通過CH340來實現下載功能。CH340是一款USB總線轉換芯片,它完成USB和UART之間協議轉換的功能。采用該芯片的原因主要有兩個:一是在目前主流的PC主機中基本不再提供RS232異步串行通信接口,要實現STM32F10x芯片程序的下載必須通過USB接口才能連接,因此必須在單板上直接提供這種USB和UART協議之間的轉換電路;另外也可以通過MCU-ISP軟件操作芯片的RTS(數據發送請求)和DTR(數據接收請求)兩個引腳,方便地實現一鍵下載程序的功能。

圖2 一鍵串行下載電路原理圖

CH340的第16腳和第1腳分別是芯片的電源信號引腳和地信號引腳,分別接單片機的電源信號和地信號。第7腳和第8腳是芯片的12 MHz晶振輸入和輸出引腳。第5腳和第6腳是USB差分信號引腳,直接連接到單片機的USB插座上。第4腳為電源濾波引腳,當芯片5 V電源供電時,該引腳需外接0.01 μF的退耦電容;當芯片由3.3 V電源供電時,該引腳需外接電源信號,因此在電路設計時需做兼容設計。芯片的第14腳為RTS(數據發送請求)信號,通過外接一個三極管組成的控制電路來控制STM32F10x芯片的BOOT0信號,當RTS信號輸出為高時,BOOT0為低電平,當RTS信號輸出為低時,BOOT0為高電平。芯片的第13腳為DTR(數據接收請求)信號,通過外接一個三極管組成的控制電路來控制STM32F10x芯片的復位信號(NRST),當DTR信號輸出為高時,NRST為低電平,當DTR信號輸出為低時,NRST為高電平。

其中BOOT0信號連接到STM32F10x芯片的啟動配置引腳(第138腳),NRST復位信號直接連接到STM32F10x芯片的復位引腳(第25腳)。CH340的第2腳和第3腳分別為串行數據輸出和輸入腳,分別連接到STM32F10x芯片的第一路串行數據輸入(102)和輸出(101)腳。RTS信號和DTR信號的高低變化是受PC機上的MCU-ISP軟件來控制的。

圖3為一鍵串行下載電路關鍵信號波形圖。

如圖3所示,DTR#信號和RST#信號為一對相反信號,RTS#信號和BOOT0信號為一對相反信號。當DTR#信號和RTS#信號為高電平時,RST#和BOOT0為低電平信號;反之,當DTR#信號和RTS#信號為低電平時,RST#和BOOT0為高電平信號。

圖3 一鍵串行下載電路關鍵信號波形圖

當需要下載程序到STM32F10x芯片的時候,首先通過MCU-ISP軟件控制DTR#輸出高電平,通過三極管控制TP2使得STM32F10x芯片的復位信號RST#為低。控制復位時間大約為100 ms。100 ms后,RST#信號恢復正常,STM32F10x芯片進入正常啟動狀態。同時,由于此時RTS#為低,控制TP1使得BOOT0信號為高,另外系統電路已將BOOT1信號固定設置為低,這樣STM32F10x芯片在正常啟動狀態下就同時采樣到BOOT1為低電平,BOOT0為高電平,STM32F10x芯片將從系統存儲器啟動。由于STM32F10x芯片在出廠前已將Bootloader程序燒寫到系統存儲器中,此時STM32F10x芯片將開始運行Bootloader程序,進入加載程序的模式下。STM32F10x芯片通過串行通信接口準備開始加載應用程序,由于串行通信接口的發送腳TXD和接收腳RXD接到CH340上,經過CH340完成串行通信接口和USB接口協議的轉換后,再通過電腦上的MCU-ISP軟件設置后,就可以將電腦上需要下載的應用程序下載到STM32F10x芯片主閃存存儲器中。

程序下載完成后,MCU-ISP軟件再次控制DTR#輸出高電平,通過三極管控制TP2使得STM32F10x芯片的復位信號RST#為低。同時控制RTS#輸出高電平,通過三極管控制TP1使得BOOT0信號為低。由于RST#為低,系統再次進入復位狀態,復位時間大約為100 ms。100 ms后,RST#信號恢復正常,STM32F10x芯片進入正常啟動狀態,由于此時BOOT0信號為低,BOOT1信號也為低,此時系統將主閃存存儲器啟動。主閃存存儲器此時已經下載了新的應用程序,因此系統實際上開始運行此應用程序。

通過上面兩個步驟,整個電路實現了下載應用程序并且下載完成后自動運行此程序的一鍵串行下載的功能。整個過程不是通過硬件跳線而是通過軟件的方式來實現程序的自動下載和運行,方便了STM32F10x系統應用程序的調試和測試,從而大大提高了STM32F10x系統的開發效率。

3 一鍵串口下載電路的調試

在調試一鍵串行下載電路時,除了要保證一鍵串行電路本身沒問題之外,還需要確保STM32F10x最小系統硬件電路都正常。這樣再通過安裝在電腦上的MCUicd-ISP軟件才能正常地將程序下載到STM32F10x芯片。下面分別說明兩部分電路的調試步驟和方法。

3.1 STM32F10x最小系統硬件電路的調試

同其它的嵌入式處理器系統一樣,要保證STM32F10x最小系統硬件電路正常運行,就必須從以下幾個方面來加以測試和調試:

① 電源信號。

我們以STM32F103ZET6為例來說明STM32F10x最小系統電源部分電路的調試步驟。STM32F103ZET6采用3.3 V供電,首先用萬用表測量電源模塊輸出的3.3 V電源信號正常,同時令示波器3.3 V電源信號的紋波不要超標(3.3V±5%)。然后測量STM32F103ZET6的電源引腳(17、52、39、62、72、84、95、108、121、131、144、31、33)上3.3 V電源信號都正常。

② 復位信號。

STM32F103ZET6的復位引腳為第25腳且低電平有效。所以在STM32F103ZET6正常工作時,一定要保證復位引腳的信號為高電平。用萬用表測量第25引腳,確保正常工作時此引腳信號為高電平。

③ 時鐘信號。

STM32F103ZET6的時鐘電路主要包括一個高速外部時鐘和振蕩電路以及一個低速外部時鐘和振蕩電路。高速外部時鐘和振蕩電路提供的時鐘信號供CPU內部高速的系統時鐘來使用,低速外部時鐘和振蕩電路提供的時鐘信號供CPU內部實時時鐘和其他定時功能提供一個低功耗且精確的時鐘源。在STM32F103ZET6未下載初始化程序之前,芯片內部的系統時鐘由內部RC振蕩電路來提供。因此此時用示波器去測量這兩對時鐘信號輸入腳(8和9、23和24)的信號,將測不到振蕩的時鐘信號,但并不代表此時芯片沒有正常工作。

④ JTAG接口電路。

STM32F10x芯片提供的JTAG接口電路除了實現對內部電路的測試外,還可以實現對STM32F10x芯片進行程序的仿真和下載。也就是說STM32F10x芯片可以采用接口來進行程序的下載,一種是本文所述的ISP方式,一種是JTAG方式。JTAG接口主要包括TCK、TDO、TDI、TMS、TRST等引腳。如果這些引腳設置不當的話,將會使STM32F10x芯片處于不正常的工作狀態,從而影響STM32F10x芯片的ISP功能的實現。因此在進行STM32F10x芯片在線下載調試前,必須用萬用表測量這幾個引腳是否處于正常的電平信號。要保證TDO、TDI、TMS、TRST等引腳處于高電平,TCK處于低電平的狀態。

上述4部分電路的信號都正常,才能保證STM32F10x最小系統硬件電路處于正常工作狀態。

3.2 一鍵串行下載電路的調試

一鍵串行下載電路的參考電路如圖2所示。首先保證CH340的電源引腳16是否有5 V信號,再確保CH340的輔助電源引腳V3是否正確連接了容量為0.01 μF的退耦電容(注意V3在CH340外接3.3 V電源信號時也需連接到3.3 V的電源信號,與5 V供電時不同)。然后用示波器測量時鐘輸入引腳7、8是否是時鐘振蕩信號。

信號測量正常后再用USB接口線將單板上的USB接口連接到電腦的USB接口上。打開電腦的“設備管理器”的“端口(COM和LPT)”中將搜索到CH340串口接口,此時表示CH340已經正常工作。

用基于CH340芯片制作的USB接口轉串口的連接線(市面上有銷售)連接PC機和待調試單板。然后再在PC機上運行MCU-ISP軟件,選擇芯片類型為“STM32F10x series”,選擇串口號為電腦“設備管理器”所識別到的串口號,選中要下載的程序文件,點擊“程序下載”,此時程序就可以順利地下載到單板的芯片上了。

4 主要創新點和結論

本文描述了一種基于CH340芯片實現的STM32F10x系列處理器的一鍵串行下載電路。此電路可應用于采用STM32F10x系列處理器實現的嵌入式系統中。采用了此電路后,STM32F10x系列處理器不需要外接專門的價格昂貴的仿真器來進行程序的下載和調試,同時在下載和調試用戶應用程序的過程中,不需要手動設置STM32F10x系列處理器的硬件來啟動配置引腳的電平值。這極大地降低了STM32F10x系列處理器的應用成本,同時也大大地提高了該系列處理器實現的嵌入式系統的開發效率。

參考文獻

[1] ST. STM32F103ZET6datasheet.pdf,2009.

[2] ST.Application note AN2606:STM32 microcontroller system memory boot mode,2017.

[3] 江蘇沁恒股份有限公司.CH340中文手冊(一),2010.

猜你喜歡
調試程序信號
信號
鴨綠江(2021年35期)2021-04-19 12:24:18
完形填空二則
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
基于FPGA的多功能信號發生器的設計
電子制作(2018年11期)2018-08-04 03:25:42
基于航拍無人機的設計與調試
電子制作(2018年12期)2018-08-01 00:47:44
FOCAS功能在機床調試中的開發與應用
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
無線通信中頻線路窄帶臨界調試法及其應用
電子制作(2017年19期)2017-02-02 07:08:38
調壓柜的調試與試運行探討
主站蜘蛛池模板: 亚洲天堂色色人体| 国产在线98福利播放视频免费| 亚洲成人免费看| 日韩一级毛一欧美一国产| AV无码一区二区三区四区| 狠狠亚洲五月天| 国产Av无码精品色午夜| 日韩一二三区视频精品| 四虎永久在线| 无套av在线| 5555国产在线观看| 精品91视频| 亚洲狼网站狼狼鲁亚洲下载| 天堂av综合网| 91精品情国产情侣高潮对白蜜| 国产精品午夜福利麻豆| 精品超清无码视频在线观看| 红杏AV在线无码| 在线日韩日本国产亚洲| 91无码人妻精品一区二区蜜桃| 亚洲第一天堂无码专区| 亚洲精品国产综合99久久夜夜嗨| 国产精品美女在线| 五月婷婷精品| 国产精品2| 91精品国产91久久久久久三级| 91成人在线观看| 久久精品无码专区免费| 亚洲—日韩aV在线| 一区二区日韩国产精久久| 91青草视频| 国产乱人伦精品一区二区| 一级成人a毛片免费播放| 中文字幕久久波多野结衣| 99久久国产精品无码| 日韩黄色精品| 好吊色妇女免费视频免费| 国禁国产you女视频网站| 色婷婷成人网| 亚洲综合天堂网| 欧美成人第一页| 丝袜亚洲综合| 538国产在线| 亚洲二区视频| 又爽又大又黄a级毛片在线视频 | 亚洲侵犯无码网址在线观看| 香蕉视频国产精品人| 国产精品无码一区二区桃花视频| 国产精品久久久久久久久kt| 99久久精品免费看国产免费软件 | 国产新AV天堂| 久久国产精品电影| 欧美精品色视频| 在线观看免费黄色网址| 国产在线视频福利资源站| 91口爆吞精国产对白第三集| 国产欧美精品专区一区二区| 国产亚洲精品va在线| 欧美一区精品| 丝袜美女被出水视频一区| 亚洲中文字幕av无码区| 亚洲男女在线| 国产精品林美惠子在线播放| 五月天综合婷婷| 手机成人午夜在线视频| 中文字幕欧美日韩| 精品国产福利在线| 囯产av无码片毛片一级| 久久一级电影| 在线国产毛片| 中国国产高清免费AV片| 六月婷婷激情综合| 成人在线观看一区| 国产成人精品日本亚洲77美色| 丁香五月婷婷激情基地| 亚洲有无码中文网| 国产麻豆精品在线观看| 亚洲无线国产观看| 亚洲成人免费看| 午夜视频日本| 香蕉视频在线精品| 毛片免费在线|