本帖最后由 airwill 于 2019-8-21 21:41 编辑
本文将通过TLV320ADC3101的输入配置、输出配置、时钟配置以及信号处理配置进行讲解,其中,输入、输出以及时钟的正确配置决定了ADC是否能够正常工作,信号处理的正确配置决定了ADC的输出结果是否满足系统要求。 输入配置- 对于左右两路ADC,分别拥有三路模拟输入,可以分别配置为一路差分、一路单端或者三路单端。表1中列出了所有可以配置的情况。
表1
P1:0x34(52) [Left ADC Input Selection for Left PGA] , P1:0x36(54) [Left ADC Input Selection for Left PGA] , P1:0x37(55) [Right ADC Input Selection for Right PGA] , P1:0x39(57) [Right ADC Input Selection for Right PGA] 进行配置。 在使用模拟麦克风输入时,TLV320ADC3101提供MICBIAS,用户可以通过寄存器P1 R51 [MICBIAS Control]配置MICBIAS为2V、2.5V或AVDD。根据不同的麦克风输入,需要的MICBIAS也不同。 在使用数字麦克风输入时,TLV320ADC3101 需要配置其复用引脚GPIO1和GPIO2作为数字麦克风的时钟线和数据线,可以通过寄存器 P0 R51 [DMCLK/GPIO2 Control], P0 R52 [DMDIN/GPIO1 Control]配置。 输出配置- TLV320ADC3101提供灵活的输出接口配置。对于用户来说,确定音频输出格式及采样率非常重要。TLV320ADC3101支持I2S以及左对齐、右对齐格式,TDM音频格式,数据位宽16、20、24或32位,以及通道互换、时隙调节、BCLK反向等灵活配置。
- 用户可以通过I2C写寄存器
P0: 0x1B (27) [ADC Audio Interface Control 1], P0: 0x1C (28) [Data Slot Offset Programmability 1], P0: 0x1D (29) [ADC Audio Interface Control 2] (D3), P0: 0x25 (37) [Data Slot Offset Programmability 2], P0: 0x26 (38) [I2S TDM Control Register] 进行配置。 时钟配置TLV320ADC3101有两种时钟模式:主模式和从模式;在主模式中,ADC需要外部MCLK,其他时钟通过内部的PLL和分频器产生;在从模式中,ADC需要外部 MCLK和BCLK,LRCLK可以外部输入也可以由分频产生。 在实际应用中,根据具体时钟输入选择是否使能PLL以及各个分频器。 在时钟配置中, PLL的输入时钟PLL_CLKIN可以是MCLK或BCLK(从模式),ADC的输入时钟ADC_CLKIN可以是MCLK,BCLK(从模式)或PLL_CLK。 ADC_CLKIN (CODEC_CLKIN) 三次分频后产生的ADC_FS和LRCLK一致。 图1完整描述了ADC3101的时钟配置过程。 图1 信号处理配置信号处理配置包括增益调节以及数字处理两部分;其中增益调节包括模拟增益以及数字增益;数字处理包括各种滤波器和AGC。 增益调节 用户可以通过写寄存器 P1 r59 [Left Analog PGA Settings] P1 r60 [Right Analog PGA Settings] P0 r82 [ADC Fine Volume Control] P0 r83 [Left ADC Volume Control] P0 r84 [Right ADC Volume Control] 进行配置。 数字处理在选择信号处理方式时,用户可以选择内置的固定处理过程,也可以自定义处理过程;TLV320ADC3101的Processing Blocks包括抽取滤波器以及AGC(自动增益控制)。 表2包含了18种内置处理过程,用户可以通过寄存器P0 r61 [ADC Processing Block Selection]进行选择; 用户可以利用TI的 PurePath Studio graphical development environment自定义处理过程。 表2 AGC主要用于功率控制,用户可以通过配置AGC相关的寄存器,实现不同效果的AGC。 参考实例以下实例描述了当模拟麦克风双通道单端输入,要求音频信号为I2S格式,48K采样率,24位数据,ADC主模式工作,主时钟MCLK=12.288MHz时如何配置TLV320ADC3101。 I2C的写命令格式为 w [I2C地址] [寄存器地址] [寄存器值]; #软件复位 w 30 00 00 //选择Page 0 w 30 01 01 //软件初始化 #输入配置 w 30 00 01 //选择Page1 w 30 33 50 //设置MICBIAS为2.5V w 30 34 fc // 左通道为IN1L(P)单端输入 w 30 37 fc// 右通道为IN1R(M)单端输入 #输出配置 w 30 00 00 //选择Page 0 w 30 1b 2c // I2S,24bits,Master Mode, 3-stating of DOUT disabled #时钟配置 #根据音频信号要求以及LRCLK=ADC_FS=48KHz, 计算得BCLK=2.304MHz; 根据MCLK=12.288MHz以及数据手册中的限制条件,计算PLL的参数以及各分频器的值。 w 30 00 00 //选择Page 0 w 30 04 03 // 选择MCLK为PLL输入时钟, 选择PLL_CLK为ADC输入时钟 w 30 05 a1 // PLL_P = 2, PLL_R = 1 w 30 06 0f // PLL_J = 15 w 30 12 85 // NADC divider = 5 w 30 13 83 // MADC divider = 3 w 30 14 80 // AOSR = 128(默认设置) w 30 1d 02 // BDIV_CLKIN=ADC_CLK(默认设置) w 30 1e 88 // BCLK N divider = 8 # 信号处理配置 w 30 00 00 //选择Page 0 #增益调节 w 30 51 c2 // 使能ADC左右通道 w 30 52 00 //取消ADC左右通道静音,精调数字增益为0dB w 30 53 00 // 左通道数字增益为0dB(默认设置) w 30 54 00 // 右通道数字增益为0dB (默认设置) w 30 3b 32 // 选择左通道模拟增益为25dB w 30 3c 32 // 选择右通道模拟增益为25dB # 数字处理 w 30 3d 01 //选择ADC信号处理模块PRB_P1 (默认设置) w 30 56 00 // 关闭AGC功能(默认设置)
|