點擊上方名片關注了解更多
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,如下:
對于 Micro USB 插座,它有 5 條引腳:

引腳作用如下表所示:
| 引腳名 | 作用 |
|---|---|
| VBUS | 作為 Host 時,對外供電 作為 Device 時,接收外部輸入的電源 |
| DM | 數據信號 |
| DP | 數據信號 |
| ID | 分辨自己角色的引腳: 1:作為 Device 0:作為 Host |
| GND | 地線 |
開發板作為 USB Device 時,跟 PC 上的 USB 相連,PC 的 USB 接口只有 VBUS、DM、DP、GND,所以開發板的 ID 引腳跟 PC 的 USB 口并無連接,它被板子上的上拉電阻拉高。
開發板作為 USB Host 時,需要接入一個"OTG 轉換器",再連接 U 盤。如下圖黑色的轉換器:

OTG 轉換器的內部電路很簡單,就是把 ID 引腳拉低:

這個轉換器插入開發板的 OTG 口之后,OTG 口上的 ID 引腳就被拉低,軟件把開發板轉換為 USB Host。
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 接口需要實現兩個功能:
當 USB_OTG1_ID 高電平時,說明 ID 引腳被板子的上拉電阻拉高,沒有被拉低。這時候 AO3416 導通,EN 引腳不使能。這樣 SY6280AAAC 就不會對外供電,USB_OTG1_VBUS 就沒有電壓。
當 USB_OTG1_ID 低電平時,說明 ID 引腳被拉低,這時候 AO3416 截至,EN 引腳使能,SY6280AAAC 對外供電,USB_OTG1_VBUS 有電壓,開發板作為 USB Host 對外供電。

如果不考慮兼容 USB 3.0 協議,可以使用如下精簡電路:CC1、CC2 作為 ID 引腳。原理和上圖類似。

如果要兼容 USB 3.0 協議,則需要加入專用的芯片,專用芯片檢測到 CC1、CC2 狀態后,發中斷給主控,并通過 I2C 將信息報給主控,主控再控制供電引腳:

參考:
韋東山老師驅動大全https://www.lulian.cn/news/otg_gongneng_jiexi-cn.htmlhttps://www.elecfans.com/connector/20180309645002_a.htmlhttps://blog.csdn.net/qq_37659014/article/details/124479125
聲明:
推薦閱讀▼
電路設計-電路分析
EMC相關文章
電子元器件
后臺回復“加群”,管理員拉你加入同行技術交流群