Hi,
I'm using a TAS5760L in 48 KHz 16-bit mono PBTL, but I'm getting a clock error (and no output at all), and I don't know what the reason for that may be.
I don't have a separate MCLK, so I'm using MCLK=SCLK, at 64fs, in I2S format.
I've observed the signals and they all look good. I even manually counted the relation between LCLK and SCLK, and confirmed that there are exactly 64 SCLKs for every LRCK.
I also checked the polarity of SCLK, to confirm that the LRCK and SDIN are changed on the negative transition so that they are stable on the positive transition.
I also confirmed the format manually, verifying that there is a dummy data bit right after the LRCK transitions, so I don't think I'm doing anything wrong with the format.
So, looking for other causes, I'm shutting down the amp, starting clocks, muting, taking the amp out of shutdown, un-muting, and then playing a short speech sample (from 0.9 seconds to 1.7 seconds). Could it be that the amp needs more time to accept the clocks and the speech is too short? If so: how much time does it need?
Another thing is that I'm not producing exactly 48 KHz (64fs=3.072 MHz), the actual frequency is roughly 47.5 KHz (64fs=3.040 MHz). Could this be the reason for the amp to report clock errors? If so, how close to 48 KHz will it need to be?
The datasheet provides no insight into what the actual cause of the clock error may be, so I don't know what else to look for.
Another thing: the SPK_GAIN[1:0] lines are set to 11(b) after the amp is powered up (by a microcontroller that needs some time to startup). The first shutdown of the amp also happens some time after power up (shutdown is set by the same microcontroller after the code starts to run). The datasheet is very clear about the I2C address being sampled when the amp powers up, but it is not that clear about when the SPK_GAIN[1:0] values are sampled. Could this be the source of the problem?
Below are the register values I'm reading from the amp (I'm setting them - except ID and fault registers - but then also reading them back to confirm they were correctly received by the amp):
Reg00ID = 00000000 = 0x00 (the datasheet says it should be 0x00 in some places, and 0x01 in other places)
Reg01Power = 11111101 = 0xFD
Reg02Digital = 00010100 = 0x14
Reg03Volume = 10000000 = 0x80 (starts with 0x83 for muting, and then I change it to 0x80 for playing)
Reg04VolL = 11001111 = 0xCF
Reg05VolR = 11001111 = 0xCF
Reg06Analog = 11010011 = 0xD3 (PBTL from left channel)
Reg08Errors = 00011000 = 0x18 (starts with 0x08 at first power up, and after 10 or 20 minutes of operation switches to 0x18)
Is there anything else I can do to find the cause? Or to try and figure out a solution to the problem? Any hidden "debug" register I can read, or something else I can try?
Thanks!
PS: The datasheet I used for the implementation is "SLOS782B –JULY 2013–REVISED SEPTEMBER 2015".
PS2: I have a 6 ohm loudspeaker connected to the amp (through a circuit similar to the one described in the datasheet).