嵌入式爱好者

复用添加串口uart5

2017-11-7 17:25| 发布者: 飞凌-chongzi| 查看: 1183| 评论: 0

类目: AM335x系列产品  >  Linux     文档编号: 147

平台:335xD

系统:Linux

通过查阅CPU手册,335平台可以最多复用出6路串口,UART0 – UART5。本次以复用UART5为例,讲解如何在335平台添加串口设备。

1、查阅Sitara AM335x ARM Cortex-A8 Microprocessors (MPUs) (Rev. F)手册,查看该手册中球特性的内容,该部分列举了CPU各球号对应的复用功能,搜索UART5,找到可复用为UART5的球号,选择合适的两个球号(我们CPU用的是zcz的封装模式),作为uart5_rxduart5_txd,如图MII1_COL在选择mode3时,功能为uart5_rxd,并对该引脚做uart5_rxd时相关的配置做了定义,比如reset state为低速(L)等等。

从实际出发,应该先考虑核心板是否把与UART5相关的球号引出,如果引出,那该引脚是否复用做其他功能,该功能可否去掉,衡量之后选择两个合适的引脚。

本次选择mii1_colrmii1_refclk两个引脚,核心板上已经引出,但在底板上没有引出,需要飞线。

2、该平台的串口驱动已经调好,所以只需要修改板级文件即可。路径为:

kernel-3.2/arch/arm/mach-omap2/board-am335xevm.c

该文件中已经有UART5pinmux配置,如下:

static struct pinmux_config uart5_pin_mux_s2[] = {

         {"mii1_col.uart5_rxd",OMAP_MUX_MODE3 | AM33XX_SLEWCTRL_SLOW | AM33XX_PIN_INPUT_PULLUP},

         {"rmii1_refclk.uart5_txd",OMAP_MUX_MODE3 | AM33XX_PULL_UP | AM33XX_PULL_DISA | AM33XX_SLEWCTRL_SLOW},

//      {"mii1_rxerr.uart5_rtsn", OMAP_MUX_MODE5 | AM33XX_PIN_OUTPUT | AM33XX_PULL_ENBL},

//      {"mii1_crs.uart5_ctsn",OMAP_MUX_MODE5 | AM33XX_PIN_INPUT_PULLUP},

         {NULL,0},

};

注释:“OMAP_MUX_MODE3 | AM33XX_SLEWCTRL_SLOW | AM33XX_PIN_INPUT_PULLUP”是对uart5_rxd引脚的控制状态寄存器(CONTROL_MODULE REGISTERS)的配置,这三个量都是宏定义,具体的含义可在mux.h文件中查到,路径同为:kernel-3.2/arch/arm/mach-omap2/,通过解读,该值为01110011

控制状态寄存器(CONTROL_MODULE REGISTERS)如何配置要参考CPU手册,AM335x ARM Cortex-A8 Microprocessors (MPUs) Technical Reference Manual (Rev. H)。该手册的第九章中的Table 9-10CPU的各引脚的控制状态寄存器进行了列举,找到mii1_col,如下图:


已解决

未解决

只是看看

最新评论

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-3-29 15:36

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部