一、概述
CH343、CH9101、CH9102等系列芯片,是沁恒推出的第三代USB轉(zhuǎn)單串口產(chǎn)品,基于經(jīng)典版CH340系列芯片進(jìn)行技術(shù)革新,實現(xiàn)USB轉(zhuǎn)高速異步串口,波特率支持最高6Mbps。芯片內(nèi)部高度集成,外圍精簡,均提供VIO電源引腳,串口I/O支持獨立供電。
第三代USB轉(zhuǎn)串口芯片支持使用系統(tǒng)集成的CDC串口驅(qū)動或VCP廠商驅(qū)動。VCP廠商驅(qū)動能更齊全,支持全功能串口、硬件流控、GPIO、USB參數(shù)配置等功能、支持高波特率下持續(xù)穩(wěn)定傳輸。優(yōu)先推薦使用VCP驅(qū)動程序,支持Windows、Linux、Android、macOS等操作系統(tǒng)。
本文所列常見問題同樣適用于特性相近的USB轉(zhuǎn)多串口芯片CH342、CH9103等。相較于USB轉(zhuǎn)串口經(jīng)典版CH340和CH341系列芯片,第三代USB轉(zhuǎn)串口產(chǎn)品主要特點如下:
二、電源設(shè)計
USB轉(zhuǎn)串口芯片有3個電源端分別是VDD5、V3和VIO,芯片內(nèi)置3.3V的LDO電源調(diào)節(jié)器。
VDD5是內(nèi)部LDO的輸入端;
V3是內(nèi)部LDO的輸出端,USB收發(fā)器和內(nèi)核電源均從該引腳輸入;
VIO是單獨的串口IO等引腳的電源輸入。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
常見問題1—VDD5和V3如何連接
VDD5支持5V或3.3V電源電壓供電。
(1) 當(dāng)VDD5引腳輸入5V工作電壓(實際上大于3.8V)時,內(nèi)部LDO工作,V3引腳會輸出3.3V電源供芯片內(nèi)部USB收發(fā)器使用。
(2) 當(dāng)VDD5引腳輸入3.3V工作電壓(實際上小于3.6V)時,V3引腳需要和VDD5連接,同時輸入外部的3.3V工作電壓。
VDD5和V3引腳需要外接電源退耦電容,默認(rèn)104規(guī)格(即104規(guī)格),且PCB布局時靠近芯片引腳放置。V3引腳的電容用于電源退耦,來改善USB傳輸過程中的EMI。此外,VDD5供電電源上建議同時并聯(lián)10~22uF大電容。
常見問題2—VIO如何連接
USB轉(zhuǎn)串口芯片的VIO引腳用于為串口I/O和其他如RST引腳提供I/O電源,支持電壓范圍1.8V~5V。
默認(rèn)情況下VIO引腳應(yīng)該與芯片所連接的串口設(shè)備采用同一電壓,此時雙方串口電壓匹配。VIO引腳支持的電壓輸入范圍是線性的,在如上范圍內(nèi)可隨意調(diào)節(jié)。例如,可直接使用芯片實現(xiàn)USB轉(zhuǎn)1.8V串口,USB轉(zhuǎn)2.5V串口,USB轉(zhuǎn)3.3V串口,USB轉(zhuǎn)5V串口等。
芯片V3引腳在芯片5V供電時可以輸出3.3V電壓,因此使用3.3V串口時,VIO也可以直連V3引腳節(jié)省一個外部LDO。
常見問題3—VBUS如何連接
芯片的VBUS引腳電源來自于V3,該引腳用于芯片USB電源檢測。默認(rèn)應(yīng)該連接到USB總線的電源,當(dāng)檢測到失去USB電源,芯片將關(guān)閉USB并睡眠。當(dāng)芯片的VDD5采用非USB 主機的電源而使用板載電源供電時,VBUS也可以和VDD5使用同一電源。
常見問題4—芯片與串口外設(shè)(如MCU)的電源連接方案
三、串口設(shè)計
芯片的串口引腳包含數(shù)據(jù)傳輸引腳和MODEM信號引腳。數(shù)據(jù)傳輸引腳包括:串口數(shù)據(jù)發(fā)送引腳TXD、串口數(shù)據(jù)接收引腳RXD。MODEM信號引腳包括:RTS、CTS、DTR、DSR、RI、DCD。
常見問題1—TTL串口設(shè)計
常規(guī)情況下使用TTL串口通訊,僅需要使用TXD和RXD信號即可,部分場合需要硬件流控功能時還需要使用RTS和CTS信號。其余MODEM信號引腳若使用不到可直接懸空處理。
常見問題2—RS232串口設(shè)計
USB轉(zhuǎn)串口芯片配合RS232電平轉(zhuǎn)換芯片組合使用可以實現(xiàn)全MODEM信號的RS232串口,也可以僅使用部分串口信號實現(xiàn)簡版RS232串口,和TTL類似,不使用的信號懸空處理。
常見問題3—RS485串口設(shè)計?
使用提供TNOW信號的芯片型號配合RS485電平轉(zhuǎn)換芯片可以實現(xiàn)RS485串口通信,RS485收發(fā)轉(zhuǎn)換芯片需要單獨進(jìn)行收發(fā)方向控制,TNOW用于該方向的控制,線路上TNOW直連RS485收發(fā)器的發(fā)送使能DE和接收使能RE即可。
注:部分芯片型號TNOW功能和其他功能復(fù)用,電路設(shè)計上需要在DTR引腳外接一個下拉電阻,默認(rèn)推薦4.7K。
四、其他輔助腳說明
ACT引腳說明
芯片的ACT引腳為USB設(shè)備配置完成狀態(tài)輸出(當(dāng)芯片接收到主機的設(shè)置配置請求并操作完成時會輸出低電平,默認(rèn)該引腳上電為高電平),該引腳可用作芯片的USB工作狀態(tài)指示,也可以用于通知MCU等串口設(shè)備USB轉(zhuǎn)串口芯片的工作狀態(tài)。也可以用于控制后級電路的電源通斷,如USB轉(zhuǎn)RS232串口應(yīng)用,當(dāng)計算機睡眠ACT輸出無效電平可用于控制RS232電平轉(zhuǎn)換芯片關(guān)斷電源以節(jié)約功耗。
五、IO電流倒灌問題
USB轉(zhuǎn)串口芯片和串口負(fù)載(MCU、CPU、其他串口外設(shè)等)的供電方式可以分為2個大類:統(tǒng)一供電和獨立供電。
統(tǒng)一供電是指USB芯片和串口負(fù)載使用同一電源,上下電同步,此時不會存在彼此之間電流倒灌的問題。
獨立供電是指USB芯片和串口負(fù)載使用不同的電源,對于包含VIO電源引腳的芯片,需要單獨考慮VIO引腳電路接法,當(dāng)VIO和串口負(fù)載使用同一電壓源不會存在問題,當(dāng)VIO和串口負(fù)載未使用同一電壓源時,需注意上電時序。
電流倒灌為非正常應(yīng)用,在實際使用中應(yīng)盡量避免。若確有非同時上電的工作需求,需注意電路設(shè)計,如下為推薦使用的電路設(shè)計方案。
方案一、統(tǒng)一供電
USB芯片與串口負(fù)載使用同一電源,USB芯片采用以下供電方式:
VDD5=VBUS=VIO=VMCU:使用板載電源/USB口的VBUS或VBUS經(jīng)過LDO降壓后的電源。
V3:VDD5=5V下連接退耦電容,VDD5=3.3V下V3與VDD5短接。
如上電路設(shè)計,當(dāng)芯片VDD5/VBUS/VIO均無電時USB連接計算機,芯片不會工作。
方案二、獨立供電
USB芯片與串口負(fù)載使用獨立的電源,USB芯片采用以下供電方式:
VDD5=VBUS:USB口的VBUS或VBUS經(jīng)過LDO降壓后的電源。
V3:VDD5=5V下連接退耦電容,VDD5=3.3V下V3與VDD5短接。
VIO=VMCU:使用板載電源同時給VIO和串口負(fù)載供電。
如上電路設(shè)計,當(dāng)芯片USB口接入計算機,但串口負(fù)載未上電時,即VDD5與VBUS有電但VIO無電,此時芯片USB單元正常工作,會直接進(jìn)行枚舉生成串口。
該供電方式適用于以下應(yīng)用場景:需要冷啟動串口下載的MCU/CPU,監(jiān)控MCU/CPU/串口外設(shè)上電時的串口日志,產(chǎn)品低功耗需求即USB芯片耗電越低越好。
六、如何提高USB通訊穩(wěn)定性和抗干擾能力
USB信號屬于模擬信號,所以在USB 芯片內(nèi)部包含數(shù)字電路和一些模擬電路,另外,USB 芯片中還包含時鐘震蕩及PLL倍頻電路,電路的公共地端在芯片內(nèi)部已經(jīng)連接在一起并連接到芯片的GND引腳。
如果GND芯片有時工作不正常、或者GND數(shù)據(jù)傳輸隨機性失敗、或者抗干擾能力差,那么就應(yīng)該考慮GND芯片是否穩(wěn)定工作。以下為常見的一些注意事項:
1、USB 信號線 D+ 與 D- 盡量對稱平行布線,保證兩根差分線緊耦合,避免 90度走線,弧形或45度走線均可;
2、?在元件布局時,盡量使USB差分線路最短,布線優(yōu)先繪制差分線,一對差分線上盡量不要超過兩對過孔,且過孔需對稱放置;
3、最好在兩側(cè)布置GND鋪銅,減少干擾,在空間允許情況下,其他信號網(wǎng)絡(luò)及地離差分線的間距至少 20mil,距離過近會對差分線阻抗產(chǎn)生影響;
4、芯片的USB收發(fā)器已經(jīng)按USB2.0全內(nèi)置設(shè)計,D+和D-引腳不能串電阻;
5、可以在GND信號線 D+ 和 D- 上串接共模電感以抑制EMI;
6、USB 外殼地串接一個 100K 到 1M 級的電阻到地,同時電阻上并聯(lián)一個0.1uF電容;
7、使用符合GND規(guī)范的帶屏蔽層的傳輸線,不能使用普通排線或者非GND線纜。
除以上幾種原因與解決方法外,還可以通過使用屏蔽罩在復(fù)雜應(yīng)用環(huán)境中減小EMI干擾,或者使用電氣隔離方案提高設(shè)備工作穩(wěn)定性。
七、使用常見問題梳理
設(shè)備接入主機無反應(yīng)或者出現(xiàn)無法識別的USB設(shè)備
1、檢查電路原理圖設(shè)計是否正確無誤且滿足規(guī)范;
2、檢查芯片供電是否正常,VDD5、V3、VIO、VBUS腳的供電注意事項可參考上面說明;
3、檢查USB信號線D+、D-和主機之間是否直通,尤其是TypeC座,檢查線序是否正確;
4、芯片內(nèi)置USB終端匹配電阻,D+和D-可以直連主機,如果為了安全而串接保險電阻、電感、ESD等保護(hù)器件,那么交直流等效串聯(lián)電阻應(yīng)該在5Ω以內(nèi);
5、檢查使用的線纜是否符合GND規(guī)范,線纜是否過長以及有無屏蔽層;
6、檢查是否存在焊接或SMT加工問題,導(dǎo)致出現(xiàn)焊接短路或損壞芯片等情況;
Windows設(shè)備管理器出現(xiàn)感嘆號設(shè)備
設(shè)備管理器出現(xiàn)感嘆號設(shè)備時的情況分以下幾種:
1、顯示“未知設(shè)備”、“無法識別的USB設(shè)備”、“Unknown Device”表示芯片未正常工作,此時可參考上一小節(jié)內(nèi)容做排查。
2、顯示產(chǎn)品字符串信息,如下所示:
??? 此時說明硬件已經(jīng)被系統(tǒng)枚舉到了,但是驅(qū)動未安裝或者驅(qū)動不匹配,此時需要做以下操作:
????從沁恒官網(wǎng)上下載最新的芯片驅(qū)動,鏈接地址為:http://m.findthetime.net/download/CH343SER_EXE.html,直接點擊“安裝”,如失敗可以先嘗試先點擊“卸載”將可能存在的老版本驅(qū)動卸載刪除,之后再點擊安裝新驅(qū)動;
????如驅(qū)動仍安裝失敗,可通過系統(tǒng)驅(qū)動安裝日志查看具體原因。Windows7及以上系統(tǒng)日志路徑:C:\Windows\inf\setupapi.dev.log。打開日志,查找CH343SER關(guān)鍵字可看到失敗原因,之后再進(jìn)行對應(yīng)問題的解決;
3、“端口(COM和LPT)”下的設(shè)備帶感嘆號,右擊查看屬性,提示:“驅(qū)動未經(jīng)數(shù)字簽名”、“串口對象名重復(fù)”等。
??? 我司官網(wǎng)上發(fā)布驅(qū)動均經(jīng)過微軟WHQL數(shù)字簽名,如仍遇到數(shù)字簽名問題,原因和系統(tǒng)支持的數(shù)字簽名算法有關(guān),此時可安裝微軟官方補丁包,原文鏈接:2019 SHA-2 Code Signing Support requirement for Windows and WSUS - Microsoft Support
??? 如遇“串口對象名重復(fù)”問題,此時可查看列表下沖突的設(shè)備,手動修改或使用ComPortManager工具自動修改COM口編號。
工具鏈接:http://m.findthetime.net/downloads/ComPortManager_ZIP.html
驅(qū)動模式說明
第三代USB轉(zhuǎn)串口芯片支持使用系統(tǒng)集成的CDC串口驅(qū)動或VCP廠商驅(qū)動。VCP廠商驅(qū)動功能更齊全,支持全功能串口、硬件流控、GPIO、USB參數(shù)配置等功能、支持高波特率下持續(xù)穩(wěn)定傳輸。優(yōu)先推薦使用VCP驅(qū)動程序。關(guān)于CDC驅(qū)動程序的使用限制,可參考官網(wǎng)應(yīng)用方案《USB轉(zhuǎn)串口方案選型》。
如何確定當(dāng)前使用的驅(qū)動模式
Windows:Windows 10及以上的操作系統(tǒng)版本內(nèi)置CDC串口驅(qū)動,以下的系統(tǒng)版本則需要手動安裝驅(qū)動。使用系統(tǒng)CDC-ACM串口驅(qū)動或手動安裝官網(wǎng)的CH343CDC驅(qū)動時串口名稱為:“USB串行端口”、“USB-SERIAL CH34*”。使用廠商VCP驅(qū)動程序,對應(yīng)串口名稱為:“USB-Enhanced-SERIAL CH34*”,即字符串中包含“Enhanced”關(guān)鍵詞。
Linux:使用內(nèi)置的CDC-ACM串口驅(qū)動,對應(yīng)串口名稱為:“/dev/ttyACM*”,使用廠商VCP串口驅(qū)動,對應(yīng)串口名稱為:“/dev/ttyCH343USB*”。
Android:安卓系統(tǒng)下支持2種方式訪問串口,一種方式與Linux系統(tǒng)相同,即底層配合tty串口驅(qū)動使用。另一種為使用安卓原生USB SDK開發(fā)的免驅(qū)應(yīng)用庫,此方式無需移植底層Linux設(shè)備驅(qū)動,設(shè)備連接Android原生USB口時,需使用OTG線并確保Android系統(tǒng)的USB Host權(quán)限已經(jīng)打開。
macOS:使用內(nèi)置的CDC-ACM串口驅(qū)動,對應(yīng)串口名稱為:“/dev/usbmodem*”,使用廠商VCP串口驅(qū)動,對應(yīng)串口名稱為:“/dev/tty.wchusbserial*”。
USB串行序列號說明
第三代USB轉(zhuǎn)串口芯片內(nèi)置USB Serial Number(USB串行序列號),可在Windows等系統(tǒng)中根據(jù)不同序列號為每個設(shè)備分配固定的COM號,實現(xiàn)同一設(shè)備連接在不同USB口時COM號固定不變的效果,使用多個設(shè)備時因序列號不同會分別分配不同COM號。
在產(chǎn)測階段,為了提高效率,可通過勾選“忽略USB設(shè)備序列號”來禁用此特性,不讓同一計算機COM號不隨設(shè)備更換而累加。此方法僅VCP廠商驅(qū)動模式下支持。
操作方法:設(shè)備管理器 -- 端口(COM和LPT) -- 右擊USB-Enhanced-SERIAL COM口設(shè)備 -- 屬性 -- 端口設(shè)置 -- 高級 :
相關(guān)資料下載
更多USB轉(zhuǎn)串口芯片選型請參考:https://special.wch.cn/zh_cn/produce
延伸閱讀
《USB轉(zhuǎn)串口通訊常見問題》
《USB轉(zhuǎn)串口工作原理》
《已簽名驅(qū)動程序安裝后提示“Windows無法驗證此設(shè)備所需驅(qū)動程序數(shù)字簽名”的原因和解決方法》