IMX8ULPIEC SAI interfase

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

IMX8ULPIEC SAI interfase

跳至解决方案
1,766 次查看
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,716 次查看
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,711 次查看
Sandroom
Contributor III

This is what I needed, thank you!

1,717 次查看
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 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-1978868%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EIMX8ULPIEC%20SAI%E6%8E%A5%E5%8F%A3%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1978868%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E7%A5%9D%E5%A4%A7%E5%AE%B6%E6%9C%89%E4%B8%AA%E7%BE%8E%E5%A5%BD%E7%9A%84%E4%B8%80%E5%A4%A9%E3%80%82%3CBR%20%2F%3E%E6%88%91%E6%9C%89%E4%B8%80%E4%B8%AA%E4%BB%BB%E5%8A%A1%EF%BC%8C%E4%B8%BA%20m-33%20%E6%A0%B8%E5%BF%83%E4%B8%8B%E7%9A%84%20i.mx%208%20%E7%BC%96%E5%86%99%20SAI%20%E6%8E%A5%E5%8F%A3%E3%80%82%E6%88%91%E5%8F%91%E7%8E%B0%20SAI0%20%E5%92%8C%20SAI1%20%E9%80%82%E5%90%88%E6%88%91%EF%BC%8C%E4%BD%86%E6%88%91%E6%97%A0%E6%B3%95%E4%BB%8E%E6%88%91%E9%9C%80%E8%A6%81%E7%9A%84%20IO%20Muxing%20%E5%BC%95%E8%84%9A%E4%B8%AD%E6%89%BE%E5%87%BA%E7%AD%94%E6%A1%88%E3%80%82I2S%20%E7%9A%84%E6%9B%BF%E4%BB%A3%E5%8A%9F%E8%83%BD%EF%BC%9F%3CBR%20%2F%3E%E4%BE%8B%E5%A6%82%EF%BC%8CPTA1%20%E8%BE%93%E5%87%BA%207%20%E5%8A%9F%E8%83%BD%EF%BC%88I2S0_RX_FS%EF%BC%89%E5%B0%86%E4%BD%9C%E4%B8%BA%E5%85%B7%E6%9C%89%E7%94%A8%E6%88%B7%E5%AE%9A%E4%B9%89%E5%8D%8F%E8%AE%AE%E7%9A%84%20SAI0%20%E7%9A%84%20FS%20%E5%B7%A5%E4%BD%9C%EF%BC%9F%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%3E%E5%9B%9E%E5%A4%8D%EF%BC%9AIMX8ULPIEC%20SAI%E6%8E%A5%E5%8F%A3%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1983524%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E8%BF%99%E6%AD%A3%E6%98%AF%E6%88%91%E9%9C%80%E8%A6%81%E7%9A%84%EF%BC%8C%E8%B0%A2%E8%B0%A2%EF%BC%81%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1983192%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E5%9B%9E%E5%A4%8D%EF%BC%9AIMX8ULPIEC%20SAI%E6%8E%A5%E5%8F%A3%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1983192%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E5%A5%BD%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%3C%2FP%3E%0A%3CP%3E%E6%88%91%E5%B8%8C%E6%9C%9B%E4%BD%A0%E4%B8%80%E5%88%87%E9%83%BD%E5%A5%BD%E3%80%82%3C%2FP%3E%0A%3CP%3E%E8%AF%B7%E5%8F%82%E8%80%83i.MX8ULP%E7%9A%84SDK%E3%80%82%E6%82%A8%E5%8F%AF%E4%BB%A5%E4%BB%8E%20MCUXpresso%20SDK%20%E4%B8%8B%E8%BD%BD%E5%AE%83%E3%80%82%3C%2FP%3E%0A%3CP%3E%E6%A3%80%E6%9F%A5%3CSPAN%3ESDK_2_16_000_EVK-MIMX8ULP%2Fboards%2Fevkmimx8ulp%2Fdriver_examples%2Fsai%2Finterrupt_transfer%20%E4%B8%8B%E7%9A%84%20SAI%20%E7%A4%BA%E4%BE%8B%E3%80%82%3CBR%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3E%E6%9C%89%E4%B8%80%E4%B8%AA%E5%90%8D%E4%B8%BA%20pin_mux.c%20%E7%9A%84%E6%96%87%E4%BB%B6%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSPAN%3E%E5%AE%9A%E4%B9%89%E4%BA%86%E5%8C%85%E6%8B%AC%20PTA1%20%E5%9C%A8%E5%86%85%E7%9A%84%E7%84%8A%E7%9B%98%E7%9A%84%E5%A4%9A%E8%B7%AF%E5%A4%8D%E7%94%A8%E9%80%89%E9%A1%B9%E3%80%82%3C%2FSPAN%3E%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-markup%22%3E%3CCODE%20translate%3D%22no%22%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%3E%E9%A1%BA%E7%A5%9D%E5%95%86%E7%A5%BA%EF%BC%81%3C%2FP%3E%0A%3CP%3ESalas.%3C%2FP%3E%3C%2FLINGO-BODY%3E