PCM5102 Audio interface for the Raspberry pi, can someone help me?

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

NikolajK

Member
Joined
Aug 28, 2018
Messages
5
HI I really hope someone can help me: :D
I am very new to PCB design and I am trying to build an audio interface for the Raspberry Pi zero using the PCM5102 DAC. I have based it around this design :D https://www.dropbox.com/s/8000tk5fxzrhwar/piDAC_PCM5102A_kicad.zip?dl=0 ,
I have been comparing it with the Data sheet
http://www.ti.com/lit/ds/symlink/pcm5102a.pdf

And it seems to be identical in design.

The Pi is providing the right signal to the data and clk pins, and the power is working fine.
However I still don't seem to get any sound out. Also I have measured that I also don't get the expected -3.3v from the VNEG pin of the DAC. I propose that the issue is that the DAC is either in standby mode or powered off. The issue is that I don't understand why.  :( Please have a look at my board design.

I have two Questions:
1: Please notice that all capacitors that connects 3.3v and ground is placed next to each other rather than next to the pins where they are placed on the schematics diagram (ie. C6, C7, C8 and C14) I assume that the placement of the capacitors doesn't matter as long as they are connection the right pins. Is that a wrong assumption?

2: The Data sheet suggests having the entire backside as a ground plane. Looking at my design it is a mess of 3.3v and ground connections. Is a ground plane just  a "best practice"or can the way I am routing ground and power have an influence on the functionality?

Thank you for reading  and replying :D
 

Attachments

  • board illustration.jpg
    board illustration.jpg
    2 MB · Views: 39
1: yes it is wrong.  here is some info https://electronics.stackexchange.com/questions/74509/how-to-place-decoupling-capacitor-in-four-layer-pcb they have to be close the pin to actually decouple the noise.  where and how do you put the power supply and ground tracks is also very important.

2: high speed signals need to have a very short distance to ground. I would put ground below the chip as clear of other signal as possible. plenity of ground below fast signal tracks and the rest I guess you can use it as you want.

It is not that it will not work probably but the noise performance will not be the best.

I can´t comment why it does not work I would guess its some bad setting on the software.
 
Thank you so much :)
12afael said:
1: yes it is wrong.  here is some info https://electronics.stackexchange.com/questions/74509/how-to-place-decoupling-capacitor-in-four-layer-pcb they have to be close the pin to actually decouple the noise.  where and how do you put the power supply and ground tracks is also very important. 
It looks like I have some reading to do on decoupling caps and how to place them.
12afael said:
2: high speed signals need to have a very short distance to ground. I would put ground below the chip as clear of other signal as possible. plenity of ground below fast signal tracks and the rest I guess you can use it as you want. 
Also thanks for the advice on the ground plane, it makes sense.
Right now I would be happy with even a noisy signal though :/

Anyway thanks for the reply I will go through the software once more.
 
I don't see anything obviously wrong with the schem or board. The fact that you're not getting any negative supply means that the charge pump isn't running. And that probably means that the internal clock isn't running which means the whole thing just isn't initializing.

If I had to guess I would say that one or more pins are actually not properly soldered to the pads. I don't know if you have much experience soldering SMD but it is very very easy to fail to solder a pin. The way I do it: I use a flux pen to get flux on both the bottoms of the pins of the chip and on the pads. I just smear that crap all over. Then I put the iron on a little hot, get a tiny bit of solder on the tip and then, using a magnifier / lamp, I touch the tip to the foot of a pad and look for the solder to wick up into the joint. I do that for all pins and then I go back and scrape off excess and clean the soldering iron tip with fresh solder and wipe it off good and clean on the wet sponge in between cleaning a few pins.
 
https://www.youtube.com/watch?v=VualiZkPlw0

I really like the use of separate regulators for each of the VDD's. You might be tempted to LC filter each of them Pre-Regulator too.

AMS1117-3v3's are crazy cheap these days,

100Ohm input resistors on LRCK, BCK and MCLK (if present) always helps with reflections etc.

get yourself a small boatload of 2.2uF 0805 caps. (6.3V or higher). 2.2uF is the magic point before caps get silly expensive.

Ferrite bead on your power input, and where possible, keep your ground plane as un-interrupted as possible. Remember to keep your analog traces as short as possible, and as far as way as possible from Power Supply, Charge Pump, Clocks and Data. "Slow" or "static" digital signals are fine.

Be gentle with my baby.

/Rochey
 
squarewave said:
I don't see anything obviously wrong with the schem or board. The fact that you're not getting any negative supply means that the charge pump isn't running. And that probably means that the internal clock isn't running which means the whole thing just isn't initializing.

If I had to guess I would say that one or more pins are actually not properly soldered to the pads.

Thank you for the advice.  I have been through all of my soldering, changed my brand of solder and now it actually works. :) As mentioned I am still very new to this field and is learning a lot along the way.  :)

 
First of all, what an honor to get an answer from the IC designer himself :)
Rochey said:
https://www.youtube.com/watch?v=VualiZkPlw0

I really like the use of separate regulators for each of the VDD's. You might be tempted to LC filter each of them Pre-Regulator too.

AMS1117-3v3's are crazy cheap these days,

I watched the video already, very informative, I could see that the Ali Express board did it, but I am a little short on space , so if it is not necessary I am reluctant. I am running messuarements on the audio output at present and test what will be necessary. 

Rochey said:
100Ohm input resistors on LRCK, BCK and MCLK (if present) always helps with reflections etc.

In the video, you are hinting that these resistors are superfluous, and I see that they are not recommended in the data sheet. So I havn't added them, but I will consider it again :) 



Rochey said:
Ferrite bead on your power input, and where possible, keep your ground plane as un-interrupted as possible. Remember to keep your analog traces as short as possible, and as far as way as possible from Power Supply, Charge Pump, Clocks and Data. "Slow" or "static" digital signals are fine.
Thank you for the advice, I will definitely include these principles in my next design :)

Rochey said:
Be gentle with my baby.

Don't worry I am treating her with respect ;)
 
mhelin said:
You don't seem to be using ID eeprom, how do you config the rpi?
https://github.com/raspberrypi/hats/blob/master/designguide.md
Thank you for the resource, I will look it through. I am running a driver based on the HiFi-berry driver. I don't really need it to be plug-and-play right now, and I decided not to get in to EEPROMs right now. I am considering it for future iterations. :)
 
Back
Top