BeagleBone Audio Cape

Someone tried this cape Audio Cape??
I was reading the Wiki and it says that works with i2c interface: i was wondering if this is a quality limitation (for audio recording for example) because the i2c port on the BB can go as fast as 400kbps??
Am i thinking wrong?

Thanks!

Not sure where you got the i2c part. The description is quite clear:

The BeagleBone Audio Cape provides stereo audio input and output for the BeagleBone by using the TLV320AIC3106 codec. Audio data is sampled at up to 96 kHz during recording or playback. The codec interfaces with the Multichannel Audio Serial Port of the AM335x via audio serial bus. The BeagleBone Audio Cape also features two standard 3.5mm audio jacks as audio input and output connectors.

The cape uses i2c for the eeprom to identify itself but sound uses the audio serial bus which I believe is i2s https://en.wikipedia.org/wiki/I%C2%B2S

see section 5.3.3 of the audio cape srm https://github.com/CircuitCo/BeagleBone-Audio/blob/master/BeagleBone-Audio-RevA1-srm.pdf?raw=true

as well as http://beagleboardtoys.com/wiki/index.php?title=BeagleBone_Audio

i2c is used for configuring the codec. The actual audio is transmitted
over dedicated data and clock lines.

Joel

I have it and the audio is transmitted though McASP0 in PCM burst mode. The i2c is for codec config as already stated.

BTW the audio quality is good, much better than a lot of those cheap MP3 players. Havent studied the PCB but it has little digital noise on the analog side :slight_smile: on the schematics I just see a choke between the digital and analog ground but surely it may have different ground planes connected by the choke on a single point.

Thanks for your answer, now i understand it better.
@Juanjo: did you tried to record something?

I have made a beagle audio cape myself, You do need both i2c and i2s (says spi on beaglebone pins) to be able to work with TLV320AIC3106

Haven´t tried the capture side of it. Actually haven´t checked the input or output impedance either. My tests its based on a Senheinser and those hyped Beats Headphones and my cheap Panasonics :slight_smile:

Thanks everyone for your answers. I decided to order this board PCM1803A, according what i was reading in ALSA website it should be “easy” to read data from this ADC using the “arecord” command. But here is my doubt: do i need an especial driver for I2S so ALSA can recognize the ADC? or the current drivers in Angstrom can do the trick??
Thanks again.

Sorry for the double post the correct link to the board is https://www.sparkfun.com/products/9365

First, check if that Sparkfun module uses 3.3V levels on I2S at least. Or you´ll need a level translator like a TXB0104 or TXS0104 (if under 20Mbps I think).

The I2S on ASoC (ALSA SoC) is McASP:

snd_soc_davinci_mcasp 6941 0
snd_soc_davinci 5878 0
snd_soc_evm 2609 0
snd_soc_tlv320aic3x 32650 0

Those are the modules used on BB Audio Cape and basically the last one is the CODEC one, so you´ll need to make a driver for your CODEC (PCM1803) or maybe is already done on ALSA.

The first driver is the I2S part, I´m just starting to dig on that code to see if it actually generic to attach another CODEC to it or it needs some tweaking. As I told you at least when working with the Audio Cape the signal between McASP and the TLV320 is actually PCM not real I2S (there are some differences) with the McASP working as a master, but the McASP do support PCM mode and also slave mode but I’m not sure if the snd_soc_davinci_mcasp code has those features enabled or is just a PCM/Master implementation.

Thanks a lot for your comments, i’ll start testing when the board arrives.

Well, i can´t wait having the board to start testing, i would like to set up the beaglebone properly with the drivers/codec defined.
According to what i being reading i put these command:

# cat /sys/kernel/debug/asoc/platforms

i get:
davinci-pcm-audio
snd-soc-dummy

# cat /sys/kernel/debug/asoc/dais

tlv320aic3x-hifi


Some updates:
I finally bought de Audio Cape, I tested it in Angstron and it works really good.
But, I cant make it work under Ubuntu!
In Angstrom works right out the box…
Is there any way to access the Cape’s EEPROM???

Thanks!!

I solved the problem by using the latest Ubuntu image (Quantal 12.10)

Now Ubuntu detects correctly the audio cape.

Try this:

sudo apt-get update

sudo apt-get install alsa

then try to run “alsamixer”, it should detect it.

I have alsa installed, but alsamixer doesn’t do anything on Ubuntu (on Angstrom, it works).

ubuntu@arm:~$ sudo alsamixer
cannot open mixer: No such file or directory

Same result on both Precise and Quantal images.

Try loading these modules:

#modprobe snd_soc_davinci_mcasp

#modprobe snd_soc_davinci

#modprobe snd_soc_evm

#modprobe snd_soc_tlv320aic3x

I also suggest to update ALSA (if you haven’t).
Hope it helps.

Thanks, that helped a lot, it’s working now.

I used:
sudo nano /etc/modules

at the end, added the lines:

snd_soc_tlv320aic3x
snd_soc_davinci
snd_soc_davinci_mcasp
snd_soc_evm

and after a reboot, alsa sound now works for both record & playback for the audio cape with Ubuntu Quantal 12-10 image.

Thanks
Kevin

FYI, I’d just started workign on this same issue, i’m however using debian…

I installed alsa via apt-get, then added these modules… and i’m also all good to go.