imx6ull 初始化uart5后无法收到数据

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

imx6ull 初始化uart5后无法收到数据

6,922 Views
我爱下载
Contributor III

用同样的方法初始化uart2,uart3,uart4的收发功能都是正常的,但是uart5发送可以通关串口收到数据,接收却没有任何反映,uart5对应的引脚为

             uart5-tx对应F17,

             uart5-rx对应G13

可以确定外部串口工具是没有问题的,因为我测试了uart2、uart3、uart4都是收发正确的。

设备树文件关于uart5的引脚配置为:

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

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

系统启动后,/dev下可以看到出现了ttymxc4设备。
求教是什么地方设置的有问题。谢谢
Labels (1)
0 Kudos
Reply
8 Replies

5,764 Views
1282497337
Contributor II

你好,我也遇到了相同的问题,uart0,1,2,3都能正常的工作,但uart4不能进行数据收发,驱动中创建了设备节点/dev/ttymxc4,但open这个设备,发送数据的时TXD引脚一直处于低电平,请问你是怎么解决这个问题的,谢谢

0 Kudos
Reply

5,764 Views
我爱下载
Contributor III

问题一直也没研究清楚,希望有这方面的达人给出面解释一下。

0 Kudos
Reply

5,764 Views
1282497337
Contributor II

Hi ,勇

    我已经将串口5调通了,将方法分享与你

1.我在uboot阶段验证串口5硬件本身的问题,将串口5配置成调试串口,看串口是否有输出信息,我的测试是输出了一段信息,说明串口5硬件本身是没有问题的,问题锁定在对软件对串口的配置上,至于只输出一段信息是因为uboot将我的这个引脚复用成了 ESPI1功能,
我使用的板子是 imx6D7C , uboot版本是2015.04 , 内核版本是3.14.52

uboot中的修改如下:

文件 : Mx6sabresd.c (board\freescale\mx6sabresd)
static iomux_v3_cfg_t const uart5_pads[] = {
MX6_PAD_KEY_COL1__UART5_TX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
MX6_PAD_KEY_ROW1__UART5_RX_DATA | MUX_PAD_CTRL(UART_PAD_CTRL),
};

static void setup_iomux_uart(void)
{
imx_iomux_v3_setup_multiple_pads(uart1_pads, ARRAY_SIZE(uart1_pads));
imx_iomux_v3_setup_multiple_pads(uart5_pads, ARRAY_SIZE(uart1_pads));
}

文件 : Mx6sxsabresd.h (include\configs)
/* #define CONFIG_MXC_UART_BASE UART1_BASE */
#define CONFIG_MXC_UART_BASE UART5_BASE

去掉ESPI1对这个引脚的复用
文件 : Mx6sabresd.c (board\freescale\mx6sabresd)
int board_init(void)
{
.......
#ifdef CONFIG_MXC_SPI
// setup_spi(); //我是直接将其注释掉,也可以将这个宏去掉
#endif
.......
}

2.内核阶段也检查了一下对该串口是否有其他功能复用,有则全部去掉,之后我的串口5就可以正常工作了

3.另外我还发现一个问题,其他串口在kernel中的mux配置是有效的,但是对串口5的配置没有效,如将uboot中对串口5的引脚配置去掉,kernel中串口的功能依旧是不通的,这个问题还请NXP的大佬帮忙解答一下

Alee

0 Kudos
Reply

5,764 Views
wuxiuxinxiuxin
Contributor II

可以参考一下这个博客imx6ull 下 UART5问题 - CSDN博客 。

0 Kudos
Reply

5,764 Views
1282497337
Contributor II

你好,我遇到的问题是使用uart5发送时,引脚一直处于低电平,根本就没有信号出来,不知道是哪里出来问题

0 Kudos
Reply

5,764 Views
weidong_sun
NXP TechSupport
NXP TechSupport

Hello Jiyong,

    我们BSP是根据开发板来做的,在开发板上,UART5_RX_DATA & UART5_TX_DATA两个引脚用作了I2C。所以,BSP里您需要仔细地检查一下UART5_RX_DATA引脚是否被复用为I2C_DAT了。

Have a nice day!

Weidong Sun

0 Kudos
Reply

5,764 Views
我爱下载
Contributor III

谢谢您的回复,我在设备树中已经说明,并且禁用了I2C2,bsp还会初始化引脚吗?

0 Kudos
Reply

5,764 Views
我爱下载
Contributor III

是我的引脚配置的不正确马?

0 Kudos
Reply