Hi
I am trying to get an 8-channel audio DAC to work. It's a TI PCM1681 (datasheet:
https://www.ti.com/lit/ds/symlink/pcm1681.pdf ). It's not the first time where I just cannot get a chip to work (at all), but the issues I had before were soldering based (I am pretty sure), and this DAC comes in a 28-TSSOP package which was not too hard to solder on the PCB.
The circuit is super simple: the chip is mounted on a PCB with a few bypass caps and a stereo audio output circuit (which for now I am not using - probing directly at the ouputs of the DAC). The PCB is then on a breadboard where I have breadboard wires connecting it to my STM32 Nucleo-F446RE board where the MCU is.
The MCU sends the digital audio data using 2 data lines + clocks (TDM format) and controls the chip over an I2C line. On the breadboard I added 2 pullup resistors (4.7k) for the I2C lines.
The errors I get are:
- The outputs are meant to be at Vcom=Vcc/2 (2.5V) when no audio is sent, but they are around 0.4V, and 0V when I sent audio (I probed the Vcom pin and it reads 0.4V which makes sense - I did it quickly because my experience is these pins do not like loads, even a very small load like my oscilloscope probes)
- Sometimes the I2C stops working (the pins start moving strangely between 0V and 3.3V like if they were floating) - but most of the time it works
What I have checked:
- The chip is genuine TI from DigiKey
- I know the datasheet inside out by now and I am pretty sure the design itself is correct
- I do not have any ESD equipment but I was super careful about it and watching a few videos on the subject where people test it I can see you need a decent amount to actually blow a chip. And the chip has basic ESD protection.
- After solering I took my multimeter in "beeping" mode to check: (1) no shorts between adjacents pins and (2) probing on top of each pin to make sure they were actually connected to the PCB
- Before even using the PCB board at all - I wrote some code for the MCU and tested both the digital audio lines and the I2C lines - they both work like they should.
- Using a logic analyzer I could see the I2C messages which all look fine. The only register value I change from the MCU is the FMT[3:0] to set the DAC in TDM mode. I checked the contents of all the registers of the DAC from the I2C, and they fits their default values (apart from 0x09 which is 0x06 - i.e. TDM mode):
ADR Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Default Value
----
0x01 AT17 AT16 AT15 AT14 AT13 AT12 AT11 AT10 0xFF
0x02 AT27 AT26 AT25 AT24 AT23 AT22 AT21 AT20 0xFF
0x03 AT37 AT36 AT35 AT34 AT33 AT32 AT31 AT30 0xFF
0x04 AT47 AT46 AT45 AT44 AT43 AT42 AT41 AT40 0xFF
0x05 AT57 AT56 AT55 AT54 AT53 AT52 AT51 AT50 0xFF
0x06 AT67 AT66 AT65 AT64 AT63 AT62 AT61 AT60 0xFF
0x07 MUT8 MUT7 MUT6 MUT5 MUT4 MUT3 MUT2 MUT1 0x00
0x08 DAC8 DAC7 DAC6 DAC5 DAC4 DAC3 DAC2 DAC1 0x00
0x09 0 0 FLT 0 FMT3 FMT2 FMT1 FMT0 0x05
0x0A SRST ZREV DREV DMF1 DMF0 0 0 DMC 0x00
0x0B REV8 REV7 REV6 REV5 REV4 REV3 REV2 REV1 0xFF
0x0C OVER 0 0 0 FLT4 FLT3 FLT2 FLT1 0x0F
0x0D DAMS AZRO1 AZRO0 0 0 0 0 0 0x00
0x0E ZERO8 ZERO7 ZERO6 ZERO5 ZERO4 ZERO3 ZERO2 ZERO1 N/A
0x10 AT77 AT76 AT75 AT74 AT73 AT72 AT71 AT70 0xFF
0x11 AT87 AT86 AT85 AT84 AT83 AT82 AT81 AT80 0xFF
0x12 0 0 0 0 0 0 MUT8 MUT7 0x00
0x13 0 0 0 0 0 0 DAC8 DAC7 0x00
AT = attenuation, default is max volume = 255 (0dB), min volume is 129 which is -63dB, below 129 is muted
MUT = soft mute (disabled by default)
DAC = enable DAC (enabled by default)
FMT = serial data format (0110 for I2S TDM 24bit, default 0101)
DMF = de-emphasis (disabled by default)
DREV/REV = phase reverse (DREV disabled by default, all REVx enabled by default)
I have a few ideas about what could be wrong:
- Somehow the chip got damaged during soldering? I was very quick with the iron and never stayed on a pin more than 1-2 seconds. As you can see on the picture there is no excess solder either. (yes I use this "spider-shaped" shape pads to help me solder - I know people told me not to do that but that was after I ordered these test boards - but if you are really convinced that is the problem I can order new PCBs without it
- The master clock line of the serial audio data is at 10Mhz - that is faster than any signal I have worked with before - maybe the signal integrity is not that good? My oscilloscope is not that great (Analog Discovery - not fast enough to see the clock edge) but the logic analyzer was able to see the digital 0's and 1's.
- Maybe it's not really possible to test this chip with this setup - i.e. I need to design a PCB with the MCU and the chip (on the same board)?
I apologise for the long post - hope it did not scare you off - but there is no point asking for help if I do not show everything I have done so far.
Thank you in advance for any help
Cheers
Simon