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.

RTOS/LAUNCHXL-CC1352R1: Use I2S PDM mic on CC1352R lp

Part Number: LAUNCHXL-CC1352R1
Other Parts Discussed in Thread: CC1350, CC1352R

Tool/software: TI-RTOS

Hi,

I have bought an external PDM mic SPH0641LU4H-1 breakout and I connect that with the CC1352R lp through pin headers, I want to know that have you changed anything regarding to I2S in CC1352 compared to CC1350?

I used CC13x2 SDK and ported the PDMStream sample project to a CC1352 project, made necessary modifications to CC1352 device files(mainly defined which pins to be used as I2S interface), it seems that the i2S successfully opened, but I couldn't get the PDM data reading done(program couldn't go to callback). I also changed heapsize to 4096 to make sure there's enough room for PCM data.

Plz advise me thank you in advance.  

  • So these are all I read after starting debugging, it seems nothing went wrong, but just nothing showed up afterwards

  • I don't see there's a difference in the I2S peripheral itself. However there's obviously going to be variation across the device family and that is likely something you have to account for.

    Another thing I noticed is that the pdmstream example is actually part of an old CC13x0 SDK and it's for our sensor tag product which is different from our Launchpads.

    Jason, please give me some time to see if I can find someone who can point you in the right direction. What you are trying to do hasn't been done with the CC1352.
  • Why I tried to port pdmstream to CC1352 based on the following reasons:

    1. CC13x2 SDK has PDM driver files, although these files seem to be exactly the same as those in CC13x0 SDK.

    2. I have asked you a similar question before, one of your employees suggested me it's OK to try PDM example on CC1352, she said:

    I think that should be OK. You should use the SDK for the CC1352 and then just port the application layer.

     

    If there's a major difference between CC1352 and CC1350 when it comes to i2S PDM, and the user needs to make a major modification to the existing sample projects or drivers, I would rather try another TI DSP product such as C5000, the essential reason for letting me use CC1352 is its large RAM space for more audio data. 

  • I observed DATA and CLK signals on pin headers using an oscilloscope, as shown below:

    The green signal is CLK signal while the yellow one is DATA signal, I don't know if this is normal?

  • Ok, these are clk and data signals I observed from an oscilloscope, they look exactly correct, I think it's OK to port the old pdmstream sample project and to use the CC13x2 SDK pdm driver files, the reason caused my failure may be related to memory config on CC1352, such as heap.

  • As far as I understand CC13x0 and CC13x2 uses the same I2S hardware module meaning that it should be no difference between the families on using I2S.
  • Hi, during debugging, I found that the program couldn't jump to hardware interrupt ISR function, which may caused the failure of reading data from external mic, may I ask some details about how I2S PDM driver works with hardware interrupt?
  • Hey Jason,

    The PDM driver uses the I2S hardware’s DMA interrupt to receive frames, from there it will queue them up.
    The HWI fxn is PDMCC26XX_I2S_hwiFxn().