It seems I2S is limited to 2 channels on the bus. Can mcasp be used
to handle a greater number of audio inputs and outputs than a single
I2S channel. What I'd like to do is have a mic in, headphone/line
out, bluetooth in/out, and an aux in/out (probably tied to a cellular
module) and maybe even an aux2 in/out tied to some other audio
source/sink. ideally 16 channels of audio half in each direction all
under control and routing of ALSA. Is this possible and if so how
might it be acomplished on the beagle bone?
Eric
Talking purely from the hardware perspective, mcasp supports TDM format
and each serializer of the mcasp can be independently configured for input
or
output. So what you are looking for looks possible in theory.
There are certain restrictions that you would need to consider when
considering
the beaglebone as the base. There are two mcasp instances and each has 4
serializers. Are all of these available? If not, would multiple TDM slots
work for
you? Are the other restrictions outlined in the McASP section of the TRM
acceptable?
On the software side, the last time i looked the linux driver didn't
support everything
so you would possibly have to make some modifications in the driver too. You
can always work with bare-metal code (Starterware) to prototype things if
you find
that simpler to get started with.
What looks to be really useful is a McASP to I2S chip that sat on the
McASP bus and acted as a mux/demux between the 2. anyone know of such
a chip that would move bits between McASP TDM slots and I2S busses?
from that a generic McASP driver ought to be able to handle
interfacing the respective TDM slots with ALSA.
Eric
It seems I2S is limited to 2 channels on the bus. Can mcasp be used
to handle a greater number of audio inputs and outputs than a single
I2S channel. What I'd like to do is have a mic in, headphone/line
out, bluetooth in/out, and an aux in/out (probably tied to a cellular
module) and maybe even an aux2 in/out tied to some other audio
source/sink. ideally 16 channels of audio half in each direction all
under control and routing of ALSA. Is this possible and if so how
might it be acomplished on the beagle bone?
If you know the sequence, I think you can break the channels out with
EDMA.
Look at the C6000 EDMA training material to see how this is done.
Regards,
John