三款主流便携设备codec tlv320aic31xx/wm8900/cs42l5x比较

对比项目

对比项目\型号

Tlv320aic3110

Wm8900

Cs42l52

Alc5621

ADC (THD+N)

-85 dB

-84 dB

-88 dB

-80

ADC S/N

91 dB

95 dB (+A)

99 dB

85

DAC (THD+N)

-82 dB

-82 dB

-88 dB

-85

DAC S/N

95 dB

97 dB (+A)

98 dB

92 dB

Sampling Frequency

8-kHz to 192-kHz

8-kHz to 192-kHz

4-kHz to 192-kHz

8-kHz to 48-kHz

especial

EQ  

PLL

FLL

H/S detect

A-law

U-law

PWM

BTL  

EQ  

PLL


各自特点

BTL原理

(Bridge-Tied-load)意为桥接式负载。

负载的两端分别接在两个放大器的输出端。其中一个放大器的输出是另外一个放大器的镜像输出,也就是说加在负载两端的信号仅在相位上相差180°。负载上将得到原来单端输出的2倍电压。从理论上来讲电路的输出功率将增加4倍。BTL电路能充分利用系统电压,因此BTL结构常应用于低电压系统或电池供电系统中。

1TIcodec在时钟结构方面有个很清楚的框架图

不同于其他的codecTIPLL_CLKIN不仅可以来自MCLK,也可以选择BCLK,根据不同的PLL_CLKINPLL_CLK要配置不同的分频系数,即RJDP四个参数的选择和PLL_CLKIN有关,

三款主流便携设备codec tlv320aic31xx/wm8900/cs42l5x比较_第1张图片

R = 1, 2, 3, ..., 16 (page 0 / register 5, default value = 1)

J = 1, 2,3, …, 63, (page 0 / register 6, default value = 4)

D = 0, 1, 2, …, 9999 (page 0 / register 7 and 8, default value = 0)

P = 1, 2, 3, …, 8 (page 0 / register 5, default value = 1)

得到PLL_CLK之后,CODEC_CLKIN就可以有四个来源时钟可选择,由于往下分频都是整数分频,如果MCLK12M或者24MCODEC_CLKIN不适合选择MCLK

得到CODEC_CLKIN之后,有两个分支,分别是给DACADC使用的,其中ADC的时钟可以选择和DAC同步,使用同个时钟;最后,分频到DACADC所需要的采样率。

三款主流便携设备codec tlv320aic31xx/wm8900/cs42l5x比较_第2张图片


(2)wolfsoncodec有一个FLL电路

三款主流便携设备codec tlv320aic31xx/wm8900/cs42l5x比较_第3张图片

类似TI的时钟选择,都是针对MCLK是否为采样率的整数倍、是否需要codec内部小数分频而设计的。

如果MCLK刚好是输入了256FsSYSCLK就直接从MCLK输入;如果MCLK12MFs44.1K,需要经过FLLFLL按照输入时钟和输出要求,内部完成分频,送出11.2896M,这时SYSCLK就从Fout输入。

SYSCLK类似TI时钟结构图中的PLL_CLKIN,往下要经过一系列整数分频得到DAC ADC工作所需要的频率和采样率。

三款主流便携设备codec tlv320aic31xx/wm8900/cs42l5x比较_第4张图片

三款主流便携设备codec tlv320aic31xx/wm8900/cs42l5x比较_第5张图片

(3)cirrus logic codec关于时钟结构没有一个很直观的介绍,只有两个寄存器05h\06h可以配置,正确配置这两个寄存器,可以让codec工作在不同的时钟下

先看下05h寄存器8bit的作用

bit7AUTO

Configures the auto-detect circuitry for detecting the speed mode of the CODEC when operating as a slave.

codec slave模式,可以选择使能AUTO功能,当然也可以不选择AUTO

bit6bit5SPEED[1:0]

Configures the speed mode of the CODEC in slave mode and sets the appropriate MCLK divide ratio for LRCK and SCLK in master mode.

这两个bit用于配置采样率的大小,如果bit7已经设置为AUTO,这两个bit位是失效的

codec slave模式,如果bit71,这里无所谓设置多少了;如果bit70,根据采样率Fs落在4K100K的哪个范围,选择相应的值。

codec master模式,bit7必须设置为0,这两个bit位用于设置MCLKSCLKLRCK之间的倍数关系,SCLK是采用标准的64FsMCLK支持从8K192K,所以MCLK/LRCK就是不同的倍数关系。

bit4】【bit3】比较容易设置,不多说

bit2bit1RATIO[1:0]

Configures the internal MCLK/LRCK ratio.

这两个bit位也是定义SCLK/LRCK Ratio,看起来似乎和bit6bit5有重复设置了,但是不管如何,看看测试结果MCLK 12Mcodec master

cs42l52 registers:注意05 06寄存器,一下红色部分

            0x00 0xe3 0x00 0x00 0x05 0xa0 0xa4 0x00 0x90 0x90 

            0xa5 0x0f 0x00 0x60 0x02 0x00 0x2c 0x2c 0x00 0x00 

            0x00 0x00 0x00 0x00 0x80 0x80 0x00 0x00 0x00 0x00 

            0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

            0x7f 0xc0 0x00 0x3f 0x00 0x00 0x01 0x00 0x00 0x00 

            0x3b 0x00 0x5f 

MCLK=12M  LRCK=46.8K

    cs42l52 registers:

            0x00 0xe3 0x00 0x00 0x05 0x26 0xa4 0x00 0x90 0x90 

            0xa5 0x0f 0x00 0x60 0x02 0x00 0x2c 0x2c 0x00 0x00 

            0x00 0x00 0x00 0x00 0x80 0x80 0x00 0x00 0x00 0x00 

            0x00 0x88 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 

            0x7f 0xc0 0x00 0x3f 0x00 0x00 0xc2 0x00 0x00 0x00 

            0x3b 0x00 0x5f 

MCLK=12M  LRCK=44.1K

说明【bit6bit5SPEED[1:0]

3. These bits are ignored when the AUTO bit (“Auto-Detect” on page 44) is enabled

这句话是错的,当AUTO bit disable的时候,bit6bit5SPEED[1:0]是不起作用的!

06h寄存器比较好配,选择codec模式,SCLK是否反相、I2S格式等。

你可能感兴趣的:(c,工作,框架,测试,Codec)