This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TLV320AIC3106 concurrent Multiple channel capture(record)

Other Parts Discussed in Thread: TLV320AIC3106

Hi,

I am using TLV320AIC3106 as a sound card for my BeagleBone Black.It is interfaced via I2S with Beaglebone black.

The  LINE1LP , LINE1RP, LINE 2LP, LINE2RP are connected to different audio signals(single ended).I am able to

record from these lines separately using 'arecord' command in beaglebone black.For eg :- if I need to record(mono)

from LINE1LP line ,First I set the right and left PGA Mixer using amixer command as follows,

amixer sset 'Left PGA Mixer Line1L' on
amixer sset 'Left PGA Mixer Line2L' off"
amixer sset 'Left PGA Mixer Line1R' off"
amixer sset 'Right PGA Mixer Line1R' off"
amixer sset 'Right PGA Mixer Line1L' off"
amixer sset 'Right PGA Mixer Line2R' off"

after setting these i issue arecord command like 'arecord test.wav'.It records  successfully from the LINE1LP.

What should I do If i want to record Simultaneously from these four lines(mono)?How can I do this?Can you please

provide my reference to this? 

----------------------------------------------------------------------------------------------------------

my 'arecord -l' returns,

**** List of CAPTURE Hardware Devices ****
card 0: EVM [DA830 EVM], device 0: AIC3X tlv320aic3x-hifi-0 []
  Subdevices: 1/1
  Subdevice #0: subdevice #0
----------------------------------------------------------------------------------------------------------

The sound node from BB-BONE-AUDI-01-00A0.dts is given below,

fragment@4 {
                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 =
                                        "Headphone Jack",       "HPLOUT",
                                        "Headphone Jack",       "HPROUT",
                                        "LINE1L",               "Line In",
                                        "LINE1R",               "Line In",
                                        "LINE2L",               "Line In",
                                        "LINE2R",               "Line In";
                        };
                };

        };
-------------------------------------------------------------------------------------------------------------------------------------------------------

Best Regards,

Nizar






  • If you keep a mixer enabled with the amixer command, you should be able to record the mixed analog inputs.

    You can mix L1L, L2L and L1R together and read the conversion result on the left ADC channel.
    You can mix L1R, L1L and L2R together and read the conversion result on the right ADC channel.

  • Hi D. Hartl,

    Thanks for replying.

    I am able to mix L1L, L2L and L1R together and read the conversion result on the ADC channels.But  the resultant is the mixed signal of all these in a single file.we are able to hear the signals on these lines mixed up in a single file.

    The inputs to these lines (Line 1L,Line 2L,Line1R,Line2R) are basically speech signals From different PSTN Lines.So, I want to record the conversations happening on these lines into different files.

    For example:- Line 1L  connected to PSTN1 should be recorded into pstn1.wav

                              Line 2L connected to PSTN2 should be recorded to pstn2.wav

                             and so on for the other two also.

    So,when speech signals are happening on four lines at a time , I want to record each speech signals into separate files.

    Is it possible to do that ? Can you provide some reference to that ?

  • I don't think that this is possible because you would need a separate ADC for each channel.

  • Hi D. Hartl,

    Thanks for your reply.

    Can you please confirm it, that there is no way to record 4  audio signals (LINE 1L,LINE 1R,LINE 2L,LINE 2R) at a time separately either by TDM or any other way?

    Or is there any way to separate the mixed signal at the processor end?

    Best Regards,

    Nizar

  • Not with the AIC3106 because it has only 2 ADCs. You will need to use either two AIC3106s or a codec with four ADCs, like the AIC34.

  • D. Hartl said:

    Not with the AIC3106 because it has only 2 ADCs. You will need to use either two AIC3106s or a codec with four ADCs, like the AIC34.

    Hi, I am very interested by this answer because I chose the AIC3106 specificaly to record 2 stereo input in real-time.

    And that's equivalent to recording 4 single-ended LINE input right ?

    So  what you say is that it is not possible ?

    The codec has 2 stereo inputs (plus mic inputs and more) but it is only possible to record 2 line in at once ?

    Why bother with so many inputs if you can use only two at a time ?

    fyi : I'm using the raw ALSA API on the BeagleBone Black with a custom sound card (or "cape"), based on the aic3106.

    Thanks

  • >So  what you say is that it is not possible ?

    Correct, you cannot record 4 channels at the same time. It is a stereo codec, not a 4-ADC/DAC codec.

    You can record 4 channels simultaneously with the AIC34.

    >Why bother with so many inputs if you can use only two at a time ?

    So that you can hook up several audio sources without an external mux (e.g. multiple microphones, cell-phone modem, bluetooth chip). Inputs can also be mixed for a stereo signal.

  • Understood.

    Thank you for the clear answer.

    Regards.