浅谈OLED模块驱动芯片(SSD1306为例)

描述

常见的OLED模块驱动芯片,不同的驱动芯片具有不同的特点和适用场景,具体选择应根据显示屏的分辨率、接口类型和功能需求来确定。

OLED(有机发光二极管)显示模块的驱动芯片种类繁多,常见的一些驱动芯片包括:

1. SSD1306:常用于128x64和128x32分辨率的OLED显示屏,具有低功耗、SPI和I2C接口等特点。

2. SSD1351:适用于彩色OLED显示屏,支持高分辨率显示,具有SPI接口和高速刷新率。

3. SH1106:常用于128x64和128x32分辨率的OLED显示屏,支持SPI和I2C接口,低功耗高对比度。

4. UC1701:应用于128x64和128x32分辨率的OLED显示屏,具有低功耗、SPI和I2C接口以及图形显示功能。

5. ST7735:适用于彩色OLED显示屏,支持SPI接口,具有高分辨率和快速刷新速度。

6. SH1107:用于分辨率为128x64和128x32的OLED显示屏,具有SPI和I2C接口以及高对比度。

OLED模块的驱动芯片为SSD1306,其显存大小总共为12864bit 大小,SSD1306将这些显存分为了8页,其对应关系如表所示:

电路板

可以看出,SSD1306的每页包含了128个字节,总共8页,这样刚好是12864的点阵大小。因为每次写入都是按字节写入的,这就存在一个问题,如果我们使用只写方式操作模块,那么,每次要写8个点,这样,我们在画点的时候,就必须把要设置的点所在的字节的每个位都搞清楚当前的状态(0/1?),否则写入的数据就会覆盖掉之前的状态,结果就是有些不需要显示的点,显示出来了,或者该显示的没有显示了。

这个问题在能读的模式下,我们可以先读出来要写入的那个字节,得到当前状况,在修改了要改写的位之后再写进GRAM,这样就不会影响到之前的状况了。但是这样需要能读GRAM,对于4线SPI模式IIC模式,模块是不支持读的,而且读-》改-》写的方式速度也比较慢。

所以我们采用的办法是在STM32F4的内部建立一个OLED的GRAM(共128*8个字节),在每次修改的时候,只是修改STM32F4 上的GRAM(实际上就是SRAM),在修改完了之后,一次性把STM32F4上的GRAM写入到OLED的GRAM。当然这个方法也有坏处,就是对于那些SRAM很小的单片机(比如51系列)就比较麻烦了。

电路板

oled驱动芯片需要烧录吗

通常情况下,OLED显示模块的驱动芯片是内置在模块中的,并不需要用户进行单独的烧录操作。驱动芯片已经被集成在OLED显示模块的电路板上,用户只需要将OLED模块与微控制器或其他主控设备连接好,按照相关的接口和协议进行通信,即可控制和使用OLED显示模块。

用户需要关注的是与OLED模块连接的主控设备(如Arduino、Raspberry Pi等)是否支持相应的驱动芯片和通信协议,以确保正常控制OLED显示模块。在一些特殊情况下,可能需要用户根据自身需求定制驱动程序或进行相关设置,但一般情况下不需要对OLED驱动芯片进行单独的烧录操作。

审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分