最近加入的商品

0 件商品 共计 ¥0.00

加入购物车
您的购物车中还没有任何商品。

赛普盛科技

Embedded Computer System

专注嵌入式计算机系统

AM335x 多路串口设计

首页    TI AM335x 应用开发    AM335x 应用经验分享    AM335x 多路串口设计

AM335X多路串口设计

    AM335X拥有6路的UART ,所有的UART都支持IrDACIR模式。一般情况下我们只用到UART0UART4,对于UART5它一般复用到别的定义了,所以比较少用到。在赛普盛科技的TI的核心板CM335X上,我们可以完全使用这六个串口,如下线路图所示:

C:\Users\Administrator\AppData\Roaming\Tencent\Users\7746376\QQ\WinTemp\RichOle\BKQLC1NZ{H(E8757E1NR%80.png

   

这种情况下,则可以简单的修改一下内核代码。UART4UART5功能复用情况如下:

 具体步骤
1、打开内核的文件:
$vi arch/arm/mach-omap2/board-am335xevm.c

2、添加uart4、uart5功能脚定义代码(如果没有)。
/* Module pin mux for uart3 */
static struct pinmux_config uart3_pin_mux[] = {
        {"spi0_cs1.uart3_rxd", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
        {"ecap0_in_pwm0_out.uart3_txd", OMAP_MUX_MODE1 | AM33XX_PULL_ENBL},
        {NULL, 0},
};

/* Module pin mux for uart4 */
static struct pinmux_config uart4_pin_mux[] = {
        {"uart0_ctsn.uart4_rxd", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
        {"uart0_rtsn.uart4_txd", OMAP_MUX_MODE1 | AM33XX_PULL_ENBL},
        {NULL, 0},
};

/* Module pin mux for uart5 */
static struct pinmux_config uart5_pin_mux[] = {
        {"mii1_col.uart5_rxd", OMAP_MUX_MODE3 | AM33XX_PIN_INPUT_PULLUP},
        {"rmii1_refclk.uart5_txd", OMAP_MUX_MODE3 | AM33XX_PULL_ENBL},
        {NULL, 0},

3、添加初始化串口4、5代码(如果没有),如下蓝色部分。
static void uart3_init(int evm_id, int profile)
{
        printk("--------uart3_init\n");

        /* Configure Uart3*/
        setup_pin_mux(uart3_pin_mux);
        return;
}

static void uart4_init(int evm_id, int profile)
{
        printk("--------uart4_init\n");

        /* Configure Uart4*/
        setup_pin_mux(uart4_pin_mux);
        return;
}

static void uart5_init(int evm_id, int profile)
{
        printk("--------uart5_init\n");

        /* Configure Uart4*/
        setup_pin_mux(uart5_pin_mux);
        return;
}

4、添加串口4、5的注册,如下蓝色代码,并注释掉can功能和keys按键功能,如下红色代码。
        {uart1_init,    DEV_ON_BASEBOARD, PROFILE_ALL},
        {uart2_init,    DEV_ON_BASEBOARD, PROFILE_ALL},
        {uart3_init,    DEV_ON_BASEBOARD, PROFILE_ALL},
        {uart4_init,    DEV_ON_BASEBOARD, PROFILE_ALL},
        {uart5_init,    DEV_ON_BASEBOARD, PROFILE_ALL},
//      {d_can_init,    DEV_ON_BASEBOARD, PROFILE_ALL},
//      {gpio_keys_init,  DEV_ON_BASEBOARD, PROFILE_ALL},
        {gpio_led_init,  DEV_ON_BASEBOARD, PROFILE_ALL},
        {NULL, 0, 0},

5、重新编译内核,并更新系统就可以了。

2021年8月14日 17:43
浏览量:0
收藏
    • 联系客服

    • 0755 2955 4030
    • 189 2600 3503
    • sales@superfae.cn
    • 服务时间

    • 周一至周五 9:00-18:00
    • 微信二维码