新聞中心

        EEPW首頁 > 元件/連接器 > 設計應用 > 從入門到精通:USB轉TTL芯片的進階應用全解析

        從入門到精通:USB轉TTL芯片的進階應用全解析

        作者: 時間:2025-06-19 來源:Digikey 收藏

        在日常的開發調試中,我們常常使用 J-Link 等下載器來為 MCU 下載程序。今天,通用電路抄作業,分享一個可以一鍵自動下載的調試器,也是 USB 轉 TTL 串口自動下載電路。

        本文引用地址:http://www.104case.com/article/202506/471442.htm

        什么是自動下載呢?自動下載就是 ISP ( In-System Programming )在系統可編程,指電路板上的帶引導代碼的空白器件可以編程寫入最終用戶代碼,通過單片機專用的編程接口(一般是串口等)對 MCU 內部的用戶區 Flash 存儲器進行在線編程。

        除了日程調試可以使用之外,這種自動下載方式更適合批量生產燒錄,固件遠程OTA升級。大家熟悉的MCU,像STM32系列、 ESP32 / ESP8266 、Arduino、NXP LPC 系列以及很多國產的MCU,都是支持的。

        我們以 STM32F103 單片機為例,STM32單片機的芯片手冊里面關于引導模塊的描述,是通過配置 BOOT[1:0] 引腳,來實現三種不同的模式:

        最后一種,就是 ISP 自動下載模式了。

        知道了 ISP 啟動條件,就可以設計一鍵下載電路了。

        我們設計的這個電路,通過 USB 轉 TTL 串口,在 PC 端通過串口下載工具,把固件下載到 MCU 中, MCU 通過 BOOT1/0 組合設置為 ISP 啟動模式, MCU 運行內置的引導程序,這個內置的引導程序是出廠就寫好的,無法修改,只能讀取。這個程序可以把串口接收到的 hex 文件寫到用戶區 0 × 08000000 開頭的 Flash 中,從而實現用戶固件下載的功能。

        串口自動下載器主要由以下電路組成:1. 電源電路:通過J1的TYPE-C接口輸出VBUS-5V通過可恢復熔絲F1以及C2,C3濾波電容,為 FT232RL 提供穩定的5V電壓直流電,R1和D1是LED指示燈,方便觀察是否有5V輸入,這里的可恢復熔絲F1為一級電源保護,一級電源轉換是VBUS-5V通過 AMS1117-3.3 LDO轉出3.3V為外設提供穩定的直流電;

        2.USB轉TTL-UART電路:使用的是大家都熟悉的 FT232 接口芯片,這款芯片工作穩定,并自帶了 RXD/TXD 收發引腳狀態輸出,正好我們可以使用個收發狀態輸出功能,增加串口數據收發 LED 指示燈 D2/D3 ,這樣方便我們更直觀看到接受和發送數據; D4/D5 為 BAV99 二極管保護電路,在這里是起到鉗位保護作用,防止 RXD/TXD 引腳的電壓過高,避免過高電壓損壞接口芯片。

        3.外置接口:這塊由 J2/J4/J6 三個 2.54mm 排針,用來連接外設如 STM32 的開發板或者核心板的電源和 BOOT0 以及 RESET 完成對單片機的串口程序下載;

        4.一鍵自動下載電路:由 Q1/Q2/D4/R10/R11 組成,通過串口轉 USB 接口芯片 FT232 的 DTR# 和 RTS# 引腳,來控制一鍵下載電路,從而控制連接在電路上的 STM32 的 RESET 和 BOOT0 引腳的高低電平,引導 STM32 內置 BootLoader 程序進入 ISP 模式,配合 STM32 的 BOOT0 , RESET 引腳,來達到通過串口一鍵下載和運行的效果,省去了購買仿真器的費用,下載程序也變得簡單方便。

        原理是 :開發板默認BOOT1為0,BOOT0為0。要想STM32串口ISP下載模式開啟,需要把BOOT0設置為1。此時RTS為低電平時,Q1三極管 SS8550 滿足導通條件導通,3.3V電壓通過Q1到BOOT0引腳拉成高電平,所以BOOT0輸出高電平1,復位電路NRST默認為高電平,通過DTR復位STM32,使系統進入ISP模式,STM32系統存儲器啟動BootLoader,BootLoader程序ST自帶的引導程序,通過BootLoader將程序從串口下載到Flash中;這樣程序實際上是通過串口最終下載到了FLASH中,上位機自動控制RTS和DTR引腳,控制BOOT0和NRST,BOOT0置為0,NRST置為1,程序從flash啟動。接下來,就用實驗驗證我們設計的這個電路是否可行。首先打開軟件:

        準備下載程序:① 選擇“端口 Port ”( FlyMcu 會自動搜索 FT232RL 串口對應的端口),設置“ 115200bps ”② 選擇“需要下載的程序文件”(編譯生成的 .hex 文件)。③ 勾選“編程前重裝文件”, FlyMcu 會在每次編程前,將 .hex 文件重新裝載一遍,在代碼調試的時候比較有用。④ 勾選“編程后執行”,可以在下載完程序之后自動運行代碼,無需再按復位鍵來運行代碼,便于代碼調試。特別注意:不要勾選“使用 RamIsp ”,使用 RamIsp 可能會導致無法正常下載。不要勾選“編程到 FLASH 時寫選項字節”。⑤ 在左下方選擇“ DTR 的低電平復位, RTS 高電平進 BootLoader ”, FlyMCU 會通過 DTR 和 RTS 信號來控制板載的一鍵下載功能電路,實現一鍵下載功能。這個是必要的選項(在 BOOT0 接 GND 的條件下)。設置完成之后,就可以下載了。

        時間原因,我們只演示這一種應用,這個串口模塊還可以為 Arduino 一鍵下載程序,還有串口調試等諸多功能!



        關鍵詞: Digikey USB轉TTL芯片

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 华池县| 云南省| 敖汉旗| 信丰县| 休宁县| 嘉善县| 莫力| 梅州市| 阳原县| 巴塘县| 抚宁县| 睢宁县| 什邡市| 韶关市| 类乌齐县| 巴里| 穆棱市| 上犹县| 兴国县| 阿城市| 东海县| 柳河县| 克东县| 海晏县| 江安县| 平舆县| 敖汉旗| 勐海县| 长沙县| 无极县| 蕉岭县| 枣强县| 商水县| 辽阳县| 和平区| 进贤县| 邵阳市| 灵台县| 青浦区| 隆安县| 邛崃市|