tech-sjh

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.

相關文章:

linux USB hid driver cypress_m8.c


沒有留言:

張貼留言

版權宣告、免責聲明


姓名標示、非商業性、相同方式分享3.0台灣授權條款授權。
免責聲明: 本文所載資料僅供參考,並不構成投資建議,
讀者閱讀或使用該資料所導致結果需要自擔風險與責任,
作者概不承擔閱讀人行為之任何風險與責任。
除非有特別宣稱,作者言論並不代表所屬任何團體、公司、或其他人意見。