realHDaudio2.0-Board for freeDSP/ADAU1701

    I started developing the realHDaudio-Board for the “freeDSP CLASSIC SMD B-Board, which holds an Analog Devices ADAU1701 Sigma-DSP. Sigma-DSPs can be easily programmed without any code via drag-n-drop audio blocks connected with “virtual wires”. DSP power everybody can use for DIY projects!

freeDSP is an open source projects and as the developers published there SMD B version the board holds a 24 MHz master clock and four expansion slots to connect doughter boards for more analog or digital  I/Os or small class D amplifiers. The expansion slots provide 12V power, master clock, I2S and I2C. So nearly perfect conditions to develop realHDaudio-Board for the freeDSP.

 

The concept

The board will hold  an ADC AK5397 and a DAC AK4495 again, as it is easy to start from an existing circuit i already had from my realHDaudio-Board for the FPGA. I kicked the FPGA and some parts of the power section from my circuit. Then i created a new power section to supply everything from the 12V which comes from the freeDSP. I used some LDOs again and a DC/DC-Converter to convert the 12 V to a +/-9V-supply for the opamps.

 

The layout makes it an “alround” board

You can see some parts of the layout in the picture above this topic. I integrated a lot of jumper pins to give the possibillity to access useful pins of the ADC and DAC. So both chips can be configured parallel and the DAC can also be programmed via I2C. This opens the new board to many other platform as long as they hold 12V power, I2S and a good master clock. The integrated “expansion slave slot” makes it compatible to the freeDSP expansion master slot.

The PCB is ready and ordered.

 

Assembled Board: Testing with ADAU1467

I got no freeDSP-SMD-Version at this time, so i testet the realHDaudio-Board for the freeDSP with an ADAU1467-Evaluation-Board. Now i was able to measure the AD- and DA-SNRs separately. I made some SigmaStudio-Projects like a simple “talkthrough” or “signal generation” to measure the overall performance.

and here are the results….

After testing the overall concept i decided to build an improved Version 2.0 of the realHDaudio-Board for the freeDSP. Made improvements are:

  • Dimensions of all capacitors and resistors are changed from 0603 to 0805 to fit the freeDSP design rules.
  • Board dimensions are changed to 100 x 90 mm to fit the freeDSP design rules.
  • An error with the reset circuit was corrected.
  • Power traces for opamps are optimized for better THD.
  • A phase-lock-loop-chip was implemented to buffer the master clock signal for ADC and DAC.

 

Version 2.0 Measurements:

I soldered Version 2.0 and made some more measurements. Optimizing the opamps power traces led to a 5 dB  better THD+N (-102,6 dB). The DACs THD+N is specified with -101dB by AKM. So i think in the overall system i cannot get even better….

The SNR also wins 2,5 dB on the ADC side. I am not shure if this is only effected by the new power trace routes or by the clock buffer i used to buffer the masterclock. Maybe a combination of both.

Using the realHDaudio-Board with freeDSP SMD B

While testing the new Version 2.0 in combination with the freeDSP SMD B i found an ugly “bug” in the freeDSPs board layout which makes it impossible to connect any ADC to it at this time. To proof my concept i built up a loudspeaker controller called “LS-C2” which holds a freeDSP CLASSIC and three realHDaudio2.0-boards.

As the freeDSP CLASSIC doesn´t provide a master clock pin i had to pic it directly from the clock crystal. Everything works fine when two of three realHDaudio2.0-boards are connected. With three boards connected there are some clitches in the audio signal which my be caused by the way i grab the master clock.

Here are some measurement results of the LS-C2:

Under “stuff” you can find a paper (german) summarizing the whole project.

Update June 2019: The bug in the freeDSP SMD B layout is fixed! So it is ready for realHDaudio2.0-board now!

 

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert