J
Joerg
Guest
upsidedown@downunder.com wrote:
Initially in the hundreds/year but must have a chance to become a
high-vlumen product without major architectural changes.
Nothing wrong with that. I was simply wondering if there'd be any
simpler and more contemporary method, for example via USB. This is how
SDR is done, with huge data streams.
Yes. I know pretty much how to do it, was just wondering if there is an
alternative to a brute force FPGA approach.
Yeah, writing our own driver, that will be a major bear and this is at
least half the reason why I asked for an already existing
"off-the-shelf" method. And maybe with ADAT there is one. Although
somewhat limited as well, AFAIK even the high channel number Focusrite
Safire interface is restricted to 16 audio channels into the PC. But ...
this could be an avenue with less engineering effort than a card with a
big old FPGA on there and having to write our own driver.
--
Regards, Joerg
http://www.analogconsultants.com/
On Fri, 28 Feb 2014 16:18:41 -0800, Joerg <invalid@invalid.invalid
wrote:
No. I wanted to know how to line up umpteen audio codecs in a way that
they talk to a PC and remain 100% synchronous. Using ADCs for otyher
markets is expensive.
You did not say anything about expected production volumes (just a one
off project or thousands of units) and hence is it feasible to design
your own PCI card.
Initially in the hundreds/year but must have a chance to become a
high-vlumen product without major architectural changes.
If you have to design your own PCI card, what is wrong with the old
stereo audio ADCs such as the CS5394, apart from the board space
needed for 10+ stereo ADC chips ?
Nothing wrong with that. I was simply wondering if there'd be any
simpler and more contemporary method, for example via USB. This is how
SDR is done, with huge data streams.
It has differential inputs, a 2 Hz audio high pass (so no DC
measurement) and I˛S interface. It can operated both in master or
slave mode, put one in master mode and the rest in slave mode and tie
all the clock signals together.
Of course you will need a FPGA to convert these I˛S signals serial
signals to something usable for a computer, such as 32 bit parallel
words/sample to presented to the PCI bridge chip.
If some serial interface such as Ethernet, USB or PCIe is used, then
put the sample from every channel into the same frame (preferably 32
bits/sample to simplify CPU load), thus all samples from a particular
time would be guarantied to be available in the same frame.
Yes. I know pretty much how to do it, was just wondering if there is an
alternative to a brute force FPGA approach.
Then you will have to think how you will get the data from the PC
interface card into memory, perhaps DMA or interrupt driven. However,
if every sample will generate an interrupt, there would be 40000
interrupts each second at 40 kHz sampling rate, which is quite a lot.
Transferring 40 samples for each interrupt would give 1000
interrupts/second, which is a reasonable value.
If the data is to be processed with some soft-RT system, such as
Windows or Linux, you may still need quite a lot of software FIFO
buffering between the ISR and user mode code.
So it is not just the ADC interface you need to consider but also
other parts of the system, in order to avoid making some local
optimizing that greatly harms the rest of the system.
Yeah, writing our own driver, that will be a major bear and this is at
least half the reason why I asked for an already existing
"off-the-shelf" method. And maybe with ADAT there is one. Although
somewhat limited as well, AFAIK even the high channel number Focusrite
Safire interface is restricted to 16 audio channels into the PC. But ...
this could be an avenue with less engineering effort than a card with a
big old FPGA on there and having to write our own driver.
--
Regards, Joerg
http://www.analogconsultants.com/