Hi, i'm trying to acquire signals from AIC3204 and processing them with C5515 in C5515 eZdsp SoC.
I have this issue.
it seems my input generated with a function generator, loops back into the codec DAC output.
This is my codec configuration (192Khz mono)
;****************************************************************************************
; Configure AIC3204
;****************************************************************************************
; 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
;AIC is master running off of 12 MHz crystal
;BCLK and WCLK is set as op to AIC3204(Master)
AC1 = #27
AR1 = #0x0D
call i2c_WriteData8
;PLL setting: PLLCLK <- MCLK and CODEC_CLKIN <-PLL CLK
AC1 = #4
AR1 = #0x03
call i2c_WriteData8
;Aggiunto
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=0x0780 (or 1920 decimal)
AC1 = #7
AR1 = #0x07
call i2c_WriteData8
;PLL setting: LO_BYTE(D) for D=0x0780
AC1 = #8
AR1 = #0x80
call i2c_WriteData8
;Aggiunto
AC1 = #11
AR1 = #0x82
call i2c_WriteData8
;Aggiunto
AC1 = #12
AR1 = #0x84
call i2c_WriteData8
;Aggiunto
AC1 = #13
AR1 = #0x0
call i2c_WriteData8
;Aggiunto
AC1 = #14
AR1 = #64
call i2c_WriteData8
;
AC1 = #30
AR1 = #0x87
call i2c_WriteData8
;AOSR for AOSR = 128 decimal or 0x0080 for decimation filters 1 to 6
AC1 = #20
;AR1 = #0x80
AR1 = #64
call i2c_WriteData8
;Power up NADC and set NADC value to 8
AC1 = #18
AR1 = #0x82
call i2c_WriteData8
;Power up MADC and set MADC value to 2
AC1 = #19
AR1 = #0x84
call i2c_WriteData8
;***********************************************************************
;* DAC ROUTING and Power Up
;***********************************************************************
;Select page 1
AC1 = #0
AR1 = #0x01
call i2c_WriteData8
;LDAC AFIR routed to HPL
AC1 = #0xC
AR1 = #0x0A
call i2c_WriteData8
;RDAC AFIR routed to HPR
AC1 = #0xD
;AR1 = 0x08
AR1 = #0x00
call i2c_WriteData8
;Select page 0
AC1 = #0
AR1 = #0x00
call i2c_WriteData8
;Left vol=right vol
AC1 = #64
AR1 = #0x06
call i2c_WriteData8
;Left DAC gain to 0dB VOL; Right tracks Left
AC1 = #65
AR1 = #0x00
call i2c_WriteData8
;Power up left,right data paths and set channel
AC1 = #63
;AR1 = #0x92
AR1 = #0xB2
call i2c_WriteData8
;Select page 1
AC1 = #0
AR1 = #0x01
call i2c_WriteData8
;Unmute HPL , 0dB gain
AC1 = #0x10
AR1 = #0x00
call i2c_WriteData8
;Mute HPR , 0dB gain
AC1 = #0x11
AR1 = #0x7A ;#0x40
call i2c_WriteData8
;Power up HPL
AC1 = #9
;AR1 = 0x28 -- prec
AR1 = #0x22 ; MAL Power Up
call i2c_WriteData8
;Select page 0
AC1 = #0
AR1 = #0x00
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
.if 0 ;STEREO 2 Jacks are not connected properly on board A15
;IN3_L to LADC_P through 40 kohm
AC1 = #0x34
AR1 = #0x0C
call i2c_WriteData8
;IN3_R to RADC_P through 40 kohmm
AC1 = #0x37
AR1 = #0x00;#0x0C
call i2c_WriteData8
.else ;STEREO 1 Jack
;IN2_L to LADC_P through 40 kohm
AC1 = #0x34
AR1 = #0x30
call i2c_WriteData8
;IN2_R to RADC_P through 40 kohmm
;AC1 = #0x37
;AR1 = #0x30
;call i2c_WriteData8
.endif
;CM_1 (common mode) to LADC_M through 40 kohm
AC1 = #0x36
AR1 = #0x03
call i2c_WriteData8
;CM_1 (common mode) to RADC_M through 40 kohm
;AC1 = #0x39
;AR1 = #0xC0
;call i2c_WriteData8
;MIC_PGA_L unmute
AC1 = #0x3B
AR1 = #0x5D
call i2c_WriteData8
;MIC_PGA_R unmute
AC1 = #0x3C
AR1 = #0x80
call i2c_WriteData8
;Select page 0
AC1 = #0
AR1 = #0x00
call i2c_WriteData8
;Powerup Left ADC
AC1 = #0x51
AR1 = #0x80
;AR1 = #0x8A
call i2c_WriteData8
;Unmute Left ADC and mute Right ADC
AC1 = #0x52
;AR1 = 0x00 -- prec
AR1 = #0x08
call i2c_WriteData8
;Dummy read
AC1 = 9
AR1 = 0xABAB
; call i2c_ReadData8
.endif
Any idea?
I there a reason why my signal is looped back?
Thanks in advance
Paolo