本文以Air780EPM系列低功耗模組為實例,分享USB接口硬件設計的要點以及LuatOS高效開發API的助力作用。旨在指導開發者在設計中規避常見陷阱,高效構建穩定可靠的USB應用。
在設計USB接口時,不少剛接觸嵌入式開發的新朋友,往往會因其“看似簡單”而掉以輕心。
實際上,USB作為物聯網設備中負責供電、固件升級、通信交互等功能的核心通道,其設計質量直接影響整機穩定性。從電路保護、阻抗控制、電源濾波到PCB布局,幾乎每一步都暗藏玄機。一旦處理不當,就可能導致設備無法識別、連接不穩定、甚至批量損壞。

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

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

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

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

今天的內容就分享到這里了~
審核編輯 黃宇
-
物聯網
+關注
關注
2948文章
47981瀏覽量
417102 -
USB設計
+關注
關注
0文章
7瀏覽量
9038 -
LuatOS
+關注
關注
0文章
163瀏覽量
2728
發布評論請先 登錄
LuatOS:485 總線硬件設計要點與 exmodbus 庫開發實戰
LuatOS 框架的嵌入式系統架構設計原理
輕松掌握——LuatOS socket基礎知識和應用開發
LuatOS-Air轉LuatOS常見故障排查手冊
構建可靠USB應用:硬件設計要點與LuatOS開發技巧!
LuatOS MCU核心庫全接觸:新手操作與功能測試攻略!
新手必備:LuatOS MCU核心庫功能測試與實踐指南
零基礎也能玩轉TCP/IP?LuatOS上手全攻略
快速掌握TCP/IP?LuatOS新手入門指南
LuatOS編程基礎教程:手把手帶你入門物聯網開發!
USB設計操作指南:硬件關鍵與LuatOS API開發技巧!
評論