2012年2月20日 星期一

TI OMAP3 DM3730 USB host controller high full low speed?

因為 TI OMAP3 DM3730 在 USB host controller 上偵測不到 full/low speed USB device,經查之後發現目前的硬體接線 ULPI 因為 DM3730 跟選用的 USB transceiver 的ULPI phy 的 serial 排線順序不一樣,在設定為外接 USB transceiver phy,而非 TLL 的接線方式時,無法使用 full/low speed mode,選用 device 時必須注意只能接 high speed device,如果要保持原有 

USB host controller ---phy--- USB transceiver --D+D-

接法, ulpi phy 線路不改而想要使用 full/low speed USB device,可以再外接一顆 high speed USB hub 解決。

2012/02/24

今天又花了些時間跟 Ken,還有 EE 確定 USB 問題,有些地方一開始誤解,因為是從軟體驅動程式行為,發現硬體有問題,一開始以為是目前元件接法

USB host controller ---phy--- USB transceiver --D+D-

無法實作, EE 在我提出有問題後就進行調查,發現是 ulpi serial 無法對應,其實並非這樣子的元件接法問題,而是 DM3730 的輸出分 ulpi parallel, ulpi serial, TLL 三種,因為我們有接 transceiver,就只能選擇 transceiver 有支援的 ulpi parallel 或 ulpi serial二擇一,high speed 的接法是 ulpi parallel,而 full/low speed 的 ulpi serial 接法,因需要接腳比 parallel 少,原本可以使用同一組硬體排線,但是因為 DM3730 跟所用 transceiver 的 ulpi serial 接腳順序與 transceiver 不同,造成無法使用現有的線路,待跳線驗證後可確定。

結論:

跳線加上 ohci driver 實測驗證後發現以 3 wire 的 ulpi serial 對 usb transceiver 就已經會發生誤判為有 USB low device (MiniPCI-E 上沒插卡),但我們 usb host port 的 transceiver 又沒有介面控制調整為 3-wire serial, 6-wire serial 或 12(8+4) parallel(預設),再加上 DM3730 SoC 原有的 ehci 轉換到 ohci 就會鎖死的 bug,最後確定無法使用原來的 

DM3730 USB host controller -- phy -- USB transceiver -- D+D- 

的接法,必須要再外接一個 USB hub 在 MiniPCI-E 上才能使用 USB full/low speed device.

相關文章: