电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 接口/总线/驱动 > 详细信息
接口/总线/驱动:OLED显示模块与AT91RM9200的接口设计
来源:   时间: 2007-4-11 9:50:24    

OLED全称为Organic Light-Emitting Diode,即有机发光二极管显示器,是指有机半导体材料和发光材料在电流驱动下而达到发光并实现显示的技术。OLED与LCD相比有许多优势:超轻、超薄(厚度可小于1 mm)、亮度高、可视角度大(可达170°)、由像素本身发光而不需要背光源,功耗低、响应速度快(约为LCD速度的1 000倍)、清晰度高、发热量低、抗震性能优异、制造成本低、可弯曲。所以OLED更能够展示完美的视频,再加上耗电量小,可作为移动电话、数码电视等产品的显示屏,被业界公认为最具发展前景的下一代显示技术。

1 P13501显示模块的特性

台湾铼宝公司推出的P13501是一种128×64点阵的单色、字符、图形显示模块。具有如下主要特性:发光颜色为蓝;点阵数为128×64;内置驱动IC为SSD1303;对比度为500:1;视角为160°;接口为6800系列并行接口,8位Intel 8080系列并行接口以及串行外部接口;工作温度为-20~+70℃。

2 显示模块的控制器和结构框图

OLED显示屏P13501主要包括台湾Solomon公司生产的SSD1303内置控制器和OLED显示面板。

控制器是一个集行驱动、列驱动和控制器于一体的OLED驱动器芯片。该驱动器为132×64点阵OLED图形显示而设计,包括行驱动器、列驱动器、电流参考发生器、对比度控制、振荡器和几个MCU接口模式。工作逻辑电压为2.4~3.5 V;具有丰富的软件功能,支持4种颜色选择和每种颜色64级控制,其软件对比度具有256级控制;内嵌的132×64位的图形动态随机存储器(GDDRAM),提供了行remapping、列remapping、垂直滚动和部分显示功能,使得该驱动器适合于不同像素尺寸和颜色的多种OLED显示。

SSD1303控制器在接口控制电路内有2套时序电路,通过对时序适配电路的相应设置以满足不同的时序要求。时序适配电路的设置端为BS1和BS2,其时序设置如表1所列。

模块的结构框图如图1所示。
3显示模块与AT91RM9200的接口设计

SSD1303的接口,包括数据输入缓存器、数据输出锁存器、指令寄存器及译码器、忙状态触发器以及时序控制电路等,具有高性能的接口控制电路。计算机可以随时访问SSD1303而无须判断其当前状态。由于OLED采用Intel 8080时序,因此BS1和BS2均接高电平;又由于AT91RM9200中没有命令/数据选择线,所以这里使用其通用端口PB中一口线PB10作OLED的命令/数据选择线。当PB1O为低电平时,表示向OLED写入的数据为命令字;而为高电平时,则表示写入OLED的为数据字。OLED的16脚RES为复位脚,可直接接到ARM的复位电路,但此处为了方便对OLED的复位控制,特用另一口线PB11作其复位控制。OLED的片选信号USER1_CS由AT91RM9200的NCS4与地址线A25、A23、A22经38译码器译码产生。经计算可得其物理地址为0x52800000。OLED与AT91RM9200的接口电路设计如图2所示。
4 OLED驱动的编程

操作系统的作用之一就是向用户屏蔽硬件的特殊性,使应用程序与底层的具体物理设备无关。设备驱动程序是应用程序与具体硬件的桥梁。Linux支持3类硬件设备:字符设备、块设备及网络设备,它们的编写方法大致相同。其中,字符设备和块设备可以像文件一样被访问。字符设备和块设备的主要区别在于:应用程序对字符设备的每一个I/O操作,都会直接传递给系统内核对应的驱动程序;而应用程序对块设备的操作,要经过系统的缓冲区管理,间接传递给驱动程序处理。在此,OLED属于字符设备。

通常字符设备提供给应用程序的是一个流程控制接口,主要包括open、close(或release)、read、write、ioctl、poll和mmap等。在系统中添加一个字符设备驱动程序,实际上就是给上述操作添加对应的代码。对于字符设备和块设备,Linux内核对这些操作进行了统一的抽象,把它们定义在结构体file_operations中。对于大多数字符设备,只须完成其中的部分操作,驱动程序就可以很好地工作了。

根据需要,OLED设备驱动程序只实现了部分设备操作,采用标记化格式声明其file_operations结构,具体如下:


oled_write负责将要显示的数据显示到OLED屏上;oled_ioctl用于实现对OLED的各种控制命令;oled_open负责打开OLED显示屏;oled_release负责关闭OLED显示屏。这里主要介绍oled_write的具体实现,其他可根据实际需要,参照oled_write实现。实现oled_write的具体程序如下:
 
 
5驱动程序的编译


驱动程序编写好后还需要对其进行编译。在Linux操作系统中对驱动一般有两种编译方式,即静态编译和动态编译。静态编译时,驱动程序直接编译到了内核中,在配置内核时可以自由裁剪。假定编写好的P13501的驱动程序为myoled.c,将其静态编译到内核的具体操作如下:

①将myoled.c复制到drivers/char目录下,并且修改drivers/char/Config.in文件。在其中添加如下代码:

dep_tristate my oled support' CONFIG_MY_OLED

$CONFIG_ARCH_AT91RM9200

其含义是:只要定义了CONFIG_ARCH_AT91RM9200为y或m,在配置内核时(如"make menuconfig"),Character devices分类下,就会出现my oled support选项,它与CONFIG_MY_OLED的定义相对应。为把驱动程序链接到内核中,应把CONFIG_MY_OLED定义为y。

②在drivers/char目录下的Makefile中添加如下代码:

obj-$(CONFIG_MY_OLED)+=myoled.o

Makefile会根据obj-m和obj-y编译,并链接生成对应的代码。

动态编译时将驱动编译成模块(module),然后动态加载和卸载设备驱动模块。用模块加载的方式,可在不重新启动系统的前提下,反复地调试和修改模块,可以方便、有效地对所编写的驱动进行调试。实际中在编写驱动的初始阶段,经常将其编译成模块,反复地加载和卸载模块,修改驱动程序的原码,直到整个驱动满足要求为止,再把它静态编译到内核中。

动态编译时,方法如下:

/usr/local/arm/2.95.3/bin/arm-linux-gcc-O2-DMODULE-D__KERNEL__-I/home/sum/linux-2.4.19/include-c myoled.c

这里假设交叉编译器路径为:/usr/local/。内核的存放路径为:/home/sum/linux-2.4.19。如果编译时没有错误,那么完成后就会生成myoled.o文件。将其拷贝到嵌入式系统中一目录(例如:/home)下,就可以对其进行动态加载:

insmod myoled.o

生成设备号:

mknod/dev/fftoled c 254 O

这样,P13501的驱动程序就被动态加载到内核中,应用程序也就可以在OLED上进行显示输出。

模块卸载时操作如下:

rmmod myoled

反复加载、卸载,即可完成对OLED驱动的调试。

6 结论

本文介绍了OLED显示模块P13501与AT91RM9200的接口电路设计,以及在嵌入式Linux下OLED驱动程序的编写、编译和加载。该电路和驱动已成功应用于一控制系统中系统参数的显示,效果良好;配合简单的矩阵扫描式键盘,还可以进行相关参数设置。由于Linux的众多特点以及OLED显示技术的众多优势,相信它们的结合在消费电子、工业控制,甚至生活的方方面面将具有广阔的应用前景。

相关信息
发表评论
打印本页 关闭本页
VxWorks在AT91RM9200上的BSP设计
    摘要 阐述VxWorks实时操作系统中板级支持包BSP的概念和作用;研究VxWorks映像的生成和分类,以及系统的启动流程;着重介绍VxWorks操作系统在ARM9芯片AT9lRM9200上的BSP设计。  关键词 VxWorks BSP 映像 ARM AT91RM9200   VxWorks是美国Wind River公司开发的嵌入式实时操作系统,具有高性能、可裁减性好等特点,能支持多种微处理器(如PowerPC、X85、ARM、SPARC);自问世以来,以...
>>详细内容
智能型PXI Switch Module 在自动化测控系统中的应用
  前言  使用继电器模块(Relay Switch Module)做为信号切换,广泛地应用于IC测试、电力监测管理、工业流程与交通控制领域。       近年来随着消费性电子产品走向多样化,生命周期缩短,价格(Cost)、速度(Speed)、灵活性(Flexibility),成为自动测试设备(Automated Test Equipment, ATE)生存竞争的首要课题。于工业控制及相关应用领域,价昂、封闭规格的专用控制系统则面临PC-Base...
>>详细内容
CY7C68001-56PVXC的技术参数
  产品型号:CY7C68001-56PVXC工作电压(V):3.300内核:无存储器:无数据传输:Bulk, Interrupt, Isochronous端点:5封装/温度(℃):56SSOP/0~70描述:USB 2.0高速接口器件,EZ-USB SX2系列开发工具:CY3683价格/1片(套):暂无
>>详细内容
CY7C68000-56LFXC的技术参数
  产品型号:CY7C68000-56LFXC工作电压(V):3.300内核:无存储器:无数据传输:Bulk, Interrupt, Isochronous端点:无封装/温度(℃):56QFN/0~70描述:USB 2.0 UTMI收发器,EZ-USB TX2系列开发工具:CY3683价格/1片(套):暂无
>>详细内容
CY7C68001与TMS320VC5416的接口设计
  近年来,随着数字信号技术的发展,需要处理的数据量越来越大,处理的速度也越来越快,因此具有高速性能DSP芯片的应用得到了广泛重视。而通过DSP处理的数据往往要传输给PC机进行存储和再处理,那么就必须研究DSP与PC机之间的高速通信问题,所以今年发展起来的USB 2.0技术及其高速易扩展等特点得到越来越广泛的应用,本文就是使用USB 2.0芯片CY7C68001和DSP芯片TMS320VC5416来实现DSP与PC机...
>>详细内容
低电压μModule DC/DC稳压器(Linear)
    凌力尔特公司(LinearTechnologyCorporation)推出低电压μModuleTMDC/DC稳压器系列的新成员LTM4608。这是一款具DC/DC控制器、电源开关、电感器补偿电路和输入/输出旁路电容器的完整8ADC/DCμModule稳压器系统。LTM4608的工作电源范围为2.375V至5.5V(最大值为6V),并可调节一个0.8V至5V的输出电压。完整的电路内置于一个高度仅为2.8mm的轻量(重1.0克)纤巧型9mmx15mmLGA封装中。紧凑的...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com