0.96OLED显示原理及FPGA驱动程序

本文详细介绍了SSD1306驱动芯片及其在OLED显示屏的应用,包括接口配置、驱动代码实现及一个基于Python的简单应用示例。


很久以前玩的OLED,现在整理一下。

1 OLED模块介绍

1.1 模块

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个控制引脚组成。不同接口模式下的引脚分配如下表所示。
在这里插入图片描述

1.3 SSD1306接口配置

不同的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/104810.276
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChipWeaver

觉得有用的话点个赞吧 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值