This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TLV320AIC3204 AGC 最大增益

Guru**** 2416110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、Paolo、

    如果启用了 AGC、则输入信号的增益将由 PGA 调节、直到信号电平达到 AGC 设定的目标电平。 根据您的设置、AGC 设置为最高值、因此您应该期望输出具有适当增益的信号。 我从您的设置中注意到 、AGC 应用的最大 PGA 增益设置为0dB、这实际上表示当 AGC 需要工作时、应用的 ADC 信号没有增益。 请将此值增加至20dB 左右、以验证 ADC 信号是否增加。 然后、您可以根据系统级要求对其进行修改。

    此致、

     Diego Melendez López í a
      音频应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Diego。

    我的最佳值是在没有 AGC 的情况下将 ADC 音量增加4dB (寄存器第0页寄存器83 = 0x08)。

    因此、我将其增加到9.5dB (0x13)、并将 AGC 目标电平配置为-5.5dB、因为9.5dB - 5.5dB = 4dB。

    结果是我没有输出到扬声器。 出什么问题了? (这是我的 ADC/AGC 配置代码):

    ;*********
    ;* ADC 路由和上电
    ;*********
    
    
    
    ;选择第1页
    AC1 =#0
    AR1 =#0x01
    调用 i2c_WriteData8
    
    AC1 =#52
    AR1 =#0xC0
    通过
    
    40千欧将 i2c_WriteData8;CM_1 (共模)调用到 LADC_M
    AC1 =#54
    AR1 =#0xC0
    调用 i2c_WriteData8
    
    ;左 MICPGA 音量控制24dB
    AC1 =#59
    AR1 =#0x5F
    ;AR1 =#0x80
    调用 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 =#0x02
    调用 i2c_WriteData8
    
    ;左通道 AGC 控制寄存器3 -最大增益设置
    AC1 =#88
    AR1 =#88 #0x7F
    调用 i2c_WriteData8
    
    ;左通道 AGC 控制寄存器4 -攻击时间设置
    AC1 =#89
    AR1 =#0x00
    调用 i2c_WriteData8
    
    ;左通道 AGC 控制寄存器5 - AGC 衰减时间设置
    AC1 =#90
    AR1 =#0x00
    调用 i2c_WriteData8
    
    左通道 AGC 控制寄存器6 -去抖时间设置 AC1 =#90 AR1 =#0x00调用 i2c_WriteData8 设置
    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
    
    ;音量控制?
    AC1 =#83
    AR1 =#0x13
    ;AR1 =#0x80
    调用 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
    
    
    
    

    提前感谢

    Paolo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有人提供任何提示吗?
    非常感谢!

    Paolo
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Paolo、

    启用 AGC 后、ADC 音量增益的任何变化都不会影响信号振幅、因为 AGC 控制 PGA 和数字音量。

    我将尝试找到时间在我的末尾复制您的寄存器配置、并查看您的设置是否存在问题。

    此致、

     Diego Melendez López í a
      音频应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Diego、

    非常感谢您的宝贵支持。

    Paolo

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Diego、

    我解决了问题:目标级别设置不正确

    非常感谢

    此致、

    Paolo