对AM572x进行引脚复用使能UART1

2019-07-13 08:42发布

前提:因为需要把BeagleBoard-x15这个开发板当做OpenPLC的Server端,与IO板之间是进行UART通信,所以我这里使用的是UART1(ttyS0)这个串口,但是该引脚默认当成GPIO口,故需要修改dts文件使能该串口。另外,UART3(ttyS2)默认是打开的,已当成串口调试口,可连接开发板与PC端Linux上用minicom进行调试。开发环境:1)开发板:BeagleBoard-x152)kernel:linux 4.9.69-ti-rt-r853)工具:PinMux一、用PinMux进行引脚复用1)进入TI提供的云工具页面:https://dev.ti.com/ ,这里面还提供了很多其它有用的工具来帮助大家开发,这里选择PinMux,登录进入主页面,这里选择自己开发板SoC的型号,我这里用AM5728_SR2.0,点击Start注:和AM5828_SR1.1_beta有什么区别,这里没有细分)2)进行复用界面
解读:左边是选择你想复用的外围设备,我这里添加UART,中间是配置选项更改Use Case为SW flow control,右边上面是一些配置文件,可以看到这里生成了8个文件,前四个是用于TI官方的RTOS系统,后三个用于linux设备树的更改,最后一个.cvs是一个Excel文档,总结所用到的引脚的相关信息,电压域,上下拉等。右下图是一张引脚功能图,可以看到刚刚被我们复用的是哪个引脚,绿 {MOD}那两个分别是UART1的rxd(Pin B27),一个是txd(Pin C26)。二、根据提供的三个Linux 配置文件修改dts1)三个文件的内容分别为(1)devicetree
(2)genericFileFormatIOdelay.txt 是个空文件
(3)genericFileFormatPadConf.txt 

我开发板使用的设备树启动文件是am57xx-beagle-x15-revc.dtb,这个二进制文件是由am57xx-beagle-x15-revc.dts编译而成,故我们需要修改的实际是dts,在am57xx-beagle-x15-revc.dts中添加(设备树文件位于{linux-kernel}/KERNEL/arch/arm/boot/dts/)&dra7_pmx_core { gpio_keys_pins_default: gpio_keys_pins_default { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x358C, PIN_INPUT_PULLUP | MUX_MODE14) /* cam0_field.gpio4_2 */ >; }; myuart1_pins_default: myuart1_pins_default { pinctrl-single,pins = < DRA7XX_CORE_IOPAD(0x37E0, PIN_INPUT | MUX_MODE0) DRA7XX_CORE_IOPAD(0x37E4, PIN_INPUT | MUX_MODE0) >; }; };
2)在linux kernel目录下编译生成dtb        make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am57xx-beagle-x15-revc.dts3)替换掉开发板中的dtb文件,然后启动,用 dmesg | grep “ttyS” 查看是否成功 
可以看到ttyS0(UART1)已经成功启动!三、查找bb-x15的原理图 BEAGLEBOARD_X15_REV_B1.pdf 看UART1对应的引脚是哪两个
通过上图使用3根杜邦线连接P18的30 和60,还有任意一个地线即可进行uart的通信了!