實(shí)現(xiàn)穩(wěn)定可靠的USB通信,既依賴于嚴(yán)謹(jǐn)?shù)挠布?a href="http://www.3532n.com/v/tag/167/" target="_blank">電路設(shè)計(jì),也離不開高效的軟件開發(fā)支持。本文將從電源管理、信號(hào)完整性等硬件角度出發(fā),結(jié)合LuatOS平臺(tái)的API使用技巧,為開發(fā)者提供一站式USB開發(fā)指導(dǎo)。
本文以Air780EPM系列低功耗模組為例,分享USB接口的硬件設(shè)計(jì)要點(diǎn)以及LuatOS高效開發(fā)API,幫助開發(fā)者在設(shè)計(jì)中避開常見陷阱,快速構(gòu)建穩(wěn)定可靠的USB應(yīng)用。

01. 模組管腳
Air780EPM系列模組與USB相關(guān)的管腳,如上方管腳圖右側(cè)淺綠色塊所示:
VBUS:PIN61;
USB_DM:PIN60;
USB_DP:PIN59;
特別說明:管腳圖中所示的USB_DN正確的寫法應(yīng)該是USB_DM,歷史原因一直將錯(cuò)誤寫法延續(xù)到了現(xiàn)在。
USB_DM:USB Data Minus,USB數(shù)據(jù)負(fù)信號(hào);
USB_DP:USB Data Positive,USB數(shù)據(jù)正信號(hào)。
02. 功能說明
Air780EPM系列模組支持如下USB功能:
支持USB Full speed:全速模式,最高支持12Mbps,即1.5MB/s;
支持USB High speed:高速模式,最高支持480Mbps,即40MB/s;
支持USB下載軟件,Boot from USB;
支持USB RNDIS:搭配Windows/Linux實(shí)現(xiàn)快速上網(wǎng);
僅支持USB Slave,不支持USB HOST。
03. 注意事項(xiàng)
與USB相關(guān)的操作,重點(diǎn)關(guān)注如下幾個(gè)方面:
上電開機(jī)前將USB_BOOT(GPIO0)上拉至 VDD_EXT,模組將進(jìn)入U(xiǎn)SB下載模式(Boot from USB);
模組內(nèi)部用于USB部分供電的電源是LDO33USB(3.3V輸出),該LDO只為USB功能提供電源,模組管腳未引出;
低功耗模式pm.WORK_MODE,1和PSM+模式pm.WORK_MODE,3 下,會(huì)將LDO33USB關(guān)閉;
模組VBAT最低2.3V左右(實(shí)測(cè)最低可至 2.1V)時(shí)仍可工作,但因此時(shí)LDO33USB的輸入(2.3V)已遠(yuǎn)低于輸出(3.3V),所以USB已無法正常工作;
VBUS,在模組內(nèi)部實(shí)際接的是WAKEUP1,USB_VBUS的5V經(jīng)過分壓后接到WAKEUP1,用于USB插入檢測(cè)。
04. 硬件參考設(shè)計(jì)
USB接口相關(guān)硬件參考設(shè)計(jì)如下圖示,橫屏或點(diǎn)擊放大查看。

▼ 相關(guān)注意事項(xiàng) ▼
USB接口硬件設(shè)計(jì)需要特別注意如下幾個(gè)方面:
1)阻抗匹配
USB接口的PCB設(shè)計(jì)中,差分信號(hào)線(USB_DP/USB_DM)的阻抗需控制在90Ω±10%(即81Ω~99),這是保證信號(hào)完整性的關(guān)鍵參數(shù)。
注意:阻抗不匹配將會(huì)導(dǎo)致信號(hào)反射、眼圖閉合、誤碼率上升,甚至通信失敗。
2)布線原則
差分對(duì)等長(zhǎng)匹配:長(zhǎng)度差控制在5mil以內(nèi),避免時(shí)序偏差和共模干擾;
減少換層過孔:每次換層加一對(duì)回流地過孔,維持信號(hào)回流路徑連續(xù)性,降低阻抗不連續(xù)風(fēng)險(xiǎn);
保持完整參考平面:避免跨分割,優(yōu)先內(nèi)層布線,包地處理減少串?dāng)_。
3)TVS保護(hù)
USB接口容易引入靜電干擾,因此需要在電路上增加 TVS保護(hù)。
USB High speed差分?jǐn)?shù)據(jù)線選擇TVS的最關(guān)鍵參數(shù)是結(jié)電容容值,需要小于1pF;我們驗(yàn)證使用過的是芯禾微XESD124N-5V0。
VBUS電源上使用的TVS,我們使用過的是芯禾微XESD307D-5V0。
相關(guān)手冊(cè)詳見:
https://docs.openluat.com/air780epm/product/air780exxpins/#usb
05. 與USB相關(guān)的LuatOS API
LuatOS高度封裝與靈活的API設(shè)計(jì),簡(jiǎn)化了傳統(tǒng)USB開發(fā)的繁瑣流程。
▼ pm.USB ▼
API手冊(cè)詳見:
https://docs.openluat.com/osapi/core/pm/
常量含義:USB的供電使能;
數(shù)據(jù)類型:number;
常量取值:0;
適用:Air780EXX系列、Air700E系列、Air8000系列模組;
示例代碼:

▼ mobile.CONF_USB_ETHERNET ▼
API手冊(cè)詳見:
https://docs.openluat.com/osapi/core/mobile/
常量含義:蜂窩網(wǎng)絡(luò)模塊的USB以太網(wǎng)卡控制;
數(shù)據(jù)類型:number;
常量取值:11;
取值范圍:0x01:開啟RNDIS功能;0x03:開啟RNDIS功能,使用NAT模式(基站分配ip);0x05:開啟ECM功能;0x07:開啟ECM功能,使用NAT模式(基站分配ip)。
注意事項(xiàng):控制設(shè)備的USB以太網(wǎng)卡功能,通過位操作來控制不同的功能;僅在開啟前可以修改;bit2:協(xié)議選擇(1ECM協(xié)議,0RNDIS協(xié)議);必須在飛行模式下設(shè)置才能生效。
適用:Air780EXX系列和Air8000系列模組。
示例代碼:

▼ uart.VUART_0 ▼
API手冊(cè)詳見:
https://docs.openluat.com/osapi/core/uart/
常量含義:USB虛擬串口;
數(shù)據(jù)類型:number;
常量取值:32;
適用:Air780EXX系列和Air8000系列模組。
示例代碼:

今天的內(nèi)容就分享到這里了~
審核編輯 黃宇
-
usb
+關(guān)注
關(guān)注
60文章
8440瀏覽量
284469 -
LuatOS
+關(guān)注
關(guān)注
0文章
156瀏覽量
2695
發(fā)布評(píng)論請(qǐng)先 登錄
LuatOS 框架的嵌入式系統(tǒng)架構(gòu)設(shè)計(jì)原理
LuatOS平臺(tái)下BLE藍(lán)牙開發(fā)從入門到實(shí)踐
基于LuatOS的MQTT物聯(lián)網(wǎng)通信全解
輕松掌握——LuatOS socket基礎(chǔ)知識(shí)和應(yīng)用開發(fā)
LuatOS框架的使用(上)
別讓USB拖后腿!硬件參考設(shè)計(jì)+軟件開發(fā)API,都幫你整理好了
ADC模數(shù)轉(zhuǎn)換實(shí)戰(zhàn):硬件設(shè)計(jì)與軟件開發(fā)要點(diǎn)指南!
USB設(shè)計(jì)操作指南:硬件關(guān)鍵與LuatOS API開發(fā)技巧!
USB設(shè)計(jì)全程攻略:硬件關(guān)鍵點(diǎn)與LuatOS API開發(fā)指南!
LuatOS AGPS 輔助定位開發(fā)實(shí)戰(zhàn)教程
嵌入式開發(fā)新選擇:LuatOS腳本框架入門教程
無需硬件,LuatOS模擬器釋放開發(fā)無限可能
告別硬件負(fù)擔(dān),LuatOS模擬器重塑開發(fā)成本與效率
解鎖CAN接口開發(fā)高效路徑!五個(gè)核心要點(diǎn)一次講透
血淚教訓(xùn)總結(jié):Air780EPM的LuatOS二次開發(fā)——OneWire協(xié)議調(diào)試注意事項(xiàng)
構(gòu)建可靠USB應(yīng)用:硬件設(shè)計(jì)要點(diǎn)與LuatOS開發(fā)技巧!
評(píng)論