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