Rev 2 PCB - 400W amp project
Here is the design I used for REV 2:
Starting with the ADC design, the design changes over to the PCM1863 from the PCM1802. I still used a separate ground plane as I was concerned that the return currents (and ground bounce from both DSP and class D amps) are going to cause noise on the sensitive analog signals. I allowed for both single ended and differential inputs. Since the ADC is going to be a master clock slave, the crystal is not used.
Lastly, here is power. So the AMPs are powered off the same 3.3V as the DSP and other "dirty stuff". So you may ask yourself if I am crazy to do so especially for a low noise design. The answer is ... no. The reason why is that if you look at the power tree diagram for the TAS5830s, the 3.3V is actually just powering the onboard DSP. The power derived for the internal DAC comes from the PVDD power supply rails (the 29V or so of power). Since a DSP is digital, I don't foresee any issues with an increase in noise as it shouldn't care about ripple). In addition, my switcher switches at around 1.5 megahertz, so ripple should be low.
PCB layout:
And oh yeah, EVMs!
Thanks to Dr. Fayed, I got to have this project funded under the SCALE program. Because of this, I was able to order 2 TAS5830EVMs and a PCM1863EVM to test out my connections and code. With that I learned a ton about these chips and software quirks I had to deal with.
I also learned about the issue of ground bounce from him and because of that (and following EVM guidelines as best as I can, I added local bulk capacitors below the board to smoothen the lower frequancy di/dt spikes caused by the switching class D amps.
TAS5830:
Issue 1: No library for the TAS5830 chips (Arduino IDE) - this was my first time actually doing I2C stuff by using the datasheet and not the Arduino library someone already wrote for these chips. Because of that, it was more tedious and difficult from before but I managed to get it to work
Issue 2: PWM synchronization headaches! I can't express how annoying it was to get this to work. I got all the code right but the amp sometimes just jumped into high Z when nothing was playing. Turns out, it always worked when I had stuff playing into the XMOS on the EVM and didn't work if no stuff was playing before hand. Why? It turns out that the TAS needs valid I2S clocks for the sync to work. My guess for this is that it uses the I2S clock as a sort of oscillator clock to keep track of some sort of period. Think of the GPIO sync pin as the sound that plays when runners can start running in a race and the I2S clocks as like the number of laps around the track. So there is no sort of oscillator for the AMP to know where it is at in time without clocks.
However, it took me a while to figure this out. But issues disappeared when I connected it to my DSP board because it outputs stable clocks, no matter with or without stuff playing. However, it still goes to high Z on reset, but I have a way around that
Issue 3: Pops and crackles caused by I2S signals. This was caused by my I2S lines being too long between the EVMs and the DSP, but was resolved with termination resistors on the DSP transmitter end and changing the slew rate for the DSP to lowest and drive strength to max.
Comments
Post a Comment