I.MX6ULL注册UART为串口问题

项目场景:

在使用I.MX6ULL中,需要注册多个串口设备,i.mx6ull可支持UART1-UART6个串口(对应映射为/dev/ttymxc0 - 5),使用过程中仅有UART5 只能发不能收,结合imx6ul-pinfunc.h文件和芯片参考手册,发现MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 数值有误


问题描述

提示:这里描述项目中遇到的问题:

UART5 只能发不能收,原因在于

#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX                     0x00C0 0x034C 0x0644 0x0 0x5

原因分析:

提示:这里填写问题的分析:

在配置串口时,我们在设备树文件中参照uart3进行增加即可

		pinctrl_uart3: uart3grp {
			fsl,pins = <
				MX6UL_PAD_UART3_RX_DATA__UART3_DCE_RX	0x1b0b1
				MX6UL_PAD_UART3_TX_DATA__UART3_DCE_TX	0x1b0b1
			>;
		};

		pinctrl_uart5: uart5grp {
			fsl,pins = <
				MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX	0x1b0b1
				MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX	0x1b0b1
			>;
		};

&uart3 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart3>;
	status = "okay";
};

&uart5 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart5>;
	status = "okay";
};

对比芯片参考手册
I.MX6ULL注册UART为串口问题_第1张图片
头文件中默认配置MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 的是0x5,未使用UART5_RX接收功能


解决方案:

提示:这里填写该问题的具体解决方案:

在imx6ul-pinfunc.h文件中将MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 最后一个值由0x5改为0x7

#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX                     0x00C0 0x034C 0x0644 0x0 0x7

你可能感兴趣的:(Linux驱动,linux,嵌入式,单片机,arm,c语言)