Hello everybody -
I'm having problems with the beep generator of the TLV320AIC3204. I'm generating 2 beeps every 5 seconds. This works fine for some time (eg. 50 seconds) but suddenly a beep screeches heavy. After that some time with no problems and again a screeching beep.
Here is my initializing routine:
//Softwrae reset
{00, 0x00}, //Page 0
{01, 0x01}, //Reset
//Delay 10ms
//PLL
{0, 0x00}, //Page 0
{4, 0x03}, //PLL In/Out
{6, 0x05}, //PLL Mult = 5.376
{7, 0x0E}, //PLL Mult = 5.376
{8, 0xB0}, //PLL Mult = 5.376
{5, 0x91}, //PLL ON, PDiv = 1, RDiv = 1
//DAC Divider
{11, 0x82}, //DAC NDivider = 2
{12, 0x87}, //DAC MDivider = 7
{13, 0x00}, //DOSR = 128
{14, 0x80}, //DOSR = 128
//ADC Divider
{18, 0x87}, //ADC NDivider = 7
{19, 0x82}, //ADC MDivider = 2
{20, 0x80}, //AOSR = 128
//I2S Interface
{27, 0x0c}, //I2S format
{29, 0x01}, //Loop back control
{30, 0x82}, //NDevider BCLK
//DAC Processing Block
{60, 0x19}, //PB25 (Beep generator)
{0, 0x2c}, //Page 44
{1, 0x04}, //Enable adaptive filtering
//Power supplies
{0, 0x01}, //Page 1
{2, 0x09}, //Diasble Master Power Control Power Up AVDD LDO
{1, 0x08}, //Disable weak AVDD in presence of external
{2, 0x01}, //Master Power Control Power Up AVDD LDO
{10, 0x3b}, //CM voltage 1.65V
{61, 0x00}, //ADC PTM R4
{71, 0x32}, //Set the input power-up time to 6.4ms (for ADC)
{123, 0x01}, //Set the REF charging time to 40ms
//DAC setup
{20, 0x25}, //De-pop
{12, 0x08}, //Route LDAC to HPL
{13, 0x08}, //Route RDAC to HPR
{14, 0x00}, //Route LDAC to LOL
{15, 0x00}, //Route RDAC to LOR
{9, 0x30}, //Power up HPL/HPR
{3, 0x00}, //DAC PTM_3/4
{4, 0x00}, //DAC PTM_3/4
{16, 0x08}, //Unmute HPL 2dB
{17, 0x08}, //Unmute HPR 2dB
{18, 0x40}, //Unmute LOL
{19, 0x40}, //Unmute LOR
{52, 0x80}, //IN1L to PGA_LP 20K
{54, 0x80}, //CM1L to PGA_LN 20K
{55, 0x80}, //IN1R to PGA_RP 20K
{57, 0x80}, //CM1R to PGA_RN 20K
{58, 0x3C}, //Weak CM to unused Inputs
{00, 0x00}, //Page 0
{65, 0x81}, //DACL volume 0dB
{66, 0x81}, //DACR volume 0dB
//ADC setup
{0, 0x01}, //Page 1
{59, 0x80}, //PGAR 0dB
{60, 0x80}, //PGAL 0dB
{00, 0x00}, //Page 0
{81, 0xC0}, //Power up ADC
{82, 0x00}, //ADC unmute 0dB
{83, 0x00}, //Left ADC vol 0dB
{84, 0x00}, //Right ADC vol 0dB
//Delay 2s
//Power Up DAC
{0, 0x00}, //Page 0
{63, 0xd4}, //Power Up DAC
{64, 0x00}, //Unmute DAC volume
{68, 0x0F}, //DRC OFF
{69, 0x00}, //DRC hold time
{70, 0xB6}, //DRC attack/decay rate
//Beep generator
{73, 0x00}, //Time
{74, 0x12}, //Time
{75, 0xC0}, //Time
{76, 0x12}, //sin
{77, 0x2d}, //sin
{78, 0x7e}, //cos
{79, 0xb4}, //cos
{72, 0x80}, //BG_Volume R = L
{71, 0x94}, //BG_Volume L 0dB, BG On
And the beep generator call:
ACODEC_BG_ON() \
ACODEC_WRITE(0,0x00); \
ACODEC_WRITE(71,0x94);
Any idea?
Best regards -
Oliver