TI中文支持网
TI专业的中文技术问题搜集分享网站

UART0_DCD做GPIO口的问题

你好:

        在自己做的电路板上使用了UART0_DCD管脚做GPIO对外设控制,它是管脚复用的,如下

板卡使用了串口0作为调试口,写了一个驱动对这个gpio管脚配置,但加载驱动会发生如下情况

1)、显示Last login,为重新登录

2)、当前路径也发生变化了,变成了登录缺省root路径

编写了一个测试程序,测试程序对该管脚操作也会出现这种情况,程序会自动退出,显示新登录tty0

其它管脚控制正常(包括UART0_DSR、UART0_RIN)不会发生这样的事情。

UART0_DCD应该是Modem模式下的载波检测管脚,用来检测是否有设备连接,检测到设备连接自动登录等等。。。我想是不是这个起了作用。内核中也没有找到对这个管脚的配置,不知怎样屏蔽。。。

下面为对该管脚的大致操作:

//IO map for control register
regInData = ioremap(0x4804C000+0x138, 8);
regOutData = ioremap(0x4804C000+0x13C, 8);
regOutEn = ioremap(0x4804C000+0x134, 8);
regSetOut = ioremap(0x4804C000+0x194, 8);
regClearOut = ioremap(0x4804C000+0x190, 8);
regPin = ioremap(0x48140000+0xAC8, 8);

//pinmux as GPIO[1][18]
value = (*regPin & 0xFFFFFFF8) | 3;
*regPin = value;

//set out value
value = *regPin | 0x40000;
*regPin = value;

//as output
value = *regOutEn & 0xFFFBFFFF;
*regOutEn = value;

//clear pin
*regClearOut = 0x40000;

其它管脚都好使,就UART0_DCD不行。请多帮助!!

Louis:

你好,

  查看了一下手册,UART0_DCD信号只从N5这个pin脚出来,既然使用了UART0作为调试口,应该保证UART0的功能所有Pin脚均配置为串口模式,而从你的描述来看,应该是UART与GPIO产生了冲突。

Louis:

回复 Louis:

如果使用其他串口未调试口,如UART2,从而禁用UART0,并去掉初始化部分,再测试一下?

Wesley:

回复 Louis:

evm和dvr设计做使用此口做gpio,如下:

  请帮忙多看看,现在卡在这里了。

Wesley:

回复 Louis:

evm和dvr使用了此口  uart2没有引出来,uart1没有加电平转换芯片,我也找个232芯片飞上看看,请你多分析下。

Louis:

回复 Wesley:

在DVR的设计当中,我们没有使用UART0作为调试串口,而是使用的UART2,同时在board_init中初始化UART2。

/* UART2 registers */#ifdef CONFIG_TI816X#define DEFAULT_UART_BASE UART2_BASE#endif

Wesley:

回复 Louis:

嗯,谢谢。我会想办法使用Uart2来测试。

另:我想能够使tty0的shell重新登录可能是在内核中发生,中断或者轮询了该管脚的状态,如果找到这个地方进行修改能屏蔽此问题。

赞(0)
未经允许不得转载:TI中文支持网 » UART0_DCD做GPIO口的问题
分享到: 更多 (0)