【Linux】NanoPi-NEO2外接spi-lcd

本文使用环境:
电脑:Ubuntu 18.04.5 LTS
开发板:NanoPi-NEO2 500M
GUI:lvgl
交叉编译器:aarch64-linux-gnu
内核版本:4.14
显示屏:1.33寸LCD高清IPS
显示屏资料:https://openmv.io/products/lcd-shield (128,为什么会这么贵,搞不清楚)

写在前面
机缘巧合咸鱼上收了一块nanopi得开发板,抽空研究研究玩一玩,记录一下心得体会。
本文使用的内核为4.14,不支持3.x的,因此需要单独编译: 本文编译内核的教程

一、显示接口

1.1、LCD接口

我TB买的显示屏,然后自己按照尺寸画的扩展板,接的LCD。
立创工程:链接: 暂时还没有做好,做好了再放上来
在这里插入图片描述
接口是直接SPI通讯的,如下:
在这里插入图片描述

1.2、核心板接口

核心板接口参考两个文章,
核心板管脚: 核心板管脚定义
在这里插入图片描述

nanopi教程推荐的LCD: 教程推荐的lcd管脚定义
在这里插入图片描述
参考上面两个文章,可以看出,自己的LCD只需要按照对应的接线进行配置即可,需要linux的pin号,后期驱动需要。

PinNameLinux gpioPinNameLinux gpio
1VDD_3.3V2
34
56
7LCD_RESET2038
910
11LED_EN012
1314
1516
1718
19LCD_MOSI6420
21LCD_MISO6522LCD_D/C1
23LCD_CLK6624LCD_CS67

二、添加驱动

2.1、确认驱动型号

首先要确认内核是存在改驱动的,要不然就麻烦了。那么如何确认?
可以参考文章
在这里插入图片描述
简而言之就是直接找内核中有没有定义该驱动,本文所有LCD屏幕驱动为ST7789,内核文件中存在改驱动,因此直接使用即可。
在这里插入图片描述

2.2、添加驱动

这小节也可以参考之前的文章。
可以参考文章

sudo modprobe fbtft_device custom name=admatec_c-berry28  busnum=0 cs=0 gpios=reset:203,dc:1,led:0 rotate=90 debug=7

其中 name gpios 都需要根据驱动的具体型号进行确定。本文的1.2小节有对应的编号
name:fbtft_device.c中是什么就是什么
busnum:用于指定使用第几个spi控制器,(本文是spi 0)
CS:SPI的第几个CS片选线,(本文是cs 0)
rotate:屏幕翻转角度
debug:debug等级7.(实际使用中不要开debug,否者你会发现vsr/log/下面的文件会不断变大,直到把整个内存占满
在这里插入图片描述
加载后可以通过lsmod查看全部模块加载情况。
lsmod | grep xxx,单独查看模式加载情况
dmesg | grep “fb” 查看log,排查异常情况

虽然但是,这里还是很麻烦,7789的驱动并没有单独编译出来,所以需要下载内核文件编译输出ko文件。。。。。。
本文编译内核的教程
交叉编译器、内核和uboot需要自己下载。交叉编译器需要安装,教程也在上面的链接。
我这里直接上传.ko文件。
链接: 驱动文件

后续的添加启动可以参考:
可以参考文章

三、测试

到这里应该是可以点亮了,具体的显示内容可以根据自己的需求配置。
参考之前的lvgl文章:【Linux】linux上使用lvgl
在这里插入图片描述

四、附加

4.1、交叉编译器安装

在这里插入图片描述

4.2、内核和module编译

在这里插入图片描述
上图的nodule编译非常重要,lcd的驱动是按照module来处理的。

4.3、扩展rootfs大小

编译完成后的镜像不能直接下进入系统,因此太大了。系统没有扩容,rootfs只有1.几个G,完成不够。。。。。。。注意:烧写完成的SD卡不要插入nanopi启动。。要不然以下步骤有点麻烦。本文是烧写完后直接用SD卡进行的扩容。
接下来扩容。需要用到电脑。UBUNTU。。。
插入SD卡,然后在 Ubuntu 电脑中安装下 gparted 这个软件,执行下列命令:注意不要在SD卡的路径下操作。。

sudo apt install -y gparted
sudo gparted

选择SD卡。
在这里插入图片描述
可以看出rtoofs已经基本用完,因此目标是把rootfs扩大。

简单一点把userdata直接删掉,全部分给rootfs。。。。。。
在这里插入图片描述

编译的命令总结如下:


nanopi-neo2:使用的的:sun50i-h5-nanopi-neo2

UBOOT:
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- distclean
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- nanopi_neo2_defconfig
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- menuconfig
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- -j16

KERNEL:
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- distclean
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j16

make Image dtbs ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

cp arch/arm64/boot/Image /media/zxx/boot/
cp arch/arm64/boot/dts/allwinner/sun50i-h5-nanopi*.dtb /media/zxx/boot/

编译modules:

make modules ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

sudo make modules_install INSTALL_MOD_PATH=/media/zxx/rootfs ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

教程:
https://wiki.friendlyelec.com/wiki/index.php?title=Building_U-boot_and_Linux_for_H5/H3/H2%2B&redirect=no
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr·赵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值