Hello guys,
I am new with linux and the beaglebone. I have a project that will use the same processor of the beaglebone black, so I`ve decided to use this board to build a prototype. The kernel from my beaglebone black is 3.8.13-bone47 and I am using a BlueGiga board to send I2S (using 3 wires) audio to the beaglebone. My goal is to make the beaglebone receive I2S (maybe using arecord - alsa), compress the audio using opus enconder and send it to a web browser. At this moment, I am able to receive a audio from a web radio in wav format (I need to change that to audio receive from BlueGiga), encode the audio to opus format and send to a web browser (I create a server that runs inside the beaglebone). However, I am having a lot of difficulties to turn the beaglebone able to receive I2S. I am trying to use the device tree overlay but without success. I disable the HDMI in the Uenv.txt and I am able to achieve the new overlay (I check the slots and the pins modes). However, I can`t use arecord because alsa do not recognize the audio coming from the bluegiga using wires. My dts file is:
/dts-v1/;
/plugin/;
/ {
compatible = "ti,beaglebone", "ti,beaglebone-black";
part-number = "BBB-AUDIO-01";
version = "00A0", "A0";
exclusive-use =
"P9.27", /* mcasp0_fsr */
"P9.30", /* mcasp0_axr0 */
"P8.35", /* mcasp0_aclkr */
"mcasp0";
/* the offsets come from the bone.js file from adafruit */
fragment@0 {
target = <&am33xx_pinmux>;
__overlay__ {
tdm_pins: tdm_pins {
pinctrl-single,pins = <
0x1a4 0x20 /* P9.27 INPUT/MODE 0*/
0x198 0x20 /* P9.30 */
0x0d0 0x23 /* P8.35 */
>;
};
};
};
fragment@1 {
target = <&mcasp0>;
__overlay__ {
compatible = "ti,omap2-mcasp-audio";
pinctrl-names = "default";
pinctrl-0 = <&tdm_pins>;
status = "okay";
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <2>;
num-serializer = <16>;
serial-dir = < /* 0: inactive, 1:TX, 2:RX */
2 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
>;
tx-num-evt = <1>;
rv-num-evt = <1>;
};
};
fragment@2 {
target = <&ocp>;
__overlay__ {
sound {
compatible = "ti,da830-evm-audio";
ti,model = "DA830 EVM";
ti,audio-codec = <&tlv320aic3x>;
ti,mcasp-controller = <&mcasp0>;
ti,codec-clock-rate = <12000000>;
ti,audio-routing =
"LINE1L", "Line In",
"LINE1R", "Line In";
};
};
};
};
Thank guys for the help.
ps: I can see the I2S with a scope after the BLUEGIGA.