一、CH340簡介
CH340 是一個 USB 總線的轉接芯片,實現 USB 轉串口或者 USB 轉打印口。CH340是國產芯片,應用場合居多,市場占有率很高。常用的USB轉串口芯片還有CP2102、PL2303、FT232等,相比之下CH340性價比最高。通過CH340轉串口連接到單片機MCU的片上UART可以實現程序的一鍵燒寫功能。CH340有以下特點:
- 全速 USB 設備接口,兼容 USB V2.0。
- 計算機端 Windows 操作系統下的串口應用程序完全兼容,無需修改。
- 硬件全雙工串口,內置收發緩沖區,支持通訊波特率 50bps~2Mbps。
- 支持常用的 MODEM 聯絡信號 RTS、DTR、DCD、RI、DSR、CTS。
- 軟件兼容 CH341,可以直接使用 CH341 的驅動程序。
- 支持 5V 電源電壓和 3.3V 電源電壓甚至 3V 電源電壓。
二、CH340G在Arduino上的下載電路應用
2.1硬件電路
2.2電路說明與注意事項
- 該電路為本人實際應用在Atmega2560-16AU芯片上的可行電路,對於大部分單片機具有通用性。
- CH340的TXD腳應該接單片機的RXD腳,RXD腳接單片機的TXD腳,這樣一發一收才能進行通信。
- CH340芯片內置了USB上拉電阻,UD+和UD-引腳應該直接連接到USB總線上。這里R1、R3兩個22R的小電阻可以去除,實際應用不影響。
- CH340G需要外部提供12MHz的晶振,振盪電容選擇兩個22pF電容。
- 5V供電時芯片V3引腳需要接一個104電容到地,3.3V供電時直接將V3腳與3.3V電源引腳短接就可以了。V3的引腳除了在不同電壓供電模式下接法不同,對於電容數值選用也是需要注意的。V3引腳的電容用於內部電源節點退耦,來改善USB傳輸過程中的EMI,通常容量在4700pF到0.1uF范圍,建議容量為0.01uF,即103電容。
- CH340芯片的發送引腳TXD上接一個反向二極管,然后再連接到對端IC。在接收引腳上加一個限流電阻來防止對端IC對CH340倒灌電。通過反向二極管的原理是:在CH340發送數據時,發送高電平時二極管截止,但是由於對端RXD默認上拉也是高電平不會有采樣問題,而發送低電平時二極管導通,對端RXD接收到低電平,因此可以正常通訊。並防止了CH340的TXD發送引腳將電流倒灌到對端IC。通過限流電阻的原理是:倒灌電流導致芯片工作甚至閂鎖效應,是由於引腳電流過大超過了芯片設計時容忍的上限導致芯片內部電路出現異常。因此加一個限流電阻就可以了,其他通訊場景也可以仿照此方法進行嘗試。
- Arduino單片機需要復位以實現下載,DTR引腳通過一個104電容接到MCU的RESET上,以實現自動復位和一鍵下載。
- Arduino需要預先燒寫BootLoader(如果芯片內沒有BootLoader的話)方能下載。
三、CH340G在STM32上的下載電路應用
3.1硬件電路
3.2電路說明與注意事項
- 該電路為原子的串口下載電路
- 與Arduino等單片機不同的是,stm32單片機在串口下載時,不僅需要控制RESET來復位,還需控制BOOT0、BOOT1來選擇啟動位置
- DTR#和RTS#都是 輸出類型, MCUISP(一鍵下載工具),會控制CH340這兩個引腳的高低電平狀態,通過控制DTR#和RST#這兩個引腳的高低電平狀態,從而控制STM32的BOOT0 和 RESET.
- DTR#、RST#初始狀態的時都是高電平,在啟用下載的時候,DTR#維持高,RST#拉低,此時兩個三極管Q2 和Q3 導通,那么BOOT0 為高電平,RESET為低電平復位,然后DTR#變低,Q2不導通,復位結束,此時BOOT0 為高電平。stm32的啟動模式變為從系統存儲器啟動,啟用串口下載,STM32 和 MCUISP下載軟件進行通信,進行代碼下載,等到代碼下載結束時 RST#先變為高電平,然后DTR#在變成高電平。
四、CH340驅動程序下載
說明:解壓安裝即可,如果安裝失敗,先點擊卸載再點擊安裝。
參考資料:CH340G電路設計注意事項