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 beep generator screeches

Other Parts Discussed in Thread: TLV320AIC3204

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