Neza-D1开发板学习之SPI-LCD灯篇
-
- Neza-D1开发板芯片很强,但是没有引出RGB接口,板上引出了HDMI与MIPI接口,没引出RGB接口,手里的RGB接口的屏用不上了,扩展IO上有引出SPI1接口,看了一下尺寸,刚好可以放的下2.8”的SPI屏幕,正好手里有以前剩下的屏幕,就画了一块扩展板(可惜芯片是BGA封装,即使我能画出来,也没本事焊上啊!),驱动芯片是ili9341 4线SPI,又加了一个触摸芯片上去,如下图
- 设备树配置
lcd_ili9341@0 { #address-cells = <1>; #size-cells = <1>; compatible = "ilitek,ili9341"; reg = <0>; spi-max-frequency = <32000000>; rotation = <0>; spi-cpol; spi-cpha; rgb; fps = <30>; buswidth = <8>; txbuflen = <32768>; reset-gpios = <&pcf8574 6 GPIO_ACTIVE_LOW>; dc-gpios = <&pcf8574 7 GPIO_ACTIVE_LOW>; /*backlight = <&backlight>;*/ led-gpios = <&pcf8574 5 GPIO_ACTIVE_HIGH>; status = "okay"; };
-
在内核打开small lcd support选项
[] Staging drivers --->
<> Support for small TFT LCD display modules --->3
<*> FB driver for the ILI9341 LCD Controller -
系统启动log
[ 2.670067] fbtft_of_value: buswidth = 8 [ 2.674512] fbtft_of_value: backlight = 39 [ 2.679097] fbtft_of_value: fps = 30 [ 2.683098] fbtft_of_value: txbuflen = 32768 [ 2.691259] GPT:Primary header thinks Alt. header is not at the end of the disk. [ 2.699560] GPT:625184 != 7774207 [ 2.703265] GPT:Alternate GPT header not at the end of the disk. [ 2.709981] GPT:625184 != 7774207 [ 2.713688] GPT: Use GNU Parted to correct GPT errors. [ 2.719480] mmcblk0: p1 p2 p3 p4 [ 2.987837] random: fast init done [ 3.036258] graphics fb1: fb_ili9341 frame buffer, 240x320, 150 KiB video memory, 32 KiB buffer memory, fps=31, spi1.0 at 32 MHz
-
这里有一点需要注意,我们使用的GPIO是通过PCF8574扩展出来的,对IO读写操作时可能会导致休眠,因此不能在中断函数里使用,我们需要简单的修改一下驱动文件,用一个宏定义即可,如果不修改操作一次IO,就会出现一堆警告
#define gpio_set_value gpio_set_value_cansleep
-
进系统里可以查看是否有对应设备
# ls /dev/fb* /dev/fb0 /dev/fb1 测试屏幕 # cat /dev/urandom > /dev/fb1 cat: write error: No space left on device 清屏 # cat /dev/zero > /dev/fb1 cat: write error: No space left on device 显示图片 # fbv image1.jpg
- Neza-D1开发板芯片很强,但是没有引出RGB接口,板上引出了HDMI与MIPI接口,没引出RGB接口,手里的RGB接口的屏用不上了,扩展IO上有引出SPI1接口,看了一下尺寸,刚好可以放的下2.8”的SPI屏幕,正好手里有以前剩下的屏幕,就画了一块扩展板(可惜芯片是BGA封装,即使我能画出来,也没本事焊上啊!),驱动芯片是ili9341 4线SPI,又加了一个触摸芯片上去,如下图
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号