功能說明
Question 1
HT46RB50 USB復位後MCU是否會復位?
Answer
通過暫存器USC的第七位可以設置MCU是否會隨著USB的復位而復位。
當該位設置為1時,USB復位將復位MCU。當該位設置為0時,USB復位不會復位MCU。
Question 2
HT46RB50 USB中斷產生時,如何判斷哪一個端點被訪問?
Answer
當USB中斷產生時,暫存器USR中相關的端點請求標誌位EPXIF(X為端口號)會被置1,通過讀取USR可以得知哪一個端點被訪問。
Question 3
HT46RB50 USB如何進入休眠模式(SUSPEND MODE)以及該模式下消耗電流為何?
Answer
如果總線上3ms沒有信號,HT46RB50將進入休眠模式(SUSPEND MODE),在該模式下清除暫存器UCC的第三位(USBCKEN)禁止USB時鐘後,此時電流為400μA,
通過置位暫存器UCC的第四位(SUSP2)可將電流降至250μA。
Question 4
HT46RB50中如何選擇需要操作的FIFO?
Answer
通過設置暫存器UCC的低三位(EPS0~EPS2)可以選擇指定的FIFO進行操作,其對應關係為:
EPS0~EPS2設置為“000”時選擇端點0的FIFO;
EPS0~EPS2設置為“001”時選擇端點1的FIFO;
EPS0~EPS2設置為“010”時選擇端點2的FIFO;
EPS0~EPS2設置為“011”時選擇端點3的FIFO。
Question 5
如何寫入FIFO資料?
Answer
1、設定一組FIFO,設定為寫入mode (MISC TX bit = 1),設定REQ bit為 1。
2、檢查Ready bit直到狀態 = 1。
3、透過FIFO指標Register寫入,同時記錄已寫入資料數目。
4、重復步驟2, 3直到資料已寫完或Ready bit為0,標示FIFO不允許寫入資料。
5、Set MISC TX bit= 0。
6、將REQ bit清除為 0,完成寫入動作。
Question 6
如何讀取FIFO資料?
Answer
1、選擇一組FIFO,設定為讀取mode (MISC TX bit = 0),設定REQ bit為 1。
2、檢查Ready bit直到狀態 = 1。
3、透過FIFO指標Register讀取FIFO資料,同時記錄已讀取資料數目。
4、重復步驟2, 3, 直到Ready bit為0,標示FIFO資料已讀完。
5、Set MISC TX bit=1。
6、將REQ bit清除為 0,完成讀取動作。
Question 7
HT46RB50作為USB設備,為什麼UDP(D+)管腳要接一個1.5k上拉電阻到V33O管腳?
Answer
因為HT46RB50作為USB設備為全速模式,全速模式要求USB設備的資料線D+必須接一個1.5k上拉電阻到3.3V。因此HT46RB50的UDP(D+)管腳要接一個1.5k上拉電阻到V33O管腳。
Question 8
HT46RB50串列介面主發送模式的操作步驟?
Answer
Step1、 選擇CKS 和M1,M0=00,01,10
Step2、 選擇CSEN、MLS(同從模式)
Step3、 置位SBEN
Step4、 寫資料至SBDR 暫存器 → 資料記憶在TXRX 暫存器中 → 輸出CLK 信號→ 到第5 步 → (SIO 內部操作 → 資料記憶在TXRX 緩衝器中,SDI上資料信號移入TXRX 暫存器 → 資料傳輸完畢,TXRX 緩衝器資料載入到SBDR 暫存器)
Step5、 檢查WCOL;WCOL=1 → 清除WCOL 並且跳轉到第4 步;WCOL=0 →跳到第6 步
Step6、 檢查TRF 或等待SBI(串列介面中斷)
Step7、 從SBDR 暫存器讀取資料
Step8、 清除TRF
Step9、 跳轉到第4 步
Question 9
HT46RB50串列介面從模式的操作步驟
?
Answer
1、 選擇M1,M0=11
2、 選擇CSEN、MLS(同主模式)
3、 置位SBEN
4、 寫資料至SBDR 暫存器 → 資料存儲在TXRX 暫存器中 → 等待主機時鐘( 和SCS):CLK → 跳轉到第5 步 → (SIO 內部操作 → CLK(SCS)接收 → 輸出資料存儲在TXRX 暫存器內,SDI 上資料移位元到TXRX 緩衝器內 → 數據發送完畢,TXRX 緩衝器資料載入到SBDR 暫存器)
5、 檢查WCOL;WCOL=1 → 清除WCOL 並且跳轉到第4 步;WCOL=0 → 跳到第6 步
6、 檢查TRF 或等待SBI(串列介面中斷)
7、 從SBDR 暫存器讀取資料
8、 清除TRF
9、 跳轉到第4 步
Question 10
如何發NAK包給USB HOST?
Answer
當進入USB中斷之後,不進行任何操作,直接退出中斷,此時,MCU會自動給USB HOST返回NAK包。
Question 11
USB主機掛起(SUSPEND)之後,如何通過HT46RB50喚醒主機?
Answer
HT46RB50要喚醒主機,在USB列舉的時候,在configuration descriptor中需要把remotewakeup功能打開。USB主機掛起(SUSPEND)後,當HT46RB50檢測到喚醒信號,可以通過RMWK(USC的第一位)發送信號來喚醒USB主機,USB主機收到該信號後,會發一個Resume信號給HT46RB50。
Question 12
MISC的第7位(LEN0)的有何意義?
Answer
該位元表示FIFO的讀取資料為LEN0握手信號,當主機送出Zero length Handshake資料給MCU時,MISC暫存器的LEN0位會設定為1,但此bit狀態不會自動清除,程式師必需自行清除此bit狀態為0。
|