ATK-MB022模块用户手册
ATK-MB022 OLED模块是正点原子推出的一款高性能显示模块,设计紧凑,屏幕尺寸为0.96寸,具有高亮度、自带升压电路等显著特点。该模块分辨率为128*64像素,确保显示效果清晰细腻。模块内部集成了SSD1306驱动IC,进一步提升了显示性能和稳定性。ATK-MB022 OLED模块支持IIC通讯接口,兼容性强,便于集成到各种通讯环境中,适用于多个嵌入式应用场景,如物联网设备、便携式显示器、信息显示板等。
ATK-MB022 OLED模块的各项基本参数,如下表所示:

表1.1 ATK-MB022 OLED模块基本参数
ATK-MB022 OLED模块的各项电气参数,如下表所示:

表1.2 ATK-MB022 OLED模块电气参数
ATK-MB022 OLED模块通过1*4排针(2.54mm间距)与外部设备连接,用户可以方便地使用杜邦线将模块连接到开发板的IIC接口进行驱动。针对正点原子大部分的STM32开发板,我们都提供了该模块的相应例程,用户可以直接在这些开发板上进行模块测试,快速上手并验证模块功能。
ATK-MB022 OLED模块的外观,如下图所示:

图2.1.1 ATK-MB022 OLED模块实物图
ATK-MB022 OLED模块的原理图,如下图所示:

图2.1.2 ATK-MB022 OLED模块原理图
ATK-MB022 OLED模块通过一个1*4的排针同外部电路连接,各引脚的详细描述,如下表所示:

表2.1.1 ATK-MB022 OLED模块引脚说明
ATK-MB022 OLED模块采用SSD1306控制器,该控制器支持多种通讯接口。然而,ATK-MB022 OLED模块专门设计为仅支持IIC通讯接口,原因在于IIC接口使用的引脚数量最少,接线简洁,方便用户快速集成和使用。本小节将重点介绍IIC通讯接口的使用方法。若需了解其他通讯接口模式的详细信息,请参考SSD1306控制器的数据手册。
OLED模块的IIC地址可以通过配置SA0引脚(即D/C引脚)来选择。
l 当SA0引脚接低电平时,模块的IIC地址为“0111100”,其对应的7位地址0x3C;
l 当SA0引脚接高电平时,模块的IIC地址为“0111101”,其对应的7位地址0x3D;
在ATK-MB022 OLED模块中,SA0引脚连接到GND,因此其IIC地址为“0111100”,对应的7位IIC地址为0x3C。在IIC通信中,程序通常使用8位地址格式。这是通过将7位地址左移一位并在最低位添加读/写位来实现的。具体来说,当7位地址为0x3C时,左移一位后得到8位地址0x78,这个8位地址用于IIC总线上与OLED模块进行通信。
ATK-MB022 OLED模块在IIC模式下仅支持数据和命令的写入操作,而不支持数据读取。下图展示了写入数据和命令的时序图:

图2.2.1.1 IIC模式写操作时序图
① 发送起始信号 (S):
IIC总线通信始于起始条件。起始条件由主设备发出,即SCL保持高电平时,SDA线从高电平拉至低电平。这标志着一次IIC通信的开始,所有从设备都会侦听总线。② 地址传输 (Slave Addres):
主设备接着发送7位从设备地址。在ATK-MB022 OLED模块的默认配置下,这个地址为0x3C,左移一位后变成8位地址0x78。
随后发送一个读/写位(R/W位),表示接下来的操作类型。对于写入操作,R/W位为0。从设备接收地址并作出响应(即应答信号),拉低SDA线表示应答(ACK)。③ 控制字节传输 (Co + D/C#):
在发送完地址后,主设备发送一个控制字节。这一字节用于区分数据类型,是数据字节还是命令字节。控制字节通常包含一个Co位(继续传输位)和一个D/C#位(数据/命令位)。D/C#位为0表示命令,为1表示数据。④ 数据或命令传输 (Data/Command Transmission):
接下来,主设备依次发送多个数据字节或命令字节。每个字节传输后,从设备会在下一个SCL脉冲后发送一个应答信号(ACK),表示正确接收。数据字节用于更新OLED显示内容,命令字节用于控制OLED的操作(如清屏、设置显示模式等)。⑤ 停止条件 (P):
当所有数据或命令字节传输完成后,主设备发出停止条件。停止条件是由SCL保持高电平时,SDA线从低电平拉至高电平产生的。
停止条件标志着一次IIC通信的结束,从设备将释放总线供其他操作使用。
ATK-MB022 OLED模块的控制器SSD1306内部显存大小为128*64bit,并且被分成了8页(PAGE0~PAGE7),每一页的大小为128*8bit(128字节),用于控制单色最大128*64像素的屏幕,其对应关系,如下表所示:

表2.3.1 控制器SSD1306内存显存与屏幕像素的对应关系
以PAGE2为例,PAGE2中的显存数据与屏幕像素点的对应关系,如下图所示:

图2.3.1 PAGE2中的显存数据与屏幕像素点的对应关系
可以看出,显存中的1字节数据对应了屏幕上的8个像素,当往控制器SSD1306显存的某一页的某一列写入1数据,那么将会同时修改显存中这一页的这一列对应屏幕上的8个像素。如果只想修改屏幕上某一个像素的状态,那么通常可以采用读、修改、写或外部微控制器内建显存的方式,但要注意的是,在ATK-MB022 OLED使用SPI或IIC通讯接口模式时,是无法读取控制器SSD1306的数据的,因此,在此情况下建议使用外部微控制器内建显存的方式,如果是对于RAM资源不足的外部微控制器,则建议使用8位6800或8位8080通讯接口模式,以减少对RAM空间的占用。
控制器SSD1306的指令比较多,可以参考SSD1306控制器的数据手册,本小节仅介绍一些比较常用的指令,如下表所示:

表2.4 控制器SSD1306常用指令
ATK-MB022 OLED模块的尺寸结构,如下图所示:

图3.1 ATK-MB022 OLED模块尺寸图
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70040860/viewspace-3081882/ ,如需转载,请注明出处,否则将追究法律责任。