12.15.2006

ISP 1582/3 debuging..

Mode Register 的PWRON ,描述上雖說是LED pin control,實際上是設定chip always poweron 的bit(reference Unlock register 的說明)。

Isp 1582/3 在一時間 (很短) timeout後 ,就會進入suspend,default setting 在suspend 中,register 只可以read,不能write,所以write 動作都會無效。
若要作write 動作,要先作unlock (write 0xAA37 進入unlock register)。

設定Mode Register的 PWRON,可以讓 ISP1582/3 不要作" timeout 進入suspend" 的動作。

另外,reset 後,chip 需要一段時間才能initialize OK,可以用read chip id 來判斷是否initialize OK。
(但是在未intialize OK前 對chip 作read 動作好像會干擾chip 的動作)

另外一個bit : WKUPCS,是設定對ISP1582/3 的任何動作,都會讓chip 維持wakeup 。
當set時,要持續對chip read/write 才能讓chip alive,否則一下子就進入suspend。

現象: 當設定softct 後,量測D+. D- 只有25ns的 pulse,但是在softct後立即對chip read

USB hardware 相關:

D+. D- pin 很敏感,有時候可以用oscillator 量測,有時候會因此干擾到Pc host 的反應,所以當量測到 D+,D- 有2ms 的pulse 後,就可以確認device 的動作正常,pc host應該要送出setup message。
(如果沒有,就把oscallator 移除,再試一次,正常時,pc 約在 2 sec 內發出 "不認識的usb 裝置" 訊息)。

device 送出2ms的D+ pulse後,host緊接著送出messasge (D+ 不到500mv),約100ms的message。
總共有3個message。
很奇怪的是,第一個message開始的3.3V 2ms pulse確認是device發出的。第二,三個message開頭一樣有3.3V的pulse,不知道是host還是device產生的。
int register state change
  • VBUS, SUSP
  • RESM
  • SUSP
  • RESM
  • BRST
  • HS_STA
  • SOF
  • RESM, SUSP
  • repeat BRST - 2 times
  • SUSP
可以看到BRST 三次: detection of a bus reset。

沒有留言: