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-CC2650: I2S HWAattribute and Object structure definition is missing from I2S.h interface?????

Part Number: LAUNCHXL-CC2650
Other Parts Discussed in Thread: CC2650

Tool/software: TI-RTOS

I have looked EVERYWHERE!!!! I cannot figure out how to configure the hardware structure and the object structure that i2s_open(index, &params) should require.

I2s_open isn't documented such that I can figure out what it does??? Am I missing something??

Thank you,

Ken

  • Hi Kenneth,

    You do not need to know the structure of the object. It's an opaque data structure that may change in the future. You just have to supply it in the "board.c" file (e.g. CC2650_LAUNCHXL.c). By you supplying it, it removes the need of the driver to allocate it. The structure is defined in the lower level implementation file (e.g. <tirtos_install_dir>\products\<tidrivers>\packages\ti\drivers\i2s\I2SCC32XXDMA.h if you are using a latest TI-RTOS or <SimpleLink_SDK_Install_dir>\source\ti\drivers\i2s\I2SCC32XXDMA.h if you are using SimpleLink SDK).

    The I2SCC32XXDMA_HWAttrs struct is there also. Both the HwAttrs and the Object are device peripheral specific. That's why they are in the lower level implementation. The goals is to only need the lower level driver header file in the "board.c/board.h" files (e.g. CC2650_LAUNCHXL.c/CC2650_LAUNCHXL.h)

    The Params structure to the open is not device specific. it is in the top-level specification (e.g. ti\drivers\i2s\I2S.h). The goal of this header file is to be portable to other devices.

    Todd
  • Thank you Todd!! Nice answer. It never occurred to me too look at the 32XXDMA for a 26XXI2S!:) sigh.....:)
  • Thank you Todd!! Nice answer. It never occurred to me too look at the 32XXDMA for a 26XXI2S!:) sigh.....:)
    I have downloaded TI-RTOS 2.21 and 2.18. I can not find a drivers/i2s directory or a file named I2SCC32XXDMA.h??
  • What device are you using? The title says CC2650.
  • Sorry...complete brain-fart on my side. There is no TI-RTOS I2S driver for in TI-RTOS for CC13xx/CC26xx. It's only in TI-RTOS for CC32xx. When you said I2S, I immediately went to the TI-RTOS for CC32xx product. Take a look at the PDM driver in the TI-RTOS for CC13xx/CC26xx product. You can look at it via the doxygen link in the documentation overview html page in the <install_dir>/doc directory.

  • Thanks Todd. I'm trying to use I2S driver in C:\ti\tirtos_cc13xx_cc26xx_2_21_00_06\products\tidrivers_cc13xx_cc26xx_2_21_00_04\packages\ti\drivers
    The PDM driver requires a Queue and doesn't seem to support a full duplex mode?
    Is there no hardware or object definition for the I2S functions in the function table??:(
    -Ken
  • No. We never implemented a TI-RTOS I2S driver for CC26xx. There are i2s.c/i2s.h files in driverlib, but these are not RTOS-aware. I can move this thread to the device forum. They can talk about driverlib more. Should I move it?
  • Todd,
    I was hoping for more functionality than than i2s.c from driverlib. Is there any thing beyond a Doxygen file than can help me get to a a full duplex PDM implementation in the garden of 0 delay??
    -Thanks Ken
  • Hi,

    If you are interested in making a full duplex solution, you can take a look at the following two examples in our github and made some changes in the I2SCC26XX.c/.h files.

    Although the examples here only demonstrate a one way half duplex solution, but we were able to verify that with the following modification in the I2SCC26XX.c/.h files, you can make a full duplex bi-directional voice solution.

    The diff file can be found here :

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/538/I2CCC26XX.patch

  • Thank you much! Looks good! I'll need to digest that for a bit:)