將code 放到internal SRAM來run 也一樣。
所以把RESET pin 拉到Vcc 應該也無效。
請Ricky 加上粗一點的地線,連接targetboard和demoboard,並且加上大電容。
結果還是一樣。
USB D+/D- Signal Definition:
H.H : Single Ended One - 無效,不應該出現在bus上
H.L : Differential 1
L.H : Differential 0
L.L : Single Ended Zero - End of Packet, Disconnect, Reset。
其中Differential 0, 1被用來定義傳輸資料。
根據speed 不同,Differential 0/1的代表意義也不同。
USB 用J.K 狀態來代表通訊時bus的電壓狀態。
J. K 的定義在Low Speed, Full Speed, High Speed時不一樣。
其中Full Speed, High Speed的J, K定義是一樣的。
Low Speed
J : Differential 0
K : Differential 1
Full/High Speed
J : Differential 1
K : Differential 0
以下對Full/High Speed Bus 描述
BUS Idle : 維持Different 1 (J)
Reset : 當bus處於SingleEndedZero (D+/- both 0) 2.5us 之後,bus 轉換進入 Reset狀態。
USB 2.0 hub 在偵測到某device 是Idle時,就會進行HighSpeed Handshaking 偵測。
- Device偵測到VBUS有電壓,將D+接到High,作Softct。
- Device 作Softct (D+ high for 3ms?)讓Host偵測到。
- Host將bus 維持在SigleEndedZero(2.5us),讓device進入Reset。
- Host接著送出一串快速的J.K信號,讓 device 進入HighSpeed。
- Host送出Endpoint 0 Setup ,Request Descriptor。
- VBUS
- BUS RESET
- HSpeed State
- SETUP0
1 則留言:
你好
請問你有寫過linux usbe gadget driver 嗎?
張貼留言