TI论坛
直播中

王锦霞

7年用户 975经验值
私信 关注
[问答]

tlv320aic3204做从设备,时钟采样配置为48000,16bit, INR3/INL3 输入,时钟这样的配置正确吗?


  • 各位ti的工程师,请问,tlv320aic3204 做从设备,时钟采样配置为48000,16bit, INR3/INL3 输入,时钟这样的配置正确吗?
    aic3204_write(0, 0x0); // Select page 0
    aic3204_write(27, 0x1); // BCLK and WCLK is set as input AIC3204(slave) 00: audio InteRFace = i2s
    aic3204_write(28, 0x0); // Data ofset = 0
    aic3204_write(4, 0x3); // PLL setting: PLLCLK <- MCLK, CODEC_CLKIN <-PLL CLK
    aic3204_write(6, 0x8); // **PLL setting: J=8 (comment does not match)
    aic3204_write(7, 0x7); // PLL setting: HI_BYTE(D)
    aic3204_write(8, 0x80); // PLL setting: LO_BYTE(D)
    aic3204_write(30, 0x80); // For 32 bit clocks per frame in Master mode ONLY (make sure that BCLK >= [ (# bits per channel) * 2 ]

    aic3204_write(5, 0x91); // PLL setting: Power up PLL, P=1 and R=1
    aic3204_write(13, 0x01); // Hi_Byte(DOSR) for DOSR = 256 decimal or 0x01080 DAC oversamppling
    aic3204_write(14, 0x00); // Lo_Byte(DOSR) for DOSR = 256 decimal or 0x0100
    aic3204_write(20, 0x00); // AOSR for AOSR = 256 decimal or 0x0000 for decimation filters 1 to 6
    aic3204_write(11, 0x86); // Power up NDAC and set NDAC value to 3 (comments below differ from the values)
    aic3204_write(12, 0x88); // Power up MDAC and set MDAC value to 8 (comments below differ from the values)
    aic3204_write(18, 0x88); // Power up NADC and set NADC value to 8 (comments below differ from the values)
    aic3204_write(19, 0x86); // Power up MADC and set MADC value to 6 (comments below differ from the values)
    aic3204_write(60, 0x19); // Power up PRB_P25 for beep generator Selects the ADC (recording) signal processing block
    aic3204_write(61, 0x01); // ADC Singal Processing Block PRB_R1 ADC Signal Processing Block Control Register
    aic3204_write(48, 0xff); // Power up MADC and set MADC value to 6 (comments below differ from the values)
    aic3204_write(49, 0xff); // Power up PRB_P25 for beep generator

回帖(2)

夏日余晖

2024-10-11 10:24:17

您好,我看了下上面的几个寄存器没什么问题,MCLK是外部提供的吗?根据您的配置,MCLK的输入给PLLCLK,CODEC_CLKIN 是通过PLL 经过分频得到的。那么时钟的配置,可以参考应用手册的Table 2-27. PLL Example Configurations。


举报

张桂英

2024-10-14 14:47:10
根据您提供的信息,您正在尝试配置TLV320AIC3204作为从设备,时钟采样配置为48000Hz,16位,INR3/INL3输入。以下是您提供的配置代码:

1. aic3204_write(0, 0x0); // Select page 0
2. aic3204_write(27, 0x1); // BCLK and WCLK is set as input AIC3204(slave)
3. aic3204_write(28, 0x0); // Data offset = 0
4. aic3204_write(4, 0x3); // PLL setting: PLLCLK <- MCLK, CODEC_CLKIN <-PLL CLK
5. aic3204_write(6, 0x8); // **PLL setting: J=8 (comment does not match)

以下是对这些配置的分析:

1. 选择页面0是正确的,因为我们需要配置音频接口和时钟设置。
2. 将BCLK和WCLK设置为输入是正确的,因为AIC3204作为从设备。
3. 数据偏移设置为0也是正确的,因为我们需要从左对齐的数据。
4. PLL设置:PLLCLK <- MCLK, CODEC_CLKIN <- PLL CLK。这个设置将MCLK作为PLL的输入,并将PLL的输出作为CODEC的时钟输入。这是正确的,但您需要确保MCLK的频率是适当的。
5. PLL设置:J=8。这个设置将PLL的分频因子设置为8。但是,您的注释与实际设置不符。您需要根据实际需求调整分频因子。

关于时钟配置,您需要确保MCLK的频率是适当的。对于48000Hz的采样率和16位的位深度,您需要一个48000 * 32 = 1536000Hz的MCLK。因此,您需要确保MCLK的频率是1536000Hz。

总之,您的配置基本上是正确的,但需要确保MCLK的频率是适当的。此外,您需要根据实际需求调整PLL的分频因子。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分