IMX8ULPIEC SAI interfase

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

IMX8ULPIEC SAI interfase

跳至解决方案
1,150 次查看
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?

标签 (1)
标记 (4)
0 项奖励
回复
1 解答
1,100 次查看
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 项奖励
回复
2 回复数
1,095 次查看
Sandroom
Contributor III

This is what I needed, thank you!

1,101 次查看
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 项奖励
回复