基本資料 功能說明 應用說明 注意事項 其他

基本資料

 

 


Question 1

如何使HT82A851R USB之SIE重置時,而MCU不重置?

Answer

將HT82A851R USC(20H)暫存器之bit7清除為0,則HT82A851R USB之SIE重置時,MCU就不會重置。
反之,若HT82A851R之USC(20H)暫存器之bit7被置為1,則HT82A851R USB之SIE重置時,MCU也會重置。


Question 2

HT82A851R的USB介面共有幾個端點? 各端點都支持哪些傳輸方式及FIFO大小情況如何?

Answer

HT82A851R的USB介面共有5個端點(EP0~EP4)。
各端點的傳輸方式及FIFO大小如下:
端點0(EP0)支持控制傳輸方式,其FIFO大小為8 bytes。
端點1(EP1)支持中斷傳輸方式,其FIFO大小為8 bytes。
端點2(EP2)支持同步輸出傳輸方式,其FIFO大小為384 bytes。
端點3(EP3)支持同步輸入傳輸方式,其FIFO大小為32 bytes。
端點4(EP4)支持中斷傳輸方式,其FIFO大小為32 bytes


Question 3

HT82A851R的MCU如何知道主機(Host)向自己發送了一個0-sized 資料包 ?

Answer

若主機(Host)向HT82A851R的MCU發送了一個0-sized 資料包, 則SIE會將暫存器MISC(20H)之bit7置為1,當MCU看到暫存器MISC(20H)之bit7為1時,就知道主機向自己發送了一個0-sized 資料包。


Question 4

HT82A851R做為USB設備,如何使端點1成為主機的輸入端點 ?

Answer

端點1要成為主機的輸入端點,要做如下工作:
1). 在枚舉過程中,需將端點描述符中的bEndpointAddress之值設為1000 0001B。
bEndpointAddress之bit3~bit0為端點序號,0001表明現在是向主機報告端點1情況;bEndpointAddress之bit6~bit4保留未用;
bEndpointAddress之bit7為方向控制位,此位為1,表明端點1為輸入端點。
2). 需將HT82A851R之暫存器SETIO(27H).bit1 置為1,即端點1設為輸入狀態。
只有經過以上兩步操作,端點1才能成為主機的輸入端點。

 


功能說明

 

Question 1

HT82A822R 的RAM 有512x8bit 是唯讀RAM,用來做什麼用的?

Answer

該RAM用來存放頻譜或左右聲道音量大小的值(由暫存器USF的bit2位---ModeSelect決定,ModeSelect=0 RAM內容為頻譜值,ModeSelect=1左右聲道音量值)該值是從USB的介面FIFO裝入的。


Question 2

如何設置HT82A832R的PFD輸出頻率?

Answer

PFD Output Frequency = Prescaler Output / (2 * (N+1))
其中
1、Prescaler Output = PFD Frequency / Prescaler;
2、PFD Frequency為 (Fsys/4) / 16;
3、Prescaler由PRES1、PRES0(暫存器PFDC的第六位元和第五位元)可以設置為1(PRES1 = 0,PRES0 = 0),2(PRES1 = 0,PRES0 = 1),4(PRES1 = 1,PRES0 = 0),8(PRES1 = 1,PRES0 = 1);
4、N的值為暫存器PFDD的值。


Question 3

如何防止從揚聲器(speaker)中輸出爆破音(popping noise)?

Answer

為了防止揚聲器(speaker)發出爆破音(popping noise),在MCU上電初始過程中,功率放大器(power amplifier)應該輸出VDD/2(DAC寫入8000H)。
具體步驟為:
Step 1、設置WDTS的高四位元為0101b,進入DAC寫資料模式(DAC Write Data mode)。
Step 2、設置[2DH](DAC的低八位元)為00H,[2EH](DAC的高八位元)為80H。
Step 3、將[2FH].3置1後再清0,使DAC_WR_TRIG([2FH].3)產生一個下降緣。
Step 4、設置WDTS的高四位元為非0101b,退出DAC寫資料模式(DAC Write Data mode)。


Question 4

HT82A851R 做為USB設備,哪些USB事件可使SIE向MCU發出中斷請求?如何識別是哪種USB事件產生了中斷?

Answer

HT82A851R 做為USB設備,有以下USB事件可使SIE向MCU發出中斷請求。
1.USB休眠(SUSPEND)。
2.USB復位(RESET)。
3.USB恢復(RESUME)。
4.USB各個端點被訪問(ACCESS)。
以上USB事件產生中斷時,可通過以下方法來識別:
1.當USB進入休眠狀態時,USC(20H) 暫存器之bit0(SUSP位元)會被SIE設置為1,並產生USB中斷,在USB中斷服務程式中只要看到此位元為1,就知道是USB休眠事件產生了中斷。
2.當USB發生復位時,USC(20H) 暫存器之bit2(URST位元)會被SIE設置為1,並產生USB中斷,在USB中斷服務程式中只要看到此位元為1,就知道是USB因復位而產生了中斷。
3.當USB離開休眠而被恢復(RESUME)時,USC(20H) 暫存器之bit3(RESUME位元)會被SIE設置為1,並產生USB中斷,在USB中斷服務程式中只要看到此位元為1, 就知道是USB因RESUME而產生了中斷。
4.當HT82A851R 的端點0~端點4,任何一個端點被訪問時,均可產生USB中斷,其相應的中斷旗標元EP0F~EP4F(USR (21H)暫存器之bit0~bit4))會被SIE設置為1, 在USB中斷服務程式中查看相應的旗標,就知道是那個端點發生了中斷。


Question 5

HT82A851R做為USB設備,如何實現遠程喚醒主機功能?

Answer

HT82A851R做為USB設備要想實現遠程喚醒主機功能,應做如下工作:
1.在設備列舉時,需將配置描述符的bmAttributes之D5(即bit5)設置為1,告訴主機HT82A851R做為USB設備支援遠程喚醒主機功能。
2.HT82A851R之MCU需將AWR (23H) 暫存器之bit0(WKEN位元)設置為1,允許設備遠程喚醒主機。
3.當HT82A851R要真正遠程喚醒主機時,HT82A851R之MCU需通過USC(20H)暫存器之bit1(RMWK位元)發一個wake-up pulse,即可遠程喚醒主機。操作指令如下:
SET USC.RMWK
NOP
NOP
NOP
NOP
NOP
CLR USC. RMWK 。
4.當USB主機接收到HT82A851R發送的遠程喚醒信號後,它會發出一個恢復位元信號給設備,這樣就可重新與設備進行通訊。其時序圖如下:(在附件中)



Question 6

HT82A851R做為USB設備,當MCU收到主機發來的SET_CONFIGURATION命令時,MCU要做哪些工作?

Answer

HT82A851R之MCU收到主機發來的SET_CONFIGURATION命令時,MCU會將SET_CONFIGURATION命令中的配置值取出,並與配置描述符中的配置值(bConfigurationValue)相比較:
若此二者相同,那麼說明主機配置設備成功,則HT82A851R之MCU需回一個0-sized數據包給主機,做為收到SET_CONFIGURATION命令的應答信號。
若此二者不同,那麼說明主機配置設備失敗,則HT82A851R之MCU需發一個STALL命令給主機。
當主機配置設備成功後,則設備與主機的列舉過程結束,二者即可進行正常通訊。


Question 7

HT82A851R做為USB設備,MCU如何發0-sized 數據包給主機?

Answer

MCU發0-sized 數據包給主機,實際上是發一個握手信號給主機。其發送方法如下:
1). 將暫存器MISC(26H).bit1(TX) 設為1,即FIFO設為寫模式。
2). 延時4us。
3). 將暫存器MISC(26H).bit0(REQUEST) 設為1,即發送FIFO請求。
4). 延時28us。
5). 判斷暫存器MISC(26H).bit6(READY)是否為1,若不為1,則轉1).
若為1,則轉6).
6). 將暫存器MISC(26H).bit1(TX) 清為0,即FIFO設為讀模式。
7). 延時4us。
8). 將暫存器MISC(26H).bit0(REQUEST) 清為0,即結束FIFO請求。
在完成以上操作後,MCU就向主機發送了一個0-sized數據包。


Question 8

HT82A824R的系統頻率最快是多少?如何設定?

Answer

HT82A824R的系統頻率最快是16MHz,需把UCC Register的Control bit Fsys16M設定為’1’,此外UCC Register的OSCCLK bit也要正確的設定外掛Crystal之頻率(6M或12M)


Question 9

HT82A824R的VDD_IO Option的功能為何?

Answer

HT82A824R的Configuration Option有VDD_IO Option,此Option是用來設定PA4~PA7(nibble), PB0~PB4(bit),PC4~PC7(nibble)的輸出入電壓準位,有VDD與V33O兩種選擇;因為V33O的driver能力有70 mA,所以如果應用在不同電壓系統(如5V與3.3V),可以直接讓I/O與3.3V的電壓系統連接,省掉Level Shift IC做電壓轉換.


Question 10

HT82A824R的attenuator的功用為何?

Answer

HT82A824R有兩組attenuator (L/R Channel), 可以把外部的類比Audio輸入信號經由程式控制做不同程度的衰減.


Question 11

HT82A824R的Power Amplifier的輸入可以選擇嗎?

Answer

可以經由SELW控制位元用來選擇Power Amplifier的來源;SELW=0時代表Power Amplifier的信號來自USB Audio,而SELW=1時代表Power Amplifier的信號來自attenuator的輸出,也就是來自外部的音源輸入.


Question 12

HT82A824R的USVC暫存器的功能為何?

Answer

USVC是數位音量控制暫存器,其功能是用將PC經由USB Audio傳給HT82A824R的數位Audio資料,經由程式做做不同程度的音量放大或衰減,此外還有靜音的功能.


Question 13

HT82A824R的MISC暫存器的bit 4之ISO_OUT_EN功能為何?

Answer

當PC經由USB Full Speed Isochronous pipe傳送Audio資料時,每1ms會傳送一個SOF(Start Of Frame)信號給USB Device,如果把ISO_OUT_EN設為1話,則每次HT82A824R收到SOF就會產生USB中斷.

 


應用說明


Question 1

HT82A824R Capture Audio Data DMA是用來做什麼?

Answer

HT82A824R Capture Audio Data DMA是由硬體電路把Audio數位資料放置於RAM Bank 1~4,使用者可以把Capture的Audio Data內容做分析(如:顯示頻譜等).


Question 2

HT82A824R DMA Capture Audio Data的來源有那兩個?如何設定?

Answer

HT82A824R DMA Capture Audio Data的來源可以是來自USB Audio或經由AN0/AN1把外部的Analog Audio Stereo Signal經由IC內部的12-bit ADC轉換成數位資料.可由USF Register的Data_Mode Control bit來決定資料的來源.

 


注意事項

 


其他


Question 1

HT82A851R做為USB設備,當其MCU收到主機發來的SET_ADDRESS 命令時,MCU要做哪些工作?

Answer

HT82A851R做為USB設備,當其MCU收到主機發來的SET_ADDRESS 命令時,MCU要做如下工作:
1). HT82A851R之MCU需將暫存器SIES(25H)之bit0(ASET)置為1。此位元為1表明:在本次傳輸(transfer)結束後,HT82A851R之SIE才用AWR(23H)中的位址來更新設備位址。
2). HT82A851R之MCU需將收到的新的設備位址寫入到AWR(23H)暫存器之bit1~bit7。
3). HT82A851R之MCU需回一個0-sized數據封包給主機,做為收到SET_ADDRESS 命令的應答信號。
當HT82A851R之MCU完成以上工作後,在下一個傳輸中(transfer)主機和設備就可以用新的位址進行通訊。