常见的OLED模块驱动芯片,不同的驱动芯片具有不同的特点和适用场景,具体选择应根据显示屏的分辨率、接口类型和功能需求来确定。
OLED(有机发光二极管)显示模块的驱动芯片种类繁多,常见的一些驱动芯片包括:
1. SSD1306:常用于128×64和128×32分辨率的OLED显示屏,具有低功耗、SPI和I2C接口等特点。
2. SSD1351:适用于彩色OLED显示屏,支持高分辨率显示,具有SPI接口和高速刷新率。
3. SH1106:常用于128×64和128×32分辨率的OLED显示屏,支持SPI和I2C接口,低功耗高对比度。
4. UC1701:应用于128×64和128×32分辨率的OLED显示屏,具有低功耗、SPI和I2C接口以及图形显示功能。
5. ST7735:适用于彩色OLED显示屏,支持SPI接口,具有高分辨率和快速刷新速度。
6. SH1107:用于分辨率为128×64和128×32的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驱动芯片进行单独的烧录操作。