Microchip(美國微芯科技公司)的 PIC18F4550 單片機內置 USB 模組也是很複雜的,需要化時間來理解,但是值得!USB 模組的操作是通過三個控制寄存器配置和管理。除此之外,實際上共使用了 22 個寄存器管理USB通信。
這些寄存器為:
• USB 控制寄存器(UCON)
• USB 配置寄存器(UCFG)
• USB 傳輸狀態寄存器(USTAT)
• USB 設備位址寄存器(UADDR)
• 幀編號寄存器(UFRMH:UFRML)
• 端點使能寄存器0 到15 (UEPn)
USB 控制寄存器(UCON):
USB 控制寄存器包含控制模組在傳輸過程中行為的位。 此寄存器包含控制以下行為的配置位元:
• 使能主 USB 外設
• 乒乓(Ping-Pang)緩衝器指針復位
• 掛起模式控制
• 禁止包傳輸
此外,USB 控制寄存器包含一個狀態位元 SE0(UCON<5>),它用於表示匯流排上是否出現了單端零電平。當使能了 USB 模組時,應該監視此位元以確定差分數據線是否出現了單端零電平。 這有助於區別初始上電狀態和 USB 重定信號。USB 模組的整體操作由 USBEN 位(UCON<3>)控制。將此位置1 可以啟動模組並將緩衝描述符表中的所有 PPBI 位復位為 0。此位也可以啟動片上穩壓器並啟用內部上拉電阻(如果使能)。 因此,此位元可以實現用軟體控制與 USB 的連接/ 斷開。 雖然當此位被清零時,所有的狀態和控制位元都被忽略,但在將此位置1 前還是需要預先對此模組進行全面的配置。
▲18F4550 USB 控制寄存器(UCON) |
PKTDIS 位(UCON<4>)是表示 SIE 禁止包傳輸和接收的標誌位元。 當接收到 SETUP 權杖時,此位被 SIE 置 1,以允許設置處理。 單片機不能將此位置 1,只能將此位清零,以允許 SIE 繼續發送和/或接收。 緩衝描述符表中的任何待處理事件都仍然可用,這些事件由 USTAT 寄存器的 FIFO 緩衝器指示。
RESUME 位(UCON<2>)允許外設通過執行恢復信令來進行遠端喚醒。 要進行有效的遠端喚醒,固件必須將 RESUME 位置1 並保持此狀態 10 ms,然後清零此位。
SUSPND 位元(UCON<1>)將模組和支援電路(即穩壓器)置於低功耗模式。 SIE 的輸入時鐘也被禁止。 回應 IDLEIF 中斷時,此位元必須由軟體置 1。 在產生 ACTVIF 中斷之後,由單片機固件將此位復位。 當此位有效時,設備與匯流排處於連接狀態,但是收發器輸出處於空閒狀態。 VUSB 引腳上的電壓根據此位元值的不同而變化。 在 IDLEIF 請求之前將此位置1,將導致不可預料的匯流排行為。
USB 配置寄存器(UCFG):
在通過 USB 通信之前,必須對與模組相關的內部和/ 或外部硬體進行配置。 大部分配置是使用 UCFG 寄存器進行的。 獨立的 USB 穩壓器也是通過配置寄存器控制。UFCG 寄存器中的控制位元可用於控制 USB 模組的絕大部分系統級行為,包括:
• 總線速度(全速和低速)
• 片上上拉電阻使能
• 片上收發器使能
• 乒乓緩衝器的使用
UCFG 寄存器也包含兩個位,用於輔助模組測試、調試和 USB 認證。 這些位元控制輸出使能狀態監視和產生監控模式。
資料來源:Microchip 18F4550 系列數據手冊
2011 年 05 月 05 日 天氣報告
氣溫:24.4 度 @ 22:00
相對濕度:百分之91%
天氣:大致多雲
沒有留言:
張貼留言