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.

AIC33 locks up occasionally + misconfiguration via I2C



Greetings:

 

We use AIC33 connected to a Davinci DM6441 on a custom board as a music player. We have a few customers reporting that the player application stops functioning after an indeterminate amount of time (sometimes a few days, some times more than two weeks). At first, we suspected a EDMA issue or some other software issue preventing the audio data from being sent to the AIC33.

However, from analysis of a unit that was in this state, it appears that the data is being sent to the audio serial port, but the AIC33 is no longer responding. We didn't have a chance to measure the exact signal integrity on the customer board because it would have required powering off and dismantling the unit.

Doing a search on this forum reveals other customers using different TI audio codecs that have experienced the same lock up behavior.

Specifically, the problem persists across Dm644x soft reboot (ruling out DM644x?) and the problem only corrects itself after a hard power cycle of our product. Sending software resets to AIC33 and reprogramming registers also does not correct the issue although it appears that the AIC33 is ACKing the transactions properly.

 

Additionally, while trying to diagnose the problem, I discovered that sometimes the AIC33 doesn't actually switch the mixer to the desired settings.

I have used a Total Phase I2C analyzer and captured the I2C traffic from a proper setup and an improper setup (either the left,right, or mono output is not enabled as requested). In all cases, the proper data is written to the I2C bus, but when the registers are read back, they do not contain the proper values in the instances where output is missing on one of the mixer channels.

 

Our custom board is based directly off of the Davinci DM6446 DVEVM schematics with proper trace routing requirements satisfied. The AIC33 is the only I2C device on our music player side of the board and the lines are properly level shifted to match specs.

The AIC33 is configured as slave DSP-mode transfer device with clocks deriving from the DM6441. The base clock is being driven at 27 MHZ  from the Davinci aux clock out so as to maintain clock sync between the McASP and AIC33.

The I2C driver for the Davinci is running at a reduced rate of 40 KHz with 100us delays between transactions.

 

Anybody have any ideas about this issue other than the standard replies of trace capacitance and rise/fall times?

Since the issue is so intermittent, we have had few opportunities to get our test boards to exhibit the lock-up behavior while our instruments are hooked up to it.

However, the misconfiguration issue can be pretty readily reproduced.

 

Regards,

David

 

Software Design Engineer

Home Systems Divsion

Legrand, North America

 

  • Greetings:

     

    We have managed to replicate the "no audio output" issue on a board where we can verify signals.

     

    Here are the results:

    AIC33 configured as slave DSP Mode Transfer + I2C control, McASP on DM6441 is clock master

     

    DM6441:

    EDMA is OK

    McASP is OK

    I2C is OK (verified with TotalPhase Aardvark in I2C Monitor mode)

     

    AIC33:

    We use line_left_out+ (line_left_out- no connect), line_right_out+ (line_right_out- no connect), mono_output+ (mono_output- no connect).

    No inputs are used as this is a player application only.

     

    MCLK: Stable 27 MHZ from DM6441 clock out

    WCLK: Stable at 47.89 KHZ when programmed with 48 KHZ (FsRef is also set to 48KHZ)

    BCLK: Stable with ~60 ns high/low period

    DATA: Correct data is shited out verified by sending Fs/2 pattern of 0xAAAA followed Fs/2 pattern of 0x5555

     

    Audio DACs appear suspect as the gain status register always reports that not all gains have been applied;

    however, we see this even when the codec is correctly generating analog signals.

     

    Also, on my test bench board, it appears like I've lost control of the left+right DAC as it always reports fully powered up

    in register 94 (0xCO value) even after a software reset and reprogramming all registers with default values using

    the Aardvark pod.

     

    Mixer appears to be functioning correctly, as we see DC changes between disconnected and connected states.

     

    Some things I've tried:

    1. Software reset AIC33

    2. Reprogram all writable registers to the defaults listed in the spec. sheet

    3. Read back all register values

    4. Software reset  + reprogram with our audio tester (does not recover the AIC33 dead state)

     

    Since we followed the DM6446 DVEVM schematic,

    the hardware reset line is connected to the power good signal from the regulator (and also the davinci reset line) so we can't just reset the chip.

     

    We are basically now grasping at straws to try to find a way to prevent if not fix the issue without halting production and doing a re-layout of the board.

    Anybody at all have any ideas?

     

    Regards,

    David

     

  • Any news about your issue? Could I have your email to write you directly?