Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

TLV320AIC3204 AGC MAXIMUM GAIN

$
0
0

Hi,

I use a Soc based on C5505 / AIC3204 codec. Codec is configured at 192 Khz in this way:

_AIC3204_rx:
	 ; Point to page 0
        AC1 = #0
        AR1 = #0x0
        call i2c_WriteData8

        ;reset codec
        AC1 = #1
        AR1 = #0x1
        call i2c_WriteData8

	 ; Point to page 1
        AC1 = #0
        AR1 = #0x1
        call i2c_WriteData8

        ;Disable crude AVDD generation from DVDD
        AC1 = #1
        AR1 = #0x08
        call i2c_WriteData8

        ;Enable Analog Blocks and LDO
        AC1 = #2
        AR1 = #0x01
        call i2c_WriteData8

        ;***********************************************************************
        ;* PLL and Clocks config and Power Up
        ;***********************************************************************

    ; Point to page 0
        AC1 = #0
        AR1 = #0x0
        call i2c_WriteData8

        ;BCLK and WCLK is set as op to AIC3204(Master) - 16 bits word
        AC1 = #27
        AR1 = #0x0D
        call i2c_WriteData8

        ;PLL setting: PLLCLK <- MCLK and CODEC_CLKIN <-PLL CLK
        AC1 = #4
        AR1 = #0x03
        call i2c_WriteData8

        ;PLL Power up; PLL Divider params: P = 1, R = 1
        AC1 = #5
        AR1 = #0x91
        call i2c_WriteData8

        ;PLL setting: J=8
        AC1 = #6
        AR1 = #0x08
        call i2c_WriteData8

        ;PLL setting: HI_BYTE(D) for D=0
        AC1 = #7
        AR1 = #0x07
        ;AR1 = #0x00
        call i2c_WriteData8

        ;PLL setting: LO_BYTE(D) for D=0
        AC1 = #8
        AR1 = #0x80
        ;AR1 = #0x00
        call i2c_WriteData8

        ;NDAC = 2
        AC1 = #11
        AR1 = #0x82
        call i2c_WriteData8

        ;MDAC = 8
        AC1 = #12
        AR1 = #0x88
        call i2c_WriteData8

        ;DOSR H  (DOSR = 32)
        AC1 = #13
        AR1 = #0x00
        call i2c_WriteData8

        ;DOSR L  (DOSR = 32)
        AC1 = #14
        AR1 = #0x20
        call i2c_WriteData8

        ;Clock Setting Register 11, BCLK N Divider N = 7
        AC1 = #30
        AR1 = #0x87
        call i2c_WriteData8

        ;Power up NADC and set NADC value to 2
	    AC1 = #18
	    AR1 = #0x82
	    call i2c_WriteData8

	    ;Power up MADC and set MADC value to 4 (ex 8)
	    AC1 = #19
	    AR1 = #0x88
	    call i2c_WriteData8

	    ;AOSR for AOSR = 64 (ex 32)
	    AC1 = #20
	    AR1 = #0x20
	    call i2c_WriteData8


    	; Point to page 0
        AC1 = #0
        AR1 = #0x0
        call i2c_WriteData8

		; DAC PRB
		AC1 = #60
        AR1 = #16
        call i2c_WriteData8

        ; ADC PRB
		AC1 = #61
        AR1 = #7
        call i2c_WriteData8

 ;***********************************************************************
 ;* DAC ROUTING and Power Up
 ;***********************************************************************

        ;Select page 1
        AC1 = #0
        AR1 = #0x01
        call i2c_WriteData8

        ;Left Channel DAC reconstruction filter's positive terminal is routed to HPL
        AC1 = #12
        AR1 = #0x08
        call i2c_WriteData8

        ;Select page 0
        AC1 = #0
        AR1 = #0x00
        call i2c_WriteData8

        ;Left and Right Channel have independent volume control
        AC1 = #64
        AR1 = #0x04
        call i2c_WriteData8

        ;Left DAC Channel Digital Volume +24dB
        AC1 = #65
        ;AR1 = #0x30
        AR1 = #0x30
        call i2c_WriteData8

        ;Power up left,right data paths and set channel
        AC1 = #63
        AR1 = #0x90
        ;AR1 = #0xB2
        call i2c_WriteData8

        ;Select page 1
        AC1 = #0
        AR1 = #0x01
        call i2c_WriteData8

        ;Unmute HPL , 0dB gain
        AC1 = #16
        AR1 = #0x00
        call i2c_WriteData8

        ;Mute HPR
        AC1 = #17
        AR1 = #0x40
        call i2c_WriteData8

        ;Power up HPL
        AC1 = #9
        AR1 = #0x20
        call i2c_WriteData8

		;DAC FILTER

		;Select page 44
        AC1 = #0
        AR1 = #44
        call i2c_WriteData8

		;BIQ 1 - N0
		AC1 = #12
        AR1 = #0x03
        call i2c_WriteData8

		AC1 = #13
        AR1 = #0x1A
        call i2c_WriteData8

		AC1 = #14
        AR1 = #0x85
        call i2c_WriteData8

		;BIQ 1 - N1
		AC1 = #16
        AR1 = #0x03
        call i2c_WriteData8

		AC1 = #17
        AR1 = #0x1A
        call i2c_WriteData8

		AC1 = #18
        AR1 = #0x85
        call i2c_WriteData8

		;BIQ 1 - N2
		AC1 = #20
        AR1 = #0x03
        call i2c_WriteData8

		AC1 = #21
        AR1 = #0x1A
        call i2c_WriteData8

		AC1 = #22
        AR1 = #0x85
        call i2c_WriteData8


        ;BIQ 1 - D1
		AC1 = #24
        AR1 = #0x63
        call i2c_WriteData8

		AC1 = #25
        AR1 = #0x2F
        call i2c_WriteData8

		AC1 = #26
        AR1 = #0xAC
        call i2c_WriteData8

        ;BIQ 1 - D2
		AC1 = #28
        AR1 = #0xAE
        call i2c_WriteData8

		AC1 = #29
        AR1 = #0xDB
        call i2c_WriteData8

		AC1 = #30
        AR1 = #0x1C
        call i2c_WriteData8


        ;BIQ 2 - N0
		AC1 = #32
        AR1 = #0x7F
        call i2c_WriteData8

		AC1 = #33
        AR1 = #0xFF
        call i2c_WriteData8

		AC1 = #34
        AR1 = #0xFF
        call i2c_WriteData8

        ;BIQ 2 - N1
		AC1 = #36
        AR1 = #0x80
        call i2c_WriteData8

		AC1 = #37
        AR1 = #0x00
        call i2c_WriteData8

		AC1 = #38
        AR1 = #0x01
        call i2c_WriteData8

        ;BIQ 2 - N2
		AC1 = #40
        AR1 = #0x7F
        call i2c_WriteData8

		AC1 = #41
        AR1 = #0xFF
        call i2c_WriteData8

		AC1 = #42
        AR1 = #0xFF
        call i2c_WriteData8


        ;BIQ 2 - D1
		AC1 = #44
        AR1 = #0x7F
        call i2c_WriteData8

		AC1 = #45
        AR1 = #0x5D
        call i2c_WriteData8

		AC1 = #46
        AR1 = #0x67
        call i2c_WriteData8

        ;BIQ 2 - D2
		AC1 = #48
        AR1 = #0x81
        call i2c_WriteData8

		AC1 = #49
        AR1 = #0x44
        call i2c_WriteData8

		AC1 = #50
        AR1 = #0x61
        call i2c_WriteData8

		@BRC0_L = #0x02FF || mmap()
		;localrepeat {
		;	repeat(#0xFFFF)
		;	NOP_16
		;	NOP_16
		;}


;***********************************************************************
;* ADC ROUTING and Power Up
;***********************************************************************


		;Select page 1
	    AC1 = #0
	    AR1 = #0x01
	    call i2c_WriteData8

		AC1 = #52
	    AR1 = #0xC0
	    call i2c_WriteData8

		;CM_1 (common mode) to LADC_M through 40 kohm
	    AC1 = #54
	    AR1 = #0x03
	    call i2c_WriteData8

		;Left MICPGA Volume Control 24dB
	    AC1 = #59
	    AR1 = #0x5F
	    call i2c_WriteData8

		;MIC_PGA_R unmute
	    AC1 = #60
	    AR1 = #0x80
	    call i2c_WriteData8

;//////////// AGC CONFIGURATION - START ////////////
        ;Select page 0
        AC1 = #0
        AR1 = #0x00
        call i2c_WriteData8

		;Left Channel AGC Control register 1 (Enable / Disable) - Target Level / Gain Hysteresys Control
		AC1 = #86
		AR1 = #0x80
		call i2c_WriteData8

		;Left Channel AGC Control register 2 Hysteresis setting / AGC noise threshod
		AC1 = #87
		AR1 = #0x06
		call i2c_WriteData8

		;Left Channel AGC Control register 3 - Maximum gain setting
		AC1 = #88
		AR1 = #0x00
		call i2c_WriteData8

		;Left Channel AGC Control register 4 - Attack Time setting
		AC1 = #89
		AR1 = #0x00
		call i2c_WriteData8

		;Left Channel AGC Control register 5 - AGC Decay Time setting
		AC1 = #90
		AR1 = #0x00
		call i2c_WriteData8

		;Left Channel AGC Control register 6 - Noise debounce time setting
		AC1 = #91
		AR1 = #0x01
		call i2c_WriteData8

		;Left Channel AGC Control register 7 - Signal debouce time setting
		AC1 = #92
		AR1 = #0x01
		call i2c_WriteData8

		;Left Channel AGC Control register 8 - AGC GAIN FLAG
		;AC1 = #93
		;AR1 = #0x00
		;call i2c_WriteData8

;//////////// AGC CONFIGURATION - END   ////////////

        ;Select page 0
        AC1 = #0
        AR1 = #0x00
        call i2c_WriteData8

        ;Unmute Left ADC and mute Right ADC
        AC1 = #82
        AR1 = #0x08
        call i2c_WriteData8

        ;Powerup Left ADC
        AC1 = #81
        AR1 = #0x80
        ;AR1 = #0x8A
        call i2c_WriteData8

        ;Dummy read
        AC1 = 9
        AR1 = 0xABAB
        call i2c_ReadData8



        return

I'd like to increase furthermore the amplification of my ADC input, because AGC makes it too low.

Any idea?

Thanks in advance

Paolo


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>