USB 狀態寄存器(USTAT):
USB 狀態寄存器報告 SIE 中的事務狀態。 當 SIE 發出 USB 傳輸完成中斷信號時,應該讀 USTAT 以確定傳輸的狀態。 USTAT 包含傳輸端點編號、傳輸方向和乒乓緩沖器指針值(如果使用的話)。
USTAT 寄存器實際上是一個讀取由 SIE 維護的 4 位元組狀態 FIFO 的窗口。 它允許單片機在 SIE 處理其他的端點時處理一個傳輸。 當SIE 使用緩衝器讀寫完資料後,它將更新 USTAT 寄存器。 如果在事務完成中斷被回應之前進行另一次 USB 傳輸,SIE 將把下一次傳輸的狀態保存到狀態 FIFO 中。
清零傳輸完成標誌位元 TRNIF,會使 SIE 將 FIFO 指針加1。 如果 FIFO 保持寄存器中的下一個資料有效,SIE 將立即再次產生中斷。 如果沒有其他資料,TRNIF 將保持清零,USTAT 資料將不再可靠。
▲USB 狀態寄存器(USTAT) |
16 個可能的雙向端點中的每一個都有自己獨立的控制寄存器 UEPn(其中n 表示端點編號)。每個寄存器相應控制位的功能都是相同的。
EPHSHK 位(UEPn<4>)控制端點握手,將此位置 1 將使能 USB 握手。 通常,除使用同步端點以外,此位總是置 1 的。
EPCONDIS 位(UEPn<3>)用於使能或禁止通過端點進行的 USB 控制操作(SETUP)。清零此位將使能 SETUP 事務。注意必須將相應的 EPINEN 和 EPOUTEN 位置 1 以使能 IN 和 OUT 事務。 因為 USB 規範中端點 0 是默認控制端點,所以對於端點 0,此位將總是被清零。
EPOUTEN 位(UEPn<2>)用於使能或禁止主機的 USBOUT 事務。 將此位置 1 則使能 OUT 事務。同樣,EPINEN 位(UEPn<1>)將使能或禁止主機的 USB IN 事務。
EPSTALL 位(UEPn<0>)用於表示端點的 STALL 狀態。 如果在一個特殊的端點上發出了一個 STALL,那麼這對端點的 EPSTALL 位將由 SIE 置 1。 此位將保持置 1 直到由固件清零或 SIE 復位。
▲USB 端點控制寄存器 |
USB 位址寄存器包含惟一的 USB 位址,當此位址有效時,可被外設識別。 當接收到由 URSTIF 表示的 USB 複位元信號時,或接收到來自單片機的重定資訊時,UADDR復位為 00h。 單片機必須在 USB 啟動階段(枚舉)寫入 USB 位址,該操作受Microchip USB 固件支援。
USB 幀編號寄存器(UFRMH:UFRML):
幀編號寄存器包含 11 位幀編號。低位元位元組保存在 UFRML 中,而高 3 位則保存在 UFRMH 中。 不管是否接收到 SOF 權杖,都用當前幀編號更新該寄存器對。對於單片機而言,這些寄存器是唯讀的。幀編號寄存器主要用於同步傳輸。
資料來源:Microchip 18F4550 系列數據手冊
2011 年 05 月 06 日 天氣報告
氣溫:26.2 度 @ 22:00
相對濕度:百分之82%
天氣:大致多雲
沒有留言:
張貼留言