树莓派spi液晶屏支持(fbtft)[转]

  转自 老徐拉灯 的博客 原文地址:http://blog.csdn.net/xdw1985829/article/details/39583239 树莓派官方支持av及HDMI输出,板子上预留了一个csi接口的液晶显示屏,但是一直没有相应的模组出现。在很多应用场合我们需要一些小型的液晶屏显示一些基本的信息,所以小屏驱动很是必要。 在github上有一个开源工程:notro/fbtft,完整的实现了framebuffer驱动,让树莓派完美支持tft液晶,下面对移植过程进行一个简单说明 一、官网地址 工程首页:https://github.com/notro fbtft源码:https://github.com/notro/fbtft 编译好的固件(基于3.12.25+):https://github.com/notro/rpi-firmware 使用说明(wiki):https://github.com/notro/fbtft/wiki 二、使用编译好的固件(3.12.25+) 环境:树莓派 https://github.com/notro/rpi-firmware 1、打开SPI 树莓派默认spi是关掉的,我们需要打开 sudo vi /etc/modprobe.d/raspi-blacklist.conf 把下面这句话前面的#号删掉 blacklist spi-bcm2708 2、下载: 1)以模块的形式编译进内核(需要手动或脚本加载模块)3.12.25+(试验成功) sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update 2)直接编译进内核(笔者没有试验) sudo REPO_URI=https://github.com/notro/rpi-firmware BRANCH=builtin rpi-update 3)以模块的形式编译进内核(需要手动或脚本加载模块,最新版本,笔者试过启动不起来,不知道哪出问题) sudo REPO_URI=https://github.com/notro/rpi-firmware BRANCH=latest rpi-update 4)直接下载压缩包,手动安装(适合树莓派不能联网的时候) http://tronnes.org/downloads/2014-06-20-wheezy-raspbian-2014-07-25-fbtft-master-firmware.zip 3、配置 1)手动加载模块: sudo modprobe fbtft_device name=adafruit22 name后面的名字,要跟相应的液晶驱动芯片移植 笔者使用的液晶芯片为:fb_ra8875,所以这里写的是:er_tftm050_2 其它芯片请查阅:https://github.com/notro/fbtft/blob/master/fbtft_device.c 文件 正常会提示以下信息 fbtft_device:  SPI devices registered: fbtft_device:     … Continue reading 树莓派spi液晶屏支持(fbtft)[转]

基于树莓派Raspberry: 字符设备内核驱动程序框架编写[转]

之前写了一篇移植2.4寸TFT驱动到树莓派的文章,那篇博文中的驱动代码是国外大牛写的,看了一下,还是有很多地方没理解,是得好好再学习一下内核驱动的编写,这里就从字符设备驱动开始,采用最简单的LED驱动来建立内核驱动移植的驱动框架. 个人原创,转载请注明原文出处: http://blog.csdn.net/embbnux/article/details/17712547 参考文章: http://blog.csdn.net/hcx25909/article/details/16860725 内核驱动与普通单片机模块驱动的差别就是在于,写内核驱动的时候,要提供内核调用的接口,使内核能找到相应的驱动入口,用户通过告诉内核要干嘛,内核再去调用那个驱动,驱动的最底层和单片机模块是一样的,同样是对GPIO的操作,配置输入输出,以及某些特殊的寄存器. LED的点亮就是对GPIO的操作 . 对于ARM的GPIO调用需要通过IO映射的方法,要操作内存上对应的地址. 对于bcm2708上的io对应关系,可以查看bcm2835的手册,和stm32基本上是一样的,因为同为ARM体系: 我参考的那博客讲这个比较清楚,可以参考下,由于树莓派的内核以及很好的提供了GPIO调用的接口,即把内存操作封装了很好,这里就不像那篇博客那样再自己写函数通过内存操作来进行GPIO操作,觉得有点麻烦,但是对于学好底层很有用.   一  首先上个驱动程序   这里直接把该程序添加到内核的源码目录里面,也可在自己的目录下,但是要写Makefile. 在/drivers/char/新建rasp_led.c,内核中的kconfig文件和makefile文件,参照前一篇文章 led.c: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37… Continue reading 基于树莓派Raspberry: 字符设备内核驱动程序框架编写[转]

通过手机来控制家电

心血来潮想通过树莓派对家里的电器进行控制,网上查了不少资料,决定动手一试。首先决定对电暖器开刀,这个电脑有一个红外的遥控器,可以开关、定时、设定高低档功能,我要做的就是模拟遥控器对其发出指令。初级篇,通过电脑命令行进行控制,高级篇使用手机进行控制。 参照baoxiaozhong的红外接收http://www.shumeipai.net/thread-12265-1-1.html 设置好了红外接收器,然后尝试用相似的方法实现了红外发射器,成功控制电暖器,后续将考虑控制电视,空调等 设备。 初级篇:用电脑来控制电暖器 原理: 先通过红外接收模块,采集遥控器的指令,然后通过红外发射器模块模拟遥控器发送红外指令控制。 环境:xbian 1.0 alpha4 硬件:taobao上淘的10多块一个的红外接收模块及红外接收模块,此处不发地址,免得广告嫌疑。 连接方式: 红外接收器 vcc 连 pin1 (3.3v) gnd 连 pin6(ground) data连 pin12(gpio18) 红外发射器 vcc 连pin2(5v) gnd连pin6(ground) data连pin11(gpio17) 为什么这么连,我查了很久资料,后来在lirc_rpi原作者网站看到了,大概固定在程序里面了。 地址:http://aron.ws/projects/lirc_rpi/ 步骤: 先通过红外接收器接收遥控器的编码,请参照http://www.shumeipai.net/thread-12265-1-1.html. 在用户目录生成了lircd.conf文件 我生成了KEY_UP,KEY_DOWN,KEY_0,KEY_1等分别代替开启、定时、低、高四个按钮 然后将它拷贝到/etc/lirc/remotes下, sudo cp /home/xbian/lircd.conf /etc/lirc/remotes/xxx.conf (xxx随便你起名字,但是要和后面统一) sudo vi xxx.conf 修改 name /home/xbian/lircd.conf 为 name xxx sudo /etc/lirc/lircd.conf 增加一行 include “/etc/lirc/remotes/xxx.conf” 保存退出 现在可以测试了 sudo… Continue reading 通过手机来控制家电