OTG 是“On The Go”的英文縮寫,可以理解為“安上即可用”。USB 傳輸是主從結構,一切 USB 傳輸都由 Host 發起。
在開發板上可以插入 U 盤,這時開發板作為 USB Host。
開發板要跟 PC 通信,開發板就要作為 USB Device。
開發板要作為 USB Host、USB Device 兩種角色,可以使用 OTG 插口:它可以根據硬件電路自動識別自己的角色,切換為 USB Host
或 USB Deivce。
OTG 插口有多種形態,常用的有 Micro USB、Type C,如下:
1.1 Micro USB
對于 Micro USB 插座,它有 5 條引腳:
開發板作為 USB Device 時,跟 PC 上的 USB 相連,PC 的 USB 接口只有 VBUS、DM、DP、GND,所以開發板的 ID
引腳跟 PC 的 USB 口并無連接,它被板子上的上拉電阻拉高。
開發板作為 USB Host 時,需要接入一個“OTG 轉換器”,再連接 U 盤。
OTG 轉換器的內部電路很簡單,就是把 ID 引腳拉低:
這個轉換器插入開發板的 OTG 口之后,OTG 口上的 ID 引腳就被拉低,軟件把開發板轉換為 USB Host。
1.2 Type C
Type C 插座里面有兩組完全一樣的信號,Type C 數據線無論正插、反插。
Type C 插座有如下信號,在 USB2.0 協議里我們只關心紅框里的信號:
開發板作為 USB Device 時,跟 PC 上的 USB 相連,PC 的 USB 接口只有 VBUS、DM、DP、GND,所以開發板的
CC1、CC2 引腳跟 PC 的 USB 口并無連接,它被板子上的上拉電阻拉高。
開發板作為 USB Host 時,需要接入一個“OTG 轉換器”。
如果不考慮兼容 USB 3.0 協議,上述轉換器的電路圖很簡單,把 Type C 插頭里面的 CC 引腳連接 5.1K 歐姆電阻到 GND
即可。如下圖所示:
- OTG 接口電路
開發板上的 OTG 接口需要實現兩個功能:
檢測 ID 引腳(使用 Type C 接口的話是 CC1、CC2 引腳),引入主控芯片:軟件根據它設置 USB 控制器的角色(Host 或
Device)
根據 ID 引腳(或者 CC1、CC2)決定 VBUS 是否輸出電源:硬件電路自動實現,或者加入專用芯片
2.1 Micro USB
當 USB_OTG1_ID 高電平時,說明 ID 引腳被板子的上拉電阻拉高,沒有被拉低。這時候 AO3416 導通,EN 引腳不使能。這樣
SY6280AAAC 就不會對外供電,USB_OTG1_VBUS 就沒有電壓。
當 USB_OTG1_ID 低電平時,說明 ID 引腳被拉低,這時候 AO3416 截至,EN 引腳使能,SY6280AAAC
對外供電,USB_OTG1_VBUS 有電壓,開發板作為 USB Host 對外供電。
2.2 Type C
如果不考慮兼容 USB 3.0 協議,可以使用如下精簡電路:CC1、CC2 作為 ID 引腳。原理和上圖類似。
如果要兼容 USB 3.0 協議,則需要加入專用的芯片,專用芯片檢測到 CC1、CC2 狀態后,發中斷給主控,并通過 I2C
將信息報給主控,主控再控制供電引腳:
-
轉換器
+關注
關注
27文章
8703瀏覽量
147186 -
接口
+關注
關注
33文章
8601瀏覽量
151168 -
開發板
+關注
關注
25文章
5050瀏覽量
97487
發布評論請先 登錄
相關推薦
評論