简单可靠的单片机的OLED静态显示驱动接口电路
本设计实现了一种基于OLED显示模块CMELC0283QGLD—T的全彩色静态图片显示系统。该系统设计简单可靠,是一套通用的中小尺寸OLED驱动控制系统.同时单片机预留了多个I/O口可作后续扩展功能使用。
OLED与薄膜场效应晶体管液晶显示器(TFT—LCD)相比,具有响应快、全彩色、自发光、视角宽、对比度高、低电压、可实现柔性显示等优点,能更好地应用于手机、MP3、小尺寸仪表盘等。OLED显示器以其卓越的显示性能成为下一代平板显示器15’的一个强有力竞争者,目前市场上已出现多种中小尺寸OLED,但配套的驱动接口电路设计嘲很少,笔者拟采用STCllL60XE单片机作为OLED显示模块CMEL C0283QGLD—T的主控制器。尝试在SPI模式下实现OLED全彩静态图片显示。
CMEL C0283QGLD-T显示模块是240xRGBx320点阵的2.8 in全彩OLED显示模块,集成了S6E63D6驱动器”1,图l为S6E63D6的结构框图。S6E63D6是一款带控制器的OLED驱动专用芯片,最大可支持240xRGBx320点阵的图形显示。内置容量为240x18x320位的图像存储器(GRAM),向GRAM中写入图像数据可实现65 k、260 k色图片显示。其具有四种可编程彩色显示接口模式:
18一/16?/9/8位并行接口模式、18?/16/6位的RGB接口模式、串行外围设备接口(SPI)模式和高速串行接口(MDDI)模式。S6E63D6内嵌DC—DC电压转换器,提供OLED模块内部像素驱动电压。
图l S6E63D6结构框图
硬件电路设计
实现静态图片显示需预存图像数据。而单片机内部程序空间有限(60 k),不适合存储图像数据,采用Flash存储器作为图像数据存储区能有效地解决这一问题。单片机只需读取Flash存储器中的图像数据,再传送到显示模块即可实现静态图片显示。系统硬件结构框图如图2所示,整个系统采用5 V直流供电,两个电源模块提供整个控制电路所需电压和OLED显示所需电压,微控制器(MCU)模块实现与OLED模块和Flash存储器的通信,并提供了在线编程接口和硬件复位接口,使用SPI协议18I进行串行通信。
图2系统硬件结构框图
电源模块
电源模块1输出电压3.3 V,为微控制器和接口电路供电。电源模块2采用高效率开关电源,为OLED显示提供正常工作所需的VDD和VSS。鉴于OLED显示屏对供电电压变化极其敏感,而安森美生产的NCP58 10芯片一1输出电压精准、转换率高、封装尺寸dx(3.00 mmx3.00 mmx0.55 mm),可提供l%电压容差的精确反馈电压且输出负载瞬态响应好,作为OLED驱动供电电源尤为合适。
微控制器
宏晶科技的STCll/lOxx系列单片机HOl相比于传统的89系列及205l系列单片机,成本更低,性能更强,故本设计系统选用STCl 1L60XE单片机作为微控制器。通过寄存器配置将单片机P3.0/RXD、P3.1/TXD设置为系统可编程(ISP)下载专用通信口。USB和串口转换完成与用户系统的USB连接,实现在用户系统上调试和下载单片机程序。P4.7/RST引脚出厂时就被配置为复位引脚,外接复位电路实现上电复位。P3.4一P3.7预置为时钟(SCK)、数据输入端(SI)、数据输出端(SO)、使能信号(CE),作为单片机与Flash存储器的SPI接口,实现SPI串行通信。P2口部分引脚预置为时钟线(CL)、片选信号(CSB)、数据输出端(SDO)、数据输入端(SDI),作为单片机与OLED显示模块的SPI接口,实现SPI串行通信。将P2.7预置为RE.SETB,用于控制整个OLED显示模块的复位。
SPI接口设计
硬件系统中SPI接口部分为:单片机与Flash存储器的SPI通信接口和单片机与OLED显示模块的SPI通信接口。为了行文方便,约定单片机与Flash存储器的SPI通信为SPI模式I,单片机与OLED显示模块的SPI通信为SPI模式2。在SPI模式2下单片机与OLED显示模块的连接采用接插件形式,更改接插件可实现不同尺寸OLED显示模块的硬件接口连接,实现系统设计的通用性。SPI模式1为四线制,包括CE,SCK,SI和SO;SPI模式2也为四线制,包括SCL,CSB,SDO,SDI。由于STCl 1L60XE单片机没有硬件SPI接口,需设置单片机普通I/O口模拟SPI时序进行数据通信。SPI模式1中Flash存储器SST25VF020I“1的器件地址为43H,存储范围为000000H~03FFFFH;SPl模式2中OLED显示模块SPI模式下写指令起始地址为70H,写数据起始地址为72H。
软件设计
显示之前,预存储图像数据到Flash存储器,主程序主要完成从Flash中读取数据,然后在SPI方式下通过单片机I/O口向显示模块中的GRAM输人数据实现静态图片显示。主程序软件流程图如图3所示。主要功能包括:1)MCU初始化,设置单片机时钟为外部输入模式,设置ISP通信口和定时器。配置各个I/O口为数字口。软件延时使能电源模块2的正负压输出。2)SPI初始化,将SPI相关的片选信号、时钟信号和数据信号拉高,不产生通信。3)OLED初始化,先配置所需显示制式时钟模式和接口模式,再执行清屏操作(写入数据0x0000),预定义图片显示范围(行列起始地址),最后开显示(允许GRAM中数据显示)。4)读数据,单片机以SPI模式l从Flash存储器中读取相应的位图数据。5)数据写入GRAM,单片机从Flash存储器中读数据的同时以SPI模式2向GRAM中写人数据,写满后停止SPI通信。OLED模块会自动显示。.GRAM中的图像信息。
图3OLED显示软件流程图
单片机模拟SPI模式l的时序需严格按照图4所示的读写时序,任何时候读写需先将片选CE拉低,在SCK的上升沿SI上数据写入,SCK下降沿SO上数据输出。写数据时SO必须保持高阻状态.读数据时SI状态可任意。Flash存储器中数据存储格式为8位。
从Flash中读取数据后,向GRAM中写入数据即可实现OLED显示,而向GRAM中写指令、写数据和读状态都是在SPI模式2下进行的,所以显示子程序关键是模拟实现SPI的读、写时序。SPI模式2下写指令时序如图5所示,初始化时将CSB,SCL和SDI都拉高,先写入器件地址,再写入相应指令,指令格式为16位双字节形式。写操作时需先将片选CSB拉低,在SCL上跳变时SDI上的数据写入,在SCL上升沿时SDI的数据必须保持稳定,结束时将SCL,SDI拉高,同时CSB置1。SPI模式2的写数据时序如图6所示,数据格式为16位,每写一次数据都必须先发送一次8位器件地址,与写指令一样,SCL上升沿时SDI的数据必须保持稳定才能准确写入。
实验结果
CMEL C0283QGLD—T显示模块内部GRAM只支持16位格式的图像数据信息,需通过图片转换软件将图片信息转化为8位宽度的位图信息,存储到Flash存储器中。软件编程时需预先将数据格式从8位转化为16位,然后在SPI模式2T逐位传输到GRAM中。图7为SPI模式下的240x320的65 k色静态图片显示效果。图8为RGB(红绿蓝)三色图片显示效果,Flash存储器中还可存储其他测试图片用以显示。
结语
本设计实现了一种基于OLED显示模块CMELC0283QGLD—T的全彩色静态图片显示系统。该系统设计简单可靠,是一套通用的中小尺寸OLED驱动控制系统.同时单片机预留了多个I/O口可作后续扩展功能使用。通过与Flash存储器的SPI通信解决了单片机内部存储空间有限、无法存放过多图片问题。可预置多幅测试图片到Flash存储器进行循环显示,供用户进行相应的OLED显示性能测试。