Connecting hardware audio codecs.

Started by johannesgh, April 03, 2014, 12:37:49 PM

Previous topic - Next topic

johannesgh

Hello, I'm new here so excuse me if this is the wrong part of the forum.

I'd like to connect a hi-fi audio codec (or, if it's easier, a separate ADC and DAC) to an A13, or another processor if this is too slow for this kind of work.

What I want to do is sample audio, maybe 24-bit, 96kHz, process it and get it back out into the analog world.

I have quite some experience in analog circuits and analog PCB-design, and C/C++ and Linux programming basics (I use Arch for my home computer), but I lack a more thorough understanding of how to connect peripherals to processors. I am learning about all this, and I fully understand that there are a lot of pitfalls in digital PCB design so I will be learning about that before I get to the actual layout ... for now I just want to get the schematic level part of it correct.

The Codec I have in mind is WM8581 from Wolfson, and it says on their website, it communicates with "I2S, Left, Right Justified or DSP" ... I can see from the datasheet how these data-streams look, but I want to know if there is a specific port on the A13 processor I should connect this to, or if I should just use GPIO and then write a C driver. I can read up on ALSA for the integration into the OS ... but as I say, I want to know if there is specific hardware on the processor for any of these communication methods.

Sorry for the long post. Any suggestions of better forums for this and this type of questions, and recommended reading or watching would be greatly appreciated.

nvd

As I know, there is no I2S interface in A13.
If USB is an allowed option, use PCM2707 to get an I2S stream.
PCM2707 also has analog output but Wolfson sounds better according to my limited listening experience.

I don't think that A13 is slow for this work.

Writing a GPIO based I2S driver seems interesting but I don't think that clock jitter
will be within the specs of HiFi.

diracsbracket

I bought a Cubieboard 3 aka Cubietruck as it has S/PDIF integrated in it.
Too bad you don't even reply to your personal messages...

johannesgh

Sorry, I didn't see the personal message 'cause I was only checking the forum for replies, without logging in.

I'm looking to do some fairly heavy processing though, with constant parametric EQ, crossovers, all-pass filters and RMS-limiting on maybe up to 6 channels with a latency in the sub- 5 millisecond -range, do you still think this is possible without a DSP core?
I ask because the TI OMAP L138 has been looking really good to me lately, and using the McASP port with a TI codec, and they do have a development kit for it ...

I've been watching the "Embedded Systems Course" on youtube on the stiquitojmconrad channel, which is very informative ... I'll probably have more to say when I get through the part about serial communications this weekend.

I don't know much about the S/PDIF, as I thought that was only for communication between devices and I'm  looking to eventually make a single board with all this on, as well as some analog conditioning circuits (that's the easy part).

I thought i2S was just a format for SPI ports, have I got that all wrong?

Also, just a weird idea, do you think it's possible to use the wolfson codec's PLL's to take in a pulse from the processor and generate a clock that's in sync (expanding on the GPIO idea)?

johannesgh

I don't know how you guys feel about posting urls, but here's one about using a SPI interface for i2s communications.

The A13 has an SPI but I don't know how practical this kind of a solution would be.

http://www.ti.com/lit/an/slaa449a/slaa449a.pdf