https://e2e.ti.com/support/audio-group/audio/f/audio-forum/697279/tlv320aic3204-agc-maximum-gain
您好!
我使用基于 C5505/AIC3204编解码器的 SoC。 编解码器配置为192kHz 的方式如下:
_AIC3204_Rx:
;指向第0页
AC1 =#0
AR1 =#0x0
调用 i2c_WriteData8
;重置编解码器
AC1 =#1
AR1 =#0x1
调用 i2c_WriteData8
;指向第1页
AC1 =#0
AR1 =#0x1
调用 i2c_WriteData8
;禁用从 DVDD 生成粗 AVDD
AC1 =#1
AR1 =#0x08
调用 i2c_WriteData8
;启用模拟块和 LDO
AC1 =#2
AR1 =#0x01
调用 i2c_WriteData8
;*********
;* PLL 和时钟配置和上电
;*********
;指向第0页
AC1 =#0
AR1 =#0x0
调用 i2c_WriteData8
;BCLK 和 WCLK 被设置为 AIC3204 (主器件)- 16位字的运算
AC1 =#27
AR1 =#0x0D
调用 i2c_WriteData8
;PLL 设置:PLLCLK <- MCLK 和 CODEC _CLKIN <-PLL CLK
AC1 =#4
AR1 =#0x03
调用 i2c_WriteData8
;PLL 上电;PLL 分频器参数:P = 1、R = 1
AC1 =#5
AR1 =#0x91
调用 i2c_WriteData8
;PLL 设置:J=8
AC1 =#6
AR1 =#0x08
调用 i2c_WriteData8
; PLL 设置: hi_byte (D) for D=0
AC1 =#7
AR1 =#0x07
;AR1 =#0x00
调用 i2c_WriteData8
; PLL 设置: Lo_byte (D) for D=0
AC1 =#8
AR1 =#0x80
;AR1 =#0x00
调用 i2c_WriteData8
;NDAC = 2.
AC1 =#11
AR1 =#0x82
调用 i2c_WriteData8
;MDAC =8.
AC1 =#12
AR1 =#0x88
调用 i2c_WriteData8
;DOSR H (DOSR = 32)
AC1 =#13
AR1 =#0x00
调用 i2c_WriteData8
;DOSR L (DOSR = 32)
AC1 =#14
AR1 =#0x20
调用 i2c_WriteData8
;时钟设置寄存器11、BCLK N 分频器 N = 7
AC1 =#30
AR1 =#0x87
调用 i2c_WriteData8
;为 NADC 加电并将 NADC 值设置为2
AC1 =#18
AR1 =#0x82
调用 i2c_WriteData8
;加电 mAdc 并将 mAdc 值设置为4 (例如8)
AC1 =#19
AR1 =#0x88
调用 i2c_WriteData8
;AOSR = 64 (例如32)
AC1 =#20
AR1 =#0x20
调用 i2c_WriteData8
;指向第0页
AC1 =#0
AR1 =#0x0
调用 i2c_WriteData8
;DAC PRB
AC1 =#60
AR1 =#16
调用 i2c_WriteData8
;ADC PRB
AC1 =#61
AR1 =#7
调用 i2c_WriteData8
;*********
;* DAC 路由和上电
;*********
;选择第1页
AC1 =#0
AR1 =#0x01
调用 i2c_WriteData8
;左通道 DAC 重建滤波器的正极端子被路由到 HPL
AC1 =#12
AR1 =#0x08
调用 i2c_WriteData8
;选择第0页
AC1 =#0
AR1 =#0x00
调用 i2c_WriteData8
;左声道和右声道具有独立的音量控制
AC1 =#64
AR1 =#0x04
调用 i2c_WriteData8
;左 DAC 通道数字音量+24dB
AC1 =#65
;AR1 =#0x30
AR1 =#0x30
调用 i2c_WriteData8
;向左、右加电数据路径并设置通道
AC1 =#63
AR1 =#0x90
;AR1 =#0xB2
调用 i2c_WriteData8
;选择第1页
AC1 =#0
AR1 =#0x01
调用 i2c_WriteData8
;取消 HPL 静音,0dB 增益
AC1 =#16
AR1 =#0x00
调用 i2c_WriteData8
;静音 HPR
AC1 =#17
AR1 =#0x40
调用 i2c_WriteData8
;加电 HPL
AC1 =#9
AR1 =#0x20
调用 i2c_WriteData8
;DAC 过滤器
;选择第44页
AC1 =#0
AR1 =#44
调用 i2c_WriteData8
;BIQ 1 - N0
AC1 =#12
AR1 =#0x03
调用 i2c_WriteData8
AC1 =#13
AR1 =#0x1A
调用 i2c_WriteData8
AC1 =#14
AR1 =#0x85
调用 i2c_WriteData8
;BIQ 1 - N1
AC1 =#16
AR1 =#0x03
调用 i2c_WriteData8
AC1 =#17
AR1 =#0x1A
调用 i2c_WriteData8
AC1 =#18
AR1 =#0x85
调用 i2c_WriteData8
;BIQ 1 - N2
AC1 =#20
AR1 =#0x03
调用 i2c_WriteData8
AC1 =#21
AR1 =#0x1A
调用 i2c_WriteData8
AC1 =#22
AR1 =#0x85
调用 i2c_WriteData8
;BIQ 1 - D1
AC1 =#24
AR1 =#0x63
调用 i2c_WriteData8
AC1 =#25
AR1 =#0x2F
调用 i2c_WriteData8
AC1 =#26
AR1 =#0xAC
调用 i2c_WriteData8
;BIQ 1 - D2
AC1 =#28
AR1 =#0xAE
调用 i2c_WriteData8
AC1 =#29
AR1 =#0xDB
调用 i2c_WriteData8
AC1 =#30
AR1 =#0x1C
调用 i2c_WriteData8
;BIQ 2 - N0
AC1 =#32
AR1 =#0x7F
调用 i2c_WriteData8
AC1 =#33
AR1 =#0xFF
调用 i2c_WriteData8
AC1 =#34
AR1 =#0xFF
调用 i2c_WriteData8
;BIQ 2 - N1
AC1 =#36
AR1 =#0x80
调用 i2c_WriteData8
AC1 =#37
AR1 =#0x00
调用 i2c_WriteData8
AC1 =#38
AR1 =#0x01
调用 i2c_WriteData8
;BIQ 2 - N2
AC1 =#40
AR1 =#0x7F
调用 i2c_WriteData8
AC1 =#41
AR1 =#0xFF
调用 i2c_WriteData8
AC1 =#42
AR1 =#0xFF
调用 i2c_WriteData8
;BIQ 2 - D1
AC1 =#44
AR1 =#0x7F
调用 i2c_WriteData8
AC1 =#45
AR1 =#0x5D
调用 i2c_WriteData8
AC1 =#46
AR1 =#0x67
调用 i2c_WriteData8
;BIQ 2 - D2
AC1 =#48
AR1 =#0x81
调用 i2c_WriteData8
AC1 =#49
AR1 =#0x44
调用 i2c_WriteData8
AC1 =#50
AR1 =#0x61
调用 i2c_WriteData8
@BRC0_L =#0x02FF || mmap ()
;localrepeat {
;repeat (#0xFFFF)
;NOP_16
;NOP_16
;}
;*******
;* ADC 路由和上电
;*********
;选择第1页
AC1 =#0
AR1 =#0x01
调用 i2c_WriteData8
AC1 =#52
AR1 =#0xC0
通过
40千欧将 i2c_WriteData8;CM_1 (共模)调用到 LADC_M
AC1 =#54
AR1 =#0x03
调用 i2c_WriteData8
;左 MICPGA 音量控制24dB
AC1 =#59
AR1 =#0x5F
调用 i2c_WriteData8
;MIC_PGA_R 取消静音
AC1 =#60
AR1 =#0x80
调用 i2c_WriteData8
;//////////////////// AGC 配置-开始////////////////////////
;选择第0页
AC1 =#0
AR1 =#0x00
调用 i2c_WriteData8
;左通道 AGC 控制寄存器1 (启用/禁用) -目标电平/增益滞后控制
AC1 =#86
AR1 =#0x80
调用 i2c_WriteData8
;左通道 AGC 控制寄存器2滞后设置/ AGC 噪声阈值
AC1 =#87
AR1 =#0x06
调用 i2c_WriteData8
;左通道 AGC 控制寄存器3 -最大增益设置
AC1 =#88
AR1 =#88 #0x00
调用 i2c_WriteData8
;左通道 AGC 控制寄存器4 -攻击时间设置
AC1 =#89
AR1 =#0x00
调用 i2c_WriteData8
左通道 AGC 控制寄存器5 - AGC 衰减时间设置
AC1 =#90
;AR1 =#0x00调用 i2c_WriteData8左通道 AGC 控制寄存器6;噪声时间 设置
AC1 =#91
AR1 =#0x01
调用 i2c_WriteData8
;左通道 AGC 控制寄存器7 -信号去抖时间设置
AC1 =#92
AR1 =#0x01
调用 i2c_WriteData8
;左通道 AGC 控制寄存器8 - AGC 增益标志
;AC1 =#93
DataAR1 =#0x00
调用 i2c/e2c///
AGC 配置-结束//////////////////////////
;选择第0页
AC1 =#0
AR1 =#0x00
调用 i2c_WriteData8
;取消左 ADC 的静音并将右 ADC 静音
AC1 =#82
AR1 =#0x08
调用 i2c_WriteData8
;上电左侧 ADC
AC1 =#81
AR1 =#0x80
;AR1 =#0x8A
调用 i2c_WriteData8
;虚拟读取
AC1 = 9
AR1 = 0xABB
调用 i2c_ReadData8
返回
我想进一步增大我的 ADC 输入的放大、因为 AGC 会使其变得过低。
有什么想法吗?
提前感谢
Paolo