TA的每日心情 | 开心 2014-1-17 23:05 |
---|
签到天数: 9 天 连续签到: 1 天 [LV.3]偶尔看看II
|
本帖最后由 xinxincaijq 于 2013-12-23 09:10 编辑
有了树莓派,但是没有hdmi显示器,这是个蛋疼的事,但是树莓派就是树莓派,他的GPIO管脚就是我们发挥想象力的地方.可以通过它的GPIO管脚来驱动一个显示屏.GOOGLE了一下,这个项目有个老外做好了,而且提供了patch文件,很容易就能移植到内核里面去.这里我就在这里记录一下移植这个TFT驱动的过程,然后试着分析这个老外提供的PATCH文件,希望能从中提高自己的能力,也能够熟悉一下内核的移植.
环境: ubuntu 13.10 (交叉编译按前面的文章设置)
TFT : 2.4寸 12864接口 ILI9325主控 (当时叉宝买来给AVR用的)
个人原创,转载请注明原文出处:
http://blog.csdn.net/embbnux/article/details/17394793
参考文章:
http://spritesmods.com/?art=rpi_arcade&page=2
http://www.blogjava.net/baicker/archive/2012/12/18/392829.html
首先上张图:
一 首先是接线
用的是P1口:
TFT与P1连线:
这个上面的VCC接的是3.3v,因为我的屏幕接口是5v,所以我给改成5v了.
二 添加TFT驱动到内核
编译内核的环境,就按之前的文章设置,这里不再复述.
用的是spritesmods.com/?art=rpi_arcade&page=2提供的diff文件
原下载链接: ili9325_gpio_driver_rpi.diff
也可以到我的资源下载:
http://download.csdn.net/detail/canyue102/6735059
这个补丁是基于3.6内核的,不同版本的内核可能不一样,自己改一下就好了.
首先把 该diff文件放到内核根目录下,终端进去该目录:
patch -p1 < ili9325_gpio_driver_rpi.diff
然后TFT内核源码就被添加到内核去了.
make menuconfig
可以在device driver >> graphics support >> support for frame buffer 下看到ILI9325选项,Y选中它就把它添加进内核.另外的BCM2708 framebuffer support就是原来树莓派自带的HDMI和AV显示.
make
就编译好了,把它按上一篇的方法放到SD卡上去运行,就可以了.
三 测试
进入ssh进入树莓派
ls /dev/fb*
可以看到有fb0 和 fb1, fb1 就是我的TFT.测试:
cat /dev/urandom > /dev/fb1
如果屏幕出现花屏那就是成功了. 那要如何树莓派默认显示在tft上:
在make menuconfig里面把刚才说到的BCM2708 framebuffer support取消掉就可以了,不过就不支持HDMI了
三 源文件分析
查看该diff文件可以看出作者对内核做了四处改动
代码较多.详见原文博客
http://blog.csdn.net/embbnux/article/details/17394793
四 有了显示屏那就做个摄像头显示的小项目
我正好有一个USB接口的UVC驱动的摄像头,树莓派兼容的,其他驱动芯片的驱动只要在make menuconfig里面找到相应选项就可以了.
插上usb摄像头,可以看到/dev下多了video0文件,这个就是摄像头了.
tft上显示摄像头的图像:
|
|