uda1341原理及驅動

現在主流的音頻總線接口有IIS和AC97(Audio Codec)。

一。IIS是由sony和PILIPS公司共同推出的一套標準。

   IIS有3--5根物理連線

   IIsDI:串行數據輸入

  IISDO:串行數據輸出

  IISSCLK:爲串行數據提供位時鐘。IISSCLK=聲道數*採樣頻率*採用位數。如:fs=44.1Khz   聲道數位2.採樣位數爲16.則可以知道 IISCLK的具體數值。

IISLRCK:幀時鐘,用於左右聲道的切換,IISLRCK爲高電平時表示正在傳輸的是左聲道數據,爲低時傳輸的是右聲道數據,因此IISLRCK應正好與採樣頻率相等。(WS)

MCLK(也叫CDCLK編碼解碼時鐘):由於IIS只是負責了數字音頻信號的傳輸,要實現錄音和放音還需要其他的芯片支持(如UDA1341),而CDCLK就能爲芯片提供同步時鐘信號。主要用於A/D.D/A時的採用時鐘,一般爲256fs或384fs

 

 

 

 

                                                                              上面是IiS的總線控制器結構圖

IPSR是連個5位的預分頻器,其中IPSR_A用於產生II總線的主時鐘,IPSR_B作用於外部音頻芯片的時鐘產生器。

FIFO:發送和接收緩衝區。

SCLKG:主IISCLK產生器

CHNC:通道產生器和狀態機負責產生並控制IISCLK和IISLRCK.

SFTR:16位移位寄存器,主要負責對數據串並轉換。

從上面可以看出設置fs的值相當重要。在2440中喲PCLK和MLLin可以提供IIS的時鐘信號,我們這裏選擇了PCLK,經過分頻之後可以得到IISCLK,IISLRCK,CDClK。(預分頻A得到了IISCLK和IISLRCK,預分頻B得到了CDCLK)一般A,B分頻因子N是相等的。。而CDCLK=PCLK/(N+1).這裏涉及到2440時鐘的一些問題,還是先來回憶一下2440中的時鐘結構:

 1。在2440中有三種時鐘。

  FCLK is used by ARM920T.(If SLOW mode FCLK = input clock/divider ratio,If Normal mode (P, M & S value

        FCLK =      MPLL clock (Mpll))
  HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the LCD
 controller, the DMA and USB host block.
PCLK is used for APB bus, which is used by the peripherals such as WDT, IIS, I2C, PWM timer, MMC interface,
ADC, UART, GPIO, RTC and SPI

這裏需要設置MPLLCON和IISPSR的值。假設fs=44.1Khz,CDCLK=384fs=16.9344Mhz,則N=3,MDIV=150,PDIV=5,SDIV=0,IISPSR=3<<5 | 3;

 

 

2440與UDA1341相連除了使用IIS接口外,還需要使用L3總線來實現對聲音的控制控制,同時2440還可以通過L3總線來設置UDA1341的寄存器,但是在2440中並沒有L3總線接口,我們可以使用3個IO來模擬L3總線。在mini2440上我們可以看到

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章