- 1 OLED模块介绍
- 1.1 模块
- 1.2 SSD1306简介
- 1.2 SSD1306引脚
- 1.3 SSD1306接口配置
- 2 驱动(oled_ctrl.v)
- 3 一个简单的应用
- 附件
OLED:organic/polymer light emitting diode 高分子有机电激发光二极管 OLED模块原理图:
OLED模块结构图:
市面上统一尺寸的配置和设计大差不差的,OLED生产商大部分都是中景园电子,官网可以下载OLED 显示屏裸屏的资料。
以驱动芯片为SSD1306的屏为例: OLED 显示屏裸屏外观:
驱动芯片SSD1306尺寸很小,6.76*0.86mm。仔细看在液晶屏下面一点点可以看到一个长条就是了。
1.2 SSD1306简介SSD1306是一款带控制器的单片CMOS OLED/PLED驱动,用于OLED点阵图形显示系统。它由128个segment和64个common组成。该集成电路是为普通阴极型OLED面板设计的。
SSD1306内置了对比度控制、显示RAM和振荡器,减少了外部组件的数量和功耗。它有256级亮度控制。数据/命令从通用MCU通过硬件可选的6800/8000串行兼容并行接口,I2C接口或串行外设接口发送。它适用于许多小型便携式应用,如手机子显示器、MP3播放器和计算器等。
1.2 SSD1306引脚SSD1306单片机接口由8个数据引脚和5个控制引脚组成。不同接口模式下的引脚分配如下表所示。
不同的MCU模式可以通过BS[2:0]引脚上的硬件选择来设置。根据原理图可知这款的BS[2:0]=3’b010。设置为I2C驱动。
I2C写数据与命令的时序:
contorl byte: 8’h40(数据),8’h00(指令) 关于I2C时序,这里注意几个关键参数就行,其他的都是标准接口:
- I2C时钟周期最小为2.5us,即400KHz。
- 刷新率: 取I2C时钟频率 f I 2 C f_{I^2C} fI2C=350KHz。I2C驱动模块系统时钟为4倍I2C时钟频率 f s y s f_{sys} fsys=1.4MHz。 从触发一次写到写完成大概需要130个系统时钟。 完成一次刷新需要1048次I2C写,其中1024个数据以及24个指令。 所以刷新率为: f r e f r e s h = f s y s / 130 / 1048 ≈ 10.276 H z f_{refresh} = f_{sys} / 130 / 1048 \approx 10.276Hz frefresh=fsys/130/1048≈10.276Hz
关于配置空间,注意:
- 显存地址与数据排列
将整个显示像素点128*64分为8行,127列的8bit数据,数据的低位对应低坐标点。
- 设置页寻址模式的下列起始地址(00h~0Fh)
- 设置页面寻址模式的高列起始地址(10h~1Fh)
- 设置页面寻址方式的页面起始地址(B0h~B7h)
初始化主要指令:
case (R_init_cmd_cnt)
7'd0 :O_i2c_data
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?