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.

PCMD3140EVM-PDK: Collect audio data for each individual microphone

Part Number: PCMD3140EVM-PDK
Other Parts Discussed in Thread: TLV320ADC3120, PCMD3140, TLV320ADC3140

Hello, 

Currently I am testing 4 PDM microphones using the PCMD3140EVM-PDK. 

Using the USB interface, I can only collect single audio file with data from all 4 microphones combined. 

Instead, I would like to collect audio data for each individual mics separately from the same instant of time (data needs to be synced), and thus would need to be able to separate the audio data. 

First of all, is this something that is feasible with the EVAL board, and if so please advise on the best method to do so. 

The EVAL user guide (Section 7.3) mentions that the AC-MB can be controlled with  MATLAB audio tool box, but by utilizing this is it possible to obtain audio data from individual mic? 

Also, is there a way to access the codec (XMOS chip) directly and modify the code? 

Sincerely, 

Tsugumi 

  • Hi Tsugumi,

    The board is capable of outputting multiple channels over USB; how you isolate the channels depends on the receiver. I recommend using Goldwave as your audio recorder. It should automatically isolate the multiple channels rather than condensing them as one file.

    The MATLAB method is just a more complicated way of doing what I mentioned above. No the XMOS chip is not accessible for changes. 

    Best regards,

    Jeff

  • Hello Jeff, 

    I was able to use Goldwave to obtain audio files for individual microphones. 

    However, I can only obtain audio for 2 channel out of 4 microphones I have. 

    I posted this issue before as well and I was told it was the receiver side of error (E2E), but now having the ability to look at  audio data from individual mic, I think there is something else that is causing this. 

    As posted before, I can see the I2S SDOUT data lines correctly for 4 microphones. If I disable one of the mic, I can see the SDOUT for the corresponding section going low while the other keeps transmitting data, and this works for all combination. However the data I get from the USB shows that there is only data from 2 microphones. From experiment, it seems like whatever microphone that is configured in Left Slot 1 and Right Slot 1 will not work. For 2 microphones to work, I also need to set the mics in Left Slot -0 and Right Slot -0, it will never work with Left Slot - 0 and Left Slot - 1. Thus I am thinking there is an issue on the codec side but is there a way to check it? 

    Again, this is the config file I am using on 2867.4_MIC_CONFIG.zip . I have 4 PDM microphones and am using the PPC3 for TLV320ADC3120. 

  • Hi Tsugumi,

    The fact that you see all 4 channels on DOUT and that they respond appropriately when disabled means it's highly unlikely that this is a codec problem. USB is capable of sending up to 8 channels, but you need to make sure your configuration on the receiver side is set up to listen to 8 channels. You might need to explore the device sound properties of the codec in the Windows device manager.

    Best regards,

    Jeff

  • Hello Jeff, 

    If my understanding is correct, the I2S to USB conversion is done on the XMOS chip on the EVAL correct? 

    So even if the PCMD3140 is converting PDM to I2S properly, can there be an issue on the XMOS side? 

    I will look into the device manager setting, but at the same time can you test 4 PDM mic setup and see if you can extract audio for individual channels? 

    Sincerely, 

    Tsugumi  

  • Hi Tsugumi,

    We don't currently have PCDM3140 in the lab. We ordered some more a few days ago. I highly doubt that this is an XMOS issue, or anything related to the EVM. I've monitored individual channels before using USB connections. But if we can't fix the issue before they arrive, I'll test it to see if I can find what's wrong. 

    For now you need to ensure that the driver/device properties are set to the correct number of channels. As a curiosity, are you recording stereo or mono in Goldwave? If you record stereo do all 4 mics appear?

    Best regards,

    Jeff

  • i was recording it with stereo and 2 channel show up out of 4. 

    I also tried it with 4 (3.1) but again I only saw 2 channel. 

    For the driver / device properties, what and where should I modify? I am on Windows 10 right now. 

    Sincerely, 

    Tsugumi 

  • If you navigate to Device Manager, click the TI device and open properties, you should navigate to a tab that looks similar to the one below:

    The picture only shows 2 channels, but on the TI device you should see up to 8 channels available.

    In Goldwave, make sure that Goldwave sees at least the 4 channels you want. Here it's recognizing my mic array has 48k sampling, 4 channels, with 32 bit length. When I press record you can see on the left that it has isolated each channel.

  • Hello Jeff, 

    When I plug in the eval, the setting is as following for the device side. 

    This does match on what shows up on the goldwave as well , except for the data bit. 

    When I record the audio using this setup, I can still only capture 2 channels out of the 4. 

    Sincerely, 

    Tsugumi 

  • Hello Jeff, 

    Any update on the above? Were you able to test it with the EVAL board? 

    Sincerely, 

    Tsugumi 

  • Hello Jeff,  

    Pinging on this again, 

    Sincerely, 

    Tsugumi 

  • Hello Murata-san,

    Jeff has been out of office the past week. Sorry for the delay. He will be back tomorrow and can align with you on expectations for the testing.

    Brian

  • Hi Tsugumi,

    Apologies for not communicating that I was out of office. I received the PCMD3140 boards and will be able to test it soon. 

    Thank you,

    Jeff

  • Our team is also having this problem. Let me know once there is an update.

  • Hi Daniel,

    Good to know this isn't isolated. I'll have an answer by Monday if not today.

    Best regards,

    Jeff

  • Hi Tsugumi and Daniel,

    I was able to get all 4 channels isolated when recording through Goldwave:

    I've attached a configuration file of my settings. Let me know if it works for you. If it doesn't fix the problem, it's almost certainly an issue with the host device, not the part itself. Have you tried on any other PCs? The soundcard on a particular PC may not support multitrack recording. 

    PCMD3140_4CH.cfg

    Best regards,

    Jeff

  • Hello Jeff, 

    Thank you for the config, I will try it today and will let you know. 

    For quick confirmation, is this with 4 PDM microphones? 

    Sincerely, 

    Tsugumi 

  • Additionally, is there a way to load the .cfg file into the EVAL from the GUI? if not can you provide the .ppc3 file? 

    Sincerely 

    Tsugumi 

  • Hi Tsugumi,

    Good question. There may have been some confusion; this device can only support 2 Microphones which give 2 channels each = 4 channels of data. 4 Microphone units would give 8 channels which this device can't support. The TLV320ADC3140 can support 4 digital microphone inputs/8 channels of data.

    Best regards,

    Jeff

  • Hello Jeff, 

    If I am understanding your correctly, you were able to get 4 channel output with two PDM mics? Can you send me the ppc3 file and not the cfg file so I can load it on my EVAL? 

    Additional I don't quite get why 4 PDM mic does not work. I have two GPI lines (GPI1 and GPI2) which are both connected to two mics each which has different channel / word select pin. This means I am able to get audio data from 4 mics correct? 

  • Hi Tsugumi,

    I misunderstood your setup. Your 4 microphones should work like you described. Here is the PPC3 file:

    PCMD3140.ppc3

  • Hello Jeff, 

    Thank you for the file. 

    This config file did work, and I was able to capture audio data for 4 PDM mics using Goldwave. 

    However the file you sent me is using TDM protocol and I would like to use I2S. Once I change this to I2S I can only capture data for two mics. 

    All I did was to change the protocol to I2S, change the word length to 16 bit , and reassigned the slot for the channel. 

    Here is the config file for your reference. 

    Let me know if you were able to get 4 PDM mic working using I2S. 

    PCMD3140_I2S.zip

  • Hi Tsugumi,

    The format appears to the issue. I tried 16bit I2S myself and see the same problem. 

    When set to I2S mode the XMOS is only expecting 2 channels of data to send over USB. It sets the clock ratios to match this. This is why the pairs of microphones are being superimposed into one channel. If you want all four channels you'll need to use TDM mode with a 32 bit width to match the XMOS expectation.

    Apologies for the inconvenience ,

    Jeff

  • Hello Jeff, 

    Thank you for the confirmation. So this is a format issue on the host processor side (XMOS) and with proper format on the host we can extract all 4 channels individually correct ?

    Is there any way to modify the XMOS code to get it running with 4ch over I2S? 

    Sincerely, 

    Tsugumi 

  • Hi Tsugumi,

    We don't support changing things on the XMOS, but yes the format is the limiting factor here. Is there some kind of system requirement that is preventing you from using TDM?

    Best,

    Jeff

  • Hello Jeff, 

    Sounds good, and as I do not have  specific requirements,  I will use TDM for the EVAL. 

    Thank you for the support!

    Sincerely, 

    Tsugumi