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

 

 

 uda1341原理及驱动_第1张图片

 

                                                                              上面是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上我们可以看到

 

 

 

 

 

你可能感兴趣的:(uda1341原理及驱动)