MCUXpresso SDK Documentation

flexio_i2s_interrupt_transfer

flexio_i2s_interrupt_transfer#

Overview#

The flexio_i2s_interrupt example shows how to use flexio_i2s driver with interrupt:

In this example, flexio acts as I2S module to record data from codec line and playbacks the recorded data at the same time using interrupt.

Supported Boards#

EVKB-IMXRT1050
Hardware requirements
  • Mini/micro USB cable

  • EVKB-IMXRT1050 board

  • Headphone(OMTP standard)

  • Personal Computer

Board settings
  • J12, headphone connected

  • remove R98,R99,R100,R101 and connect FLEXIO pins to the pad close to U13 as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    SW5-1              RX_DATA     U13-16
TX_DATA    SW5-2              TX_DATA     U13-14
SYNC       SW5-3              SYNC        U13-13
BCLK       SW5-4              BCLK        U13-12
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~
MIMXRT1060-EVKB
Hardware requirements
  • Mini/micro USB cable

  • MIMXRT1060-EVKB board

  • Headphone(OMTP standard)

  • Personal Computer

Board settings
  • J34, headphone connected

  • connect FLEXIO pins to the pad close to J23 as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    SW2-1              RX_DATA     J23-11
TX_DATA    SW2-2              TX_DATA     J23-17
SYNC       SW2-3              SYNC        J23-16
BCLK       SW2-4              BCLK        J23-23
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~

Note:
This example's right/left channel data is swapped due to the buffer maintain issue. This issue will be fixed in later release.
MIMXRT1170-EVKB
Hardware requirements
  • Mini/micro USB cable

  • MIMXRT1170-EVKB board

  • Headphone(OMTP standard)

  • Personal Computer

Board settings
  • J101, headphone connected

  • connect FLEXIO pins to the pad as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    J26-2              RX_DATA     J99-2
TX_DATA    J26-4              TX_DATA     J100-2
SYNC       J26-6              SYNC        J97-2
BCLK       J26-8              BCLK        J98-2
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~
MIMXRT1060-EVKC
Hardware requirements
  • Mini/micro USB cable

  • MIMXRT1060-EVKC board

  • Headphone(OMTP standard)

  • Personal Computer

Board settings
  • J101, headphone connected

  • connect FLEXIO pins to the pad close to J23 as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    SW2-1              RX_DATA     J99-2
TX_DATA    SW2-2              TX_DATA     J100-2
SYNC       SW2-3              SYNC        J97-2
BCLK       SW2-4              BCLK        J98-2
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~

Note:
This example's right/left channel data is swapped due to the buffer maintain issue. This issue will be fixed in later release.
FRDM-IMXRT1152
Hardware requirements
  • Type-C USB cable

  • FRDM-IMXRT1152 board

  • Headphone(OMTP standard)

  • Personal Computer

Board settings
  • Remove R183, R131, R151, R177, R124.

  • J30, headphone connected

  • connect FLEXIO pins to the pad as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    J44-1              RX_DATA     J28-1
TX_DATA    J44-3              TX_DATA     J27-1
SYNC       J44-5              SYNC        J20-1
BCLK       J44-7              BCLK        J21-1
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~
EVK-MIMXRT1010
Hardware requirements
  • Mini/micro USB cable

  • EVK-MIMXRT1010 board

  • Headphone(OMTP standard)

  • Personal Computer

Board settings
  • J11, headphone connected

  • remove R85,R87,R88,R280 and connect FLEXIO pins to the pad close to U10 as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    J54-2              RX_DATA     U10-16
TX_DATA    J26-8              TX_DATA     U10-14
SYNC       J26-6              SYNC        U10-13
BCLK       J26-4              BCLK        U10-12
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~

Note:
To debug in qspiflash, following steps are needed:
1. Select the flash target and compile.
2. Set the SW8: 1 off 2 off 3 on 4 off, then power on the board and connect USB cable to J41.
3. Start debugging in IDE.
   - Keil: Click "Download (F8)" to program the image to qspiflash first then clicking "Start/Stop Debug Session (Ctrl+F5)" to start debugging.
EVK-MIMXRT1015
Hardware requirements
  • Mini/micro USB cable

  • EVK-MIMXRT1015 board

  • Headphone

  • Personal Computer

Board settings
  • J11, headphone connected

Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~

Known issue:
If pressing SW9 to rerun the demo frequently, it may cause booting from QSPI nor flash failed, since the SA1 RXD0 pin is muxed as boot configurations pin.
Workaround: To use SW3 instead of SW9.

Note:
To debug in qspiflash, following steps are needed:
1. Select the flash target and compile.
3. Set the SW8: 1 off 2 off 3 on 4 off, then power on the board and connect USB cable to J41.
4. Start debugging in IDE.
   - Keil: Click "Download (F8)" to program the image to qspiflash first then clicking "Start/Stop Debug Session (Ctrl+F5)" to start debugging.
EVK-MIMXRT1020
Hardware requirements
  • Mini/micro USB cable

  • EVK-MIMXRT1020 board

  • Headphone

  • Personal Computer

Board settings
  • J11, headphone connected

  • remove R85,R87,R88,R89 and connect FLEXIO pins to the pad close to U10 as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    J18-4              RX_DATA     U10-16
TX_DATA    J18-3              TX_DATA     U10-14
SYNC       J18-2              SYNC        U10-13
BCLK       J18-1              BCLK        U10-12
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO I2S EDMA example started!

FLEXIO I2S EDMA example finished!
~~~~~~~~~~~~~~~~~~~~~

Note:
To debug in qspiflash, following steps are needed:
1. Select the flash target and compile.
2. Set the SW8: 1 off 2 off 3 on 4 off, then power on the board and connect USB cable to J23.
3. Start debugging in IDE.
   - Keil: Click "Download (F8)" to program the image to qspiflash first then clicking "Start/Stop Debug Session (Ctrl+F5)" to start debugging.
MIMXRT1024-EVK
Hardware requirements
  • Mini/micro USB cable

  • MIMXRT1024-EVK board

  • Headphone

  • Personal Computer

Board settings
  • J11, headphone connected

  • remove R85,R87,R88,R89 and connect FLEXIO pins to the pad close to U10 as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    J18-8              RX_DATA     U10-16
TX_DATA    J18-6              TX_DATA     U10-14
SYNC       J18-4              SYNC        U10-13
BCLK       J18-2              BCLK        U10-12
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO I2S EDMA example started!

FLEXIO I2S EDMA example finished!
~~~~~~~~~~~~~~~~~~~~~

Note:
To debug in qspiflash, following steps are needed:
1. Select the flash target and compile.
2. Set the SW8: 1 off 2 off 3 on 4 off, then power on the board and connect USB cable to J23.
3. Start debugging in IDE.
   - Keil: Click "Download (F8)" to program the image to qspiflash first then clicking "Start/Stop Debug Session (Ctrl+F5)" to start debugging.
MIMXRT1040-EVK
Hardware requirements
  • Mini/micro USB cable

  • MIMXRT1040-EVK board

  • Headphone(OMTP standard)

  • Personal Computer

Board settings
  • J34, headphone connected

  • Uninstall jumper J35,J36,J37,J41 and connect FLEXIO pins to the pad close to U25 as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    SW2-1              RX_DATA     U25-16
TX_DATA    SW2-2              TX_DATA     U25-14
SYNC       SW2-3              SYNC        U25-13
BCLK       SW2-4              BCLK        U25-12
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~

Note:
This example's right/left channel data is swapped due to the buffer maintain issue. This issue will be fixed in later release.
EVK-MIMXRT1064
Hardware requirements
  • Mini/micro USB cable

  • EVK-MIMXRT1064 board

  • Headphone(OMTP standard)

  • Personal Computer

Board settings
  • J12, headphone connected

  • remove R98,R99,R100,R101 and connect FLEXIO pins to the pad close to U13 as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    SW5-1              RX_DATA     U13-16
TX_DATA    SW5-2              TX_DATA     U13-14
SYNC       SW5-3              SYNC        U13-13
BCLK       SW5-4              BCLK        U13-12
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~
MIMXRT1160-EVK
Hardware requirements
  • Mini/micro USB cable

  • MIMXRT1160-EVK board

  • Headphone(OMTP standard)

  • Personal Computer

Board settings
  • J33, headphone connected

  • connect FLEXIO pins to the pad as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    J26-2              RX_DATA     J61-2
TX_DATA    J26-4              TX_DATA     J62-2
SYNC       J26-6              SYNC        J59-2
BCLK       J26-8              BCLK        J60-2
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P1) as input source. The headphone mic provides left channel data, and main mic (P1) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~
MIMXRT1180-EVK
Hardware requirements
  • Mini/micro USB cable

  • MIMXRT1180-EVK board

  • Headphone(OMTP standard)

  • Personal Computer

Board settings
  • J101, headphone connected

  • connect FLEXIO pins to the pad as follows:

Pin Name   Board Location     Pin Name    Board Location
RX_DATA    J41-2              RX_DATA     J99-2
TX_DATA    J41-4              TX_DATA     J100-2
SYNC       J41-6              SYNC        J97-2
BCLK       J41-8              BCLK        J98-2
Prepare the Demo
  1. Connect a USB cable between the host PC and the OpenSDA USB port on the target board.

  2. Open a serial terminal with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  3. Download the program to the target board.

  4. Either press the reset button on your board or launch the debugger in your IDE to begin running the example.

Running the demo

Note: This demo uses both headphone mic and board main mic(P2) as input source. The headphone mic provides left channel data, and main mic (P2) provides right channel data. If users found there is noise while do record operation, most probably it is the headphone standard issue (OMTP and CTIA standard difference). You should use the OMTP standard headphone. You can disable the left channel by using an headphone without microphone feature.


When the demo runs successfully, the log would be seen on the OpenSDA terminal like as below.

~~~~~~~~~~~~~~~~~~~~~
FLEXIO_I2S interrupt example started!

FLEXIO_I2S interrupt example finished!
~~~~~~~~~~~~~~~~~~~~~