对AM572x进行引脚复用使能UART1

前提:因为需要把BeagleBoard-x15这个开发板当做OpenPLC的Server端,与IO板之间是进行UART通信,所以我这里使用的是UART1(ttyS0)这个串口,但是该引脚默认当成GPIO口,故需要修改dts文件使能该串口。另外,UART3(ttyS2)默认是打开的,已当成串口调试口,可连接开发板与PC端Linux上用minicom进行调试。

开发环境:

1)开发板:BeagleBoard-x15

2)kernel:linux 4.9.69-ti-rt-r85

3)工具: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文档,总结所用到的引脚的相关信息,电压域,上下拉等。右下图是一张引脚功能图,可以看到刚刚被我们复用的是哪个引脚,绿色那两个分别是UART1的rxd(Pin B27),一个是txd(Pin C26)。

二、根据提供的三个Linux 配置文件修改dts

1)三个文件的内容分别为

(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.dts

3)替换掉开发板中的dtb文件,然后启动,用 dmesg | grep “ttyS” 查看是否成功 


可以看到ttyS0(UART1)已经成功启动!

三、查找bb-x15的原理图 BEAGLEBOARD_X15_REV_B1.pdf 看UART1对应的引脚是哪两个


通过上图使用3根杜邦线连接P18的30 和60,还有任意一个地线即可进行uart的通信了!

猜你喜欢

转载自blog.csdn.net/a249093278/article/details/79662477
今日推荐