TIwilliam hill官网
直播中

李维嘉

7年用户 1372经验值
私信 关注

AM335x uart5复用问题,请问为什么我的UART5始终无法使能起来?

本帖最后由 一只耳朵怪 于 2018-6-21 11:07 编辑

板载RS485通讯接口,定义如下:
    LCD_D9: UART5_RXD
    LCD_D8: UART5_TXD
    LCD_D22: GPIO0_23 控制口

/*初始化函数 setup uart5 */
static void uart5_init(int evm_id, int profile)
[
setup_pin_mux(uart5_pin_mux);
return;
]
/* 初始化pin_mux  Module pin mux for uart5 */
static struct pinmux_config uart5_pin_mux[] = [
["lcd_data9.uart5_rxd", OMAP_MUX_MODE4 | AM33XX_SLEWCTRL_SLOW | AM33XX_PIN_INPUT_PULLUP],
["lcd_data8.uart5_txd", OMAP_MUX_MODE4 | AM33XX_PULL_UP | AM33XX_PULL_DISA | AM33XX_SLEWCTRL_SLOW],
[NULL, 0],
];

/* 初始化使能口,setup uart5 control port */
static void uart5_ctl_init(int evm_id, int profile)
[
setup_pin_mux(uart5_ctl_pin_mux);
return;
]
/* 初始化使能口的pin_mux为GPIO,  Module pin mux for uart5 control port */
static struct pinmux_config uart5_ctl_pin_mux[] = [
["gpmc_ad14.gpio0_23", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT_PULLUP],
[NULL, 0],
];

我为使能口专门写了一个驱动,叫rs485ctl, 专门来驱动使能口,通过ioctl函数, 而且该驱动已经在其他口上验证。
我的问题是:
     为什么我的UART5始终无法使能起来?  请高升帮忙啊,已经查了一个礼拜了。

回帖(12)

罗兰君

2018-6-21 03:31:34
有试过其他串口么?只有UART5是不能正常工作的?
举报

李维嘉

2018-6-21 03:37:45
引用: 344868615qq 发表于 2018-6-21 03:31
有试过其他串口么?只有UART5是不能正常工作的?

TTYO0 TTYO1  作为232串口,正常
TTYO2   作为485串口,正常
TTYO4(UART4),TTYO5(UART5)  作为485串口, 没法使能,不能工作。
举报

罗兰君

2018-6-21 03:47:45
引用: zhouxk 发表于 2018-6-21 03:37
TTYO0 TTYO1  作为232串口,正常
TTYO2   作为485串口,正常
TTYO4(UART4),TTYO5(UART5)  作为485串口, 没法使能,不能工作。

内核这部分,如果没改动的话,应该是把6个串口的驱动都初始化了,你可以看下kernel启动的打印信息。
看了下你的代码,你能确定UART4和UART5的pinmux都已经初始化了么,如果串口不工作,和pinmux初始化不正确也有关系
举报

李维嘉

2018-6-21 04:01:07
引用: 344868615qq 发表于 2018-6-21 03:47
内核这部分,如果没改动的话,应该是把6个串口的驱动都初始化了,你可以看下kernel启动的打印信息。
看了下你的代码,你能确定UART4和UART5的pinmux都已经初始化了么,如果串口不工作,和pinmux初始化不正确也有关系

我已经做了初始化,如下代码:
/*初始化232串口, 用uart1*/
#if BOARD_VER_SUPPORT_COM
[uart1_com_wxj_init,DEV_ON_BASEBOARD, PROFILE_NONE],
#endif

/*初始化485串口,用uart2,4,5*/
#if BOARD_VER_SUPPORT_RS485 
[uart2_init, DEV_ON_BASEBOARD, PROFILE_NONE],    //RS485功能成功
[uart4_init, DEV_ON_BASEBOARD, PROFILE_NONE],    //RS485功能没成功
[uart4_ctl_init, DEV_ON_BASEBOARD, PROFILE_NONE],
[uart5_init, DEV_ON_BASEBOARD, PROFILE_NONE],    //RS485功能没成功
[uart5_ctl_init, DEV_ON_BASEBOARD, PROFILE_NONE],

#endif
举报

更多回帖

发帖
×
20
完善资料,
赚取积分