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