IMX8ULPIEC SAI interfase

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX8ULPIEC SAI interfase

Jump to solution
1,140 Views
Sandroom
Contributor III

Good day to all.
I have a task of programming SAI interface for i.mx 8 under m-33 core. I figured out that SAI0 and SAI1 are suitable for me, but I can't figure out from the IO Muxing pins I need. Alternative function for I2S?
For example PTA1 witch Output7 function(I2S0_RX_FS)  will work as FS for SAI0 with User Defined Protocol?

Labels (1)
Tags (4)
0 Kudos
Reply
1 Solution
1,090 Views
Manuel_Salas
NXP TechSupport
NXP TechSupport

Hello @Sandroom 

I hope you are doing very well.

Please refer to the SDK of the i.MX8ULP. You can download it from MCUXpresso SDK.

Check the SAI examples under SDK_2_16_000_EVK-MIMX8ULP/boards/evkmimx8ulp/driver_examples/sai/interrupt_transfer.

 

There is a File called pin_mux.c.

 

There are defined the mux odtions for the pads including PTA1.

void BOARD_InitPins(void) {                                /*!< Function assigned for the core: Cortex-M33[cm33] */
    IOMUXC_SetPinMux(IOMUXC_PTA0_I2S0_RX_BCLK, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA0_I2S0_RX_BCLK,
                        IOMUXC_PCR_DSE_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA1_I2S0_RX_FS, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA1_I2S0_RX_FS,
                        IOMUXC_PCR_DSE_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA10_LPUART1_TX, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA10_LPUART1_TX,
                        IOMUXC_PCR_PE_MASK |
                        IOMUXC_PCR_PS_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA11_LPUART1_RX, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA11_LPUART1_RX,
                        IOMUXC_PCR_PE_MASK |
                        IOMUXC_PCR_PS_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA2_I2S0_RXD0, 0U);
    IOMUXC_SetPinMux(IOMUXC_PTA4_I2S0_MCLK, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA4_I2S0_MCLK,
                        IOMUXC_PCR_OBE_MASK |
                        IOMUXC_PCR_DSE_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA7_I2S0_TXD0, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA7_I2S0_TXD0,
                        IOMUXC_PCR_DSE_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA8_PTA8, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA8_PTA8,
                        IOMUXC_PCR_OBE_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA9_PTA9, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA9_PTA9,
                        IOMUXC_PCR_OBE_MASK);
}

 

Best regards,

Salas.

View solution in original post

0 Kudos
Reply
2 Replies
1,085 Views
Sandroom
Contributor III

This is what I needed, thank you!

1,091 Views
Manuel_Salas
NXP TechSupport
NXP TechSupport

Hello @Sandroom 

I hope you are doing very well.

Please refer to the SDK of the i.MX8ULP. You can download it from MCUXpresso SDK.

Check the SAI examples under SDK_2_16_000_EVK-MIMX8ULP/boards/evkmimx8ulp/driver_examples/sai/interrupt_transfer.

 

There is a File called pin_mux.c.

 

There are defined the mux odtions for the pads including PTA1.

void BOARD_InitPins(void) {                                /*!< Function assigned for the core: Cortex-M33[cm33] */
    IOMUXC_SetPinMux(IOMUXC_PTA0_I2S0_RX_BCLK, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA0_I2S0_RX_BCLK,
                        IOMUXC_PCR_DSE_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA1_I2S0_RX_FS, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA1_I2S0_RX_FS,
                        IOMUXC_PCR_DSE_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA10_LPUART1_TX, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA10_LPUART1_TX,
                        IOMUXC_PCR_PE_MASK |
                        IOMUXC_PCR_PS_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA11_LPUART1_RX, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA11_LPUART1_RX,
                        IOMUXC_PCR_PE_MASK |
                        IOMUXC_PCR_PS_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA2_I2S0_RXD0, 0U);
    IOMUXC_SetPinMux(IOMUXC_PTA4_I2S0_MCLK, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA4_I2S0_MCLK,
                        IOMUXC_PCR_OBE_MASK |
                        IOMUXC_PCR_DSE_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA7_I2S0_TXD0, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA7_I2S0_TXD0,
                        IOMUXC_PCR_DSE_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA8_PTA8, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA8_PTA8,
                        IOMUXC_PCR_OBE_MASK);
    IOMUXC_SetPinMux(IOMUXC_PTA9_PTA9, 0U);
    IOMUXC_SetPinConfig(IOMUXC_PTA9_PTA9,
                        IOMUXC_PCR_OBE_MASK);
}

 

Best regards,

Salas.

0 Kudos
Reply
%3CLINGO-SUB%20id%3D%22lingo-sub-1978868%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EIMX8ULPIEC%20SAI%20interfase%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1978868%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EGood%20day%20to%20all.%3CBR%20%2F%3EI%20have%20a%20task%20of%20programming%20SAI%20interface%20for%20i.mx%208%20under%20m-33%20core.%20I%20figured%20out%20that%20SAI0%20and%20SAI1%20are%20suitable%20for%20me%2C%20but%20I%20can't%20figure%20out%20from%20the%20IO%20Muxing%20pins%20I%20need.%20Alternative%20function%20for%20I2S%3F%3CBR%20%2F%3EFor%20example%20PTA1%20witch%20Output7%20function(I2S0_RX_FS)%26nbsp%3B%26nbsp%3Bwill%20work%20as%20FS%20for%20SAI0%20with%20User%20Defined%20Protocol%3F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1978868%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MX8ULP%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1983524%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20IMX8ULPIEC%20SAI%20interfase%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1983524%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EThis%20is%20what%20I%20needed%2C%20thank%20you!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1983192%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20IMX8ULPIEC%20SAI%20interfase%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1983192%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%26nbsp%3B%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F242343%22%20target%3D%22_blank%22%3E%40Sandroom%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EI%20hope%20you%20are%20doing%20very%20well.%3C%2FP%3E%0A%3CP%3EPlease%20refer%20to%20the%20SDK%20of%20the%20i.MX8ULP.%20You%20can%20download%20it%20from%20MCUXpresso%20SDK.%3C%2FP%3E%0A%3CP%3ECheck%20the%20SAI%20examples%20under%26nbsp%3B%3CSPAN%3ESDK_2_16_000_EVK-MIMX8ULP%2Fboards%2Fevkmimx8ulp%2Fdriver_examples%2Fsai%2Finterrupt_transfer.%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3EThere%20is%20a%20File%20called%20pin_mux.c.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3EThere%20are%20defined%20the%20mux%20odtions%20for%20the%20pads%20including%20PTA1.%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%3Evoid%20BOARD_InitPins(void)%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2F*!%26lt%3B%20Function%20assigned%20for%20the%20core%3A%20Cortex-M33%5Bcm33%5D%20*%2F%0A%20%20%20%20IOMUXC_SetPinMux(IOMUXC_PTA0_I2S0_RX_BCLK%2C%200U)%3B%0A%20%20%20%20IOMUXC_SetPinConfig(IOMUXC_PTA0_I2S0_RX_BCLK%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_DSE_MASK)%3B%0A%20%20%20%20IOMUXC_SetPinMux(IOMUXC_PTA1_I2S0_RX_FS%2C%200U)%3B%0A%20%20%20%20IOMUXC_SetPinConfig(IOMUXC_PTA1_I2S0_RX_FS%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_DSE_MASK)%3B%0A%20%20%20%20IOMUXC_SetPinMux(IOMUXC_PTA10_LPUART1_TX%2C%200U)%3B%0A%20%20%20%20IOMUXC_SetPinConfig(IOMUXC_PTA10_LPUART1_TX%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_PE_MASK%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_PS_MASK)%3B%0A%20%20%20%20IOMUXC_SetPinMux(IOMUXC_PTA11_LPUART1_RX%2C%200U)%3B%0A%20%20%20%20IOMUXC_SetPinConfig(IOMUXC_PTA11_LPUART1_RX%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_PE_MASK%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_PS_MASK)%3B%0A%20%20%20%20IOMUXC_SetPinMux(IOMUXC_PTA2_I2S0_RXD0%2C%200U)%3B%0A%20%20%20%20IOMUXC_SetPinMux(IOMUXC_PTA4_I2S0_MCLK%2C%200U)%3B%0A%20%20%20%20IOMUXC_SetPinConfig(IOMUXC_PTA4_I2S0_MCLK%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_OBE_MASK%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_DSE_MASK)%3B%0A%20%20%20%20IOMUXC_SetPinMux(IOMUXC_PTA7_I2S0_TXD0%2C%200U)%3B%0A%20%20%20%20IOMUXC_SetPinConfig(IOMUXC_PTA7_I2S0_TXD0%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_DSE_MASK)%3B%0A%20%20%20%20IOMUXC_SetPinMux(IOMUXC_PTA8_PTA8%2C%200U)%3B%0A%20%20%20%20IOMUXC_SetPinConfig(IOMUXC_PTA8_PTA8%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_OBE_MASK)%3B%0A%20%20%20%20IOMUXC_SetPinMux(IOMUXC_PTA9_PTA9%2C%200U)%3B%0A%20%20%20%20IOMUXC_SetPinConfig(IOMUXC_PTA9_PTA9%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20IOMUXC_PCR_OBE_MASK)%3B%0A%7D%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CBR%20%2F%3E%0A%3CP%3EBest%20regards%2C%3C%2FP%3E%0A%3CP%3ESalas.%3C%2FP%3E%3C%2FLINGO-BODY%3E