UART3 on i.MX 8M Mini

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

UART3 on i.MX 8M Mini

跳至解决方案
2,893 次查看
josc
Contributor II

Hi,

I try to use UART3 on i.MX 8M Mini LPDDR4 EVKB M4 core but I'm not getting any signals. I'm using the evkmimx8mm_iuart_interrupt_transfer example. I edited pin_mux.c:

IOMUXC_SetPinMux(IOMUXC_UART3_RXD_UART3_RX, 0U); 
IOMUXC_SetPinConfig(IOMUXC_UART3_RXD_UART3_RX, 
IOMUXC_SW_PAD_CTL_PAD_DSE(6U) | IOMUXC_SW_PAD_CTL_PAD_FSEL(2U)); 
IOMUXC_SetPinMux(IOMUXC_UART3_TXD_UART3_TX, 0U); IOMUXC_SetPinConfig(IOMUXC_UART3_TXD_UART3_TX, 
IOMUXC_SW_PAD_CTL_PAD_DSE(6U) | IOMUXC_SW_PAD_CTL_PAD_FSEL(2U)); 

 

I also had to edit the function BOARD_BootClockRUN() in clock_config.c:

CLOCK_SetRootMux(kCLOCK_RootUart3, kCLOCK_UartRootmuxSysPll1Div10);
CLOCK_SetRootDivider(kCLOCK_RootUart3, 1U, 1U);
CLOCK_EnableClock(kCLOCK_Uart3); 

 

And I of course changed the definitions in main.c:

#define DEMO_UART UART3 
#define DEMO_UART_CLK_FREQ \ 
CLOCK_GetPllFreq(kCLOCK_SystemPll1Ctrl) / (CLOCK_GetRootPreDivider(kCLOCK_RootUart3)) / \ (CLOCK_GetRootPostDivider(kCLOCK_RootUart3)) / 10 

 

The Boot Switches are in Download Mode and I'm uploading the code via J-Link. I also configured UART3 in RDC. Therefore should UART3 be accessible with the M4, right?

I connected Pin 8, which should be UART3 TX, from the Expansion Connector J1003 on an oscilloscope to detect signals but I can't see anything. What am I missing here?

标签 (1)
0 项奖励
回复
1 解答
2,769 次查看
josc
Contributor II

I could fix the issue by using the correct PinMux configuration. Instead of IOMUXC_UART3_RXD_UART3_RX  and IOMUXC_UART3_TXD_UART3_TX I'm using IOMUXC_ECSPI1_SCLK_UART3_RX and IOMUXC_ECSPI1_MOSI_UART3_TX now.

Thank you for your help!

在原帖中查看解决方案

5 回复数
2,859 次查看
josc
Contributor II

There's no dts when the switches are in Download mode. So UART3 should be free to use.

0 项奖励
回复
2,780 次查看
joanxie
NXP TechSupport
NXP TechSupport

do you dts has this? if yes, you need set to "disabled," pls double check it

linux-imx/arch/arm64/boot/dts/freescale/imx8mm-evk.dtsi at lf-6.6.y · nxp-imx/linux-imx · GitHub

&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_uart3>;
assigned-clocks = <&clk IMX8MM_CLK_UART3>;
assigned-clock-parents = <&clk IMX8MM_SYS_PLL1_80M>;
fsl,uart-has-rtscts;
status = "okay";
};

0 项奖励
回复
2,770 次查看
josc
Contributor II

I could fix the issue by using the correct PinMux configuration. Instead of IOMUXC_UART3_RXD_UART3_RX  and IOMUXC_UART3_TXD_UART3_TX I'm using IOMUXC_ECSPI1_SCLK_UART3_RX and IOMUXC_ECSPI1_MOSI_UART3_TX now.

Thank you for your help!

2,521 次查看
Vishal-K-V
Contributor I

This worked for me as well , But I want to ask why we have done this.

0 项奖励
回复
2,878 次查看
joanxie
NXP TechSupport
NXP TechSupport

could you confirm if your dts doesn't use uart3? if linux side uses this, you need disable this firstly, I don't know how your SW is, you can check it by yourself

0 项奖励
回复
%3CLINGO-SUB%20id%3D%22lingo-sub-1931780%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EUART3%20on%20i.MX%208M%20Mini%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1931780%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHi%2C%3C%2FP%3E%3CP%3E%E6%88%91%E5%B0%9D%E8%AF%95%E5%9C%A8%20i.MX%208M%20Mini%20LPDDR4%20EVKB%20M4%20%E6%A0%B8%E5%BF%83%E4%B8%8A%E4%BD%BF%E7%94%A8%20UART3%EF%BC%8C%E4%BD%86%E6%B2%A1%E6%9C%89%E6%94%B6%E5%88%B0%E4%BB%BB%E4%BD%95%E4%BF%A1%E5%8F%B7%E3%80%82%E6%88%91%E6%AD%A3%E5%9C%A8%E4%BD%BF%E7%94%A8%20evkmimx8mm_iuart_interrupt_transfer%20%E7%A4%BA%E4%BE%8B%E3%80%82%E6%88%91%E7%BC%96%E8%BE%91%E4%BA%86pin_mux.c%EF%BC%9A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3EIOMUXC_SetPinMux(IOMUXC_UART3_RXD_UART3_RX%2C%200U)%3B%20%0AIOMUXC_SetPinConfig(IOMUXC_UART3_RXD_UART3_RX%2C%20%0AIOMUXC_SW_PAD_CTL_PAD_DSE(6U)%20%7C%20IOMUXC_SW_PAD_CTL_PAD_FSEL(2U))%3B%20%0AIOMUXC_SetPinMux(IOMUXC_UART3_TXD_UART3_TX%2C%200U)%3B%20IOMUXC_SetPinConfig(IOMUXC_UART3_TXD_UART3_TX%2C%20%0AIOMUXC_SW_PAD_CTL_PAD_DSE(6U)%20%7C%20IOMUXC_SW_PAD_CTL_PAD_FSEL(2U))%3B%20%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%E6%88%91%E8%BF%98%E5%BF%85%E9%A1%BB%E7%BC%96%E8%BE%91clock_config.c%E4%B8%AD%E7%9A%84%E5%87%BD%E6%95%B0BOARD_BootClockRUN()%EF%BC%9A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3ECLOCK_SetRootMux(kCLOCK_RootUart3%2C%20kCLOCK_UartRootmuxSysPll1Div10)%3B%0ACLOCK_SetRootDivider(kCLOCK_RootUart3%2C%201U%2C%201U)%3B%0ACLOCK_EnableClock(kCLOCK_Uart3)%3B%20%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%E5%BD%93%E7%84%B6%EF%BC%8C%E6%88%91%E4%B9%9F%E6%94%B9%E5%8F%98%E4%BA%86%20main.c%20%E4%B8%AD%E7%9A%84%E5%AE%9A%E4%B9%89%EF%BC%9A%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-c%22%3E%3CCODE%20translate%3D%22no%22%3E%23define%20DEMO_UART%20UART3%20%0A%23define%20DEMO_UART_CLK_FREQ%20%5C%20%0ACLOCK_GetPllFreq(kCLOCK_SystemPll1Ctrl)%20%2F%20(CLOCK_GetRootPreDivider(kCLOCK_RootUart3))%20%2F%20%5C%20(CLOCK_GetRootPostDivider(kCLOCK_RootUart3))%20%2F%2010%20%3C%2FCODE%3E%3C%2FPRE%3E%3CBR%20%2F%3E%3CP%3E%E5%90%AF%E5%8A%A8%E5%BC%80%E5%85%B3%E5%A4%84%E4%BA%8E%E4%B8%8B%E8%BD%BD%E6%A8%A1%E5%BC%8F%EF%BC%8C%E6%88%91%E6%AD%A3%E5%9C%A8%E9%80%9A%E8%BF%87%20J-Link%20%E4%B8%8A%E4%BC%A0%E4%BB%A3%E7%A0%81%E3%80%82%E6%88%91%E8%BF%98%E5%9C%A8%20RDC%20%E4%B8%AD%E9%85%8D%E7%BD%AE%E4%BA%86%20UART3%E3%80%82%E5%9B%A0%E6%AD%A4%20UART3%20%E5%BA%94%E8%AF%A5%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%20M4%20%E8%AE%BF%E9%97%AE%EF%BC%8C%E5%AF%B9%E5%90%97%EF%BC%9F%3C%2FP%3E%3CP%3E%E6%88%91%E5%B0%86%E6%89%A9%E5%B1%95%E8%BF%9E%E6%8E%A5%E5%99%A8%20J1003%20%E7%9A%84%E5%BC%95%E8%84%9A%208%EF%BC%88%E5%BA%94%E8%AF%A5%E6%98%AF%20UART3%20TX%EF%BC%89%E8%BF%9E%E6%8E%A5%E5%88%B0%E7%A4%BA%E6%B3%A2%E5%99%A8%E4%B8%8A%E4%BB%A5%E6%A3%80%E6%B5%8B%E4%BF%A1%E5%8F%B7%EF%BC%8C%E4%BD%86%E6%88%91%E4%BB%80%E4%B9%88%E4%B9%9F%E7%9C%8B%E4%B8%8D%E5%88%B0%E3%80%82%E6%88%91%E5%9C%A8%E8%BF%99%E9%87%8C%E9%81%97%E6%BC%8F%E4%BA%86%E4%BB%80%E4%B9%88%EF%BC%9F%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1931780%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3Ei.MX%208M%20%7C%20i.MX%208M%20Mini%20%7C%20i.MX%208M%20Nano%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1977786%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20UART3%20on%20i.MX%208M%20Mini%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1977786%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E8%BF%99%E5%AF%B9%E6%88%91%E4%B9%9F%E6%9C%89%E7%94%A8%EF%BC%8C%E4%BD%86%E6%88%91%E6%83%B3%E9%97%AE%E6%88%91%E4%BB%AC%E4%B8%BA%E4%BB%80%E4%B9%88%E8%BF%99%E6%A0%B7%E5%81%9A%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1937072%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20UART3%20on%20i.MX%208M%20Mini%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1937072%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E6%88%91%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E4%BD%BF%E7%94%A8%E6%AD%A3%E7%A1%AE%E7%9A%84%20PinMux%20%E9%85%8D%E7%BD%AE%E6%9D%A5%E8%A7%A3%E5%86%B3%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%E3%80%82%3CSPAN%3E%3CSPAN%20class%3D%22%22%3E%E6%88%91%E7%8E%B0%E5%9C%A8%E4%BD%BF%E7%94%A8%20IOMUXC_ECSPI1_SCLK_UART3_RX%20%E5%92%8C%20IOMUXC_ECSPI1_MOSI_UART3_TX%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%20IOMUXC_UART3_RXD_UART3_RX%20%E5%92%8C%20IOMUXC_UART3_TXD_UART3_TX%E3%80%82%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3CP%3E%3CSPAN%3E%3CSPAN%20class%3D%22%22%3E%E6%84%9F%E8%B0%A2%E6%82%A8%E7%9A%84%E5%B8%AE%E5%8A%A9%EF%BC%81%3C%2FSPAN%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1936871%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20UART3%20on%20i.MX%208M%20Mini%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1936871%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E7%9A%84DTS%E6%9C%89%E8%BF%99%E4%B8%AA%E5%8A%9F%E8%83%BD%E5%90%97%EF%BC%9F%E5%A6%82%E6%9E%9C%E6%9C%89%EF%BC%8C%E4%BD%A0%E9%9C%80%E8%A6%81%E8%AE%BE%E7%BD%AE%E4%B8%BA%E2%80%9C%E7%A6%81%E7%94%A8%E2%80%9D%EF%BC%8C%E8%AF%B7%E4%BB%94%E7%BB%86%E6%A3%80%E6%9F%A5%E4%B8%80%E4%B8%8B%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnxp-imx%2Flinux-imx%2Fblob%2Flf-6.6.y%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx8mm-evk.dtsi%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Elinux-imx%2Farch%2Farm64%2Fboot%2Fdts%2Ffreescale%2Fimx8mm-evk.dtsi%20%E5%9C%A8%20lf-6.6.y%C2%B7%20nxp-imx%2Flinux-imx%20%C2%B7%20GitHub%3C%2FA%3E%3C%2FP%3E%0A%3CP%3E%26amp%3Buart3%20%7B%3CBR%20%2F%3E%20pinctrl%20%E5%90%8D%E7%A7%B0%20%3D%20%E2%80%9C%E9%BB%98%E8%AE%A4%E2%80%9D%EF%BC%9B%3CBR%20%2F%3E%20pinctrl-0%20%3D%20%26lt%3B%26amp%3Bpinctrl_uart3%26gt%3B%3B%3CBR%20%2F%3E%E5%88%86%E9%85%8D%E6%97%B6%E9%92%9F%3D%26lt%3B%26amp%3Bclk%20IMX8MM_CLK_UART3%26gt%3B%EF%BC%9B%3CBR%20%2F%3E%E5%88%86%E9%85%8D%E7%9A%84%E6%97%B6%E9%92%9F%E7%88%B6%E7%BA%A7%3D%26lt%3B%26amp%3Bclk%20IMX8MM_SYS_PLL1_80M%26gt%3B%EF%BC%9B%3CBR%20%2F%3E%20fsl%EF%BC%8Cuart%E6%9C%89rtscts%EF%BC%9B%3CBR%20%2F%3E%E7%8A%B6%E6%80%81%20%3D%20%E2%80%9C%E5%A5%BD%E7%9A%84%E2%80%9D%3B%3CBR%20%2F%3E%20%7D%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1932011%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20UART3%20on%20i.MX%208M%20Mini%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1932011%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E5%BD%93%E4%BA%A4%E6%8D%A2%E6%9C%BA%E5%A4%84%E4%BA%8E%E4%B8%8B%E8%BD%BD%E6%A8%A1%E5%BC%8F%E6%97%B6%EF%BC%8C%E6%B2%A1%E6%9C%89%20dts%E3%80%82%E5%9B%A0%E6%AD%A4%20UART3%20%E5%BA%94%E8%AF%A5%E5%8F%AF%E4%BB%A5%E8%87%AA%E7%94%B1%E4%BD%BF%E7%94%A8%E3%80%82%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1931862%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ERe%3A%20UART3%20on%20i.MX%208M%20Mini%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1931862%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E4%BD%A0%E8%83%BD%E7%A1%AE%E8%AE%A4%E4%BD%A0%E7%9A%84dts%E6%98%AF%E5%90%A6%E4%B8%8D%E4%BD%BF%E7%94%A8uart3%E5%90%97%EF%BC%9F%E5%A6%82%E6%9E%9CLinux%E7%AB%AF%E4%BD%BF%E7%94%A8%E8%BF%99%E4%B8%AA%EF%BC%8C%E4%BD%A0%E9%9C%80%E8%A6%81%E5%85%88%E7%A6%81%E7%94%A8%E5%AE%83%EF%BC%8C%E6%88%91%E4%B8%8D%E7%9F%A5%E9%81%93%E4%BD%A0%E7%9A%84SW%E6%98%AF%E6%80%8E%E4%B9%88%E6%A0%B7%E7%9A%84%EF%BC%8C%E4%BD%A0%E5%8F%AF%E4%BB%A5%E8%87%AA%E5%B7%B1%E6%A3%80%E6%9F%A5%E4%B8%80%E4%B8%8B%3C%2FP%3E%3C%2FLINGO-BODY%3E