打印
[其他ST产品]

SSD1306(OLED驱动芯片)指令详解

[复制链接]
1649|71
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

基础命令:

1.页地址模式下设置列起始地址低位(Set Lower Column Start Address For Page Addressing Mode)(00h~0Fh)

此指令用于在页地址模式下设置GDDRAM的列起始地址(8位)的低4位, 页地址会在数据访


使用特权

评论回复
评论
在水一方00 2023-8-25 16:50 回复TA
———————————————— 版权声明:本文为CSDN博主「Wireless_Link」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/81329770 
沙发
在水一方00|  楼主 | 2023-8-25 16:49 | 只看该作者
2.页地址模式下设置列起始地址高位(Set Higher Column Start Address For Page Addressing Mode)(10h~1Fh)
此指令用于在页地址模式下设置GDDRAM的列起始地址(8位)的高4位, 页地址会在数据访问后递增

使用特权

评论回复
板凳
在水一方00|  楼主 | 2023-8-25 16:49 | 只看该作者
3.设置内存地址模式(Set Memory Addressing Mode)(20h)
在SSD1306中有三种地址模式: 页地址模式, 水平地址模式和垂直地址模式, 此命令用于将地址模式设置为以上三种之一
'COL'的含义是GDDRAM列(column)

使用特权

评论回复
地板
在水一方00|  楼主 | 2023-8-25 16:50 | 只看该作者
页地址模式(A[1:0]=10b)
当处于此模式时, 在GDDRAM访问后(读/写), 列地址指针将自动增加1。如果列地址指针到达列终止地址, 列地址指针将复位到列起始地址, 但页地址指针不会改变。

使用特权

评论回复
5
在水一方00|  楼主 | 2023-8-25 16:50 | 只看该作者
为了访问GDDRAM中下一页的内容, 用户必须设置新的页地址和列地址。页地址模式下页以及列地址指针的行为如下图所示

使用特权

评论回复
6
在水一方00|  楼主 | 2023-8-25 16:50 | 只看该作者
通常在页地址模式下访问GDDRAM, 需要如下步骤来定义起始RAM访问指针指向:
-通过命令(B0h-B7h)设置目标显示位置页起始地址
-通过命令(00h-0Fh)设置列起始地址低位
-通过命令(10h-1Fh)设置列起始地址高位

使用特权

评论回复
7
在水一方00|  楼主 | 2023-8-25 16:50 | 只看该作者
例如, 如果页地址是B2h, 列地址低位是03h, 列地址高位是10h, 起始列将为PAGE2的SEG3, GDDRAM访问指针的指向如下图所示

使用特权

评论回复
8
在水一方00|  楼主 | 2023-8-25 16:50 | 只看该作者

使用特权

评论回复
9
在水一方00|  楼主 | 2023-8-25 16:50 | 只看该作者
水平地址模式(A[1:0]=00b)
当处于此模式时, 在GDDRAM访问后(读/写), 列地址指针将自动增加1。如果列地址指针到达列终止地址, 列地址指针将复位到列起始地址, 且页地址指针将自动增加1。
水平地址模式下页以及列地址指针的行为如下图所示, 如果列地址指针和页地址指针都到达各自的终止地址时, 他们都将复位到各自的起始地址。(图中虚线)

使用特权

评论回复
10
在水一方00|  楼主 | 2023-8-25 16:50 | 只看该作者

使用特权

评论回复
11
在水一方00|  楼主 | 2023-8-25 16:51 | 只看该作者
垂直地址模式(A[1:0]=01b)
当处于此模式时, 在GDDRAM访问后(读/写), 页地址指针将自动增加1。如果页地址指针到达页终止地址, 页地址指针将复位到页起始地址, 且列地址指针将自动增加1。

使用特权

评论回复
12
在水一方00|  楼主 | 2023-8-25 16:51 | 只看该作者
垂直地址模式下页以及列地址指针的行为如下图所示, 如果列地址指针和页地址指针都到达各自的终止地址时, 他们都将复位到各自的起始地址。(图中虚线)

使用特权

评论回复
13
在水一方00|  楼主 | 2023-8-25 16:51 | 只看该作者

使用特权

评论回复
14
在水一方00|  楼主 | 2023-8-25 16:51 | 只看该作者
通常在(垂直/水平)地址模式下访问GDDRAM, 需要如下步骤来定义起始RAM访问指针指向:
-通过命令(21h)设置目标显示位置列起始地址以及列终止地址
-通过命令(22h)设置目标显示位置页起始地址以及页终止地址

使用特权

评论回复
15
在水一方00|  楼主 | 2023-8-25 16:51 | 只看该作者
4.设置列地址(Set Column Address)(21h)
此指令用于设置GDDRAM的列起始地址和列结束地址, 并使列地址指针(指向GDDRAM中当前访问的列地址)指向列起始地址。
若内存地址模式为水平地址模式, 在访问一列数据后, 列地址指针将增加到下一个列地址。当结束访问终止列地址时, 列地址指针将复位至列起始地址, 且行地址指针将增加到下一行。

使用特权

评论回复
16
在水一方00|  楼主 | 2023-8-25 16:51 | 只看该作者
5.设置页地址(Set Page Address)(22h)
此指令用于设置GDDRAM的页起始地址和页结束地址, 并使页地址指针(指向GDDRAM中当前访问的页地址)指向页起始地址。
若内存地址模式为垂直地址模式, 在访问一页数据后, 页地址指针将增加到下一个页地址。当结束访问终止页地址时, 页地址指针将复位至页起始地址。

使用特权

评论回复
17
在水一方00|  楼主 | 2023-8-25 16:52 | 只看该作者
下图展示了例子中列地址指针和页地址指针的移动方式: 列起始地址设为2, 列终止地址设为125, 页起始地址设为1, 页终止地址设为6, 并使用水平地址模式。

使用特权

评论回复
18
在水一方00|  楼主 | 2023-8-25 16:52 | 只看该作者
在此情况下, GDDRAM数据可范围范围在列2-列125, 页1-页6之内。同时列地址指针被设为2, 页地址指针被设为1。在访问数据后, 列地址自动增加1, 以访问下一数据(图中实线)
当结束访问终止列地址(125)时, 列地址指针复位到列2, 页地址指针自动增加1(图中实线), 当访问终止页地址6和终止列地址125所在数据后, 页地址指针复位到1, 列地址指针复位到2(图中虚线)

使用特权

评论回复
19
在水一方00|  楼主 | 2023-8-25 16:52 | 只看该作者

使用特权

评论回复
20
在水一方00|  楼主 | 2023-8-25 16:52 | 只看该作者
6.设置屏幕起始行(Set Display Start Line)(40h-7Fh)
此命令用于设置屏幕起始行寄存器以设置GDDRAM起始地址, 取值范围为[0, 63]。若值为0, 则RAM第0行映射至COM0, 若值为1, 则RAM第1行映射到COM0, 以此类推。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

567

帖子

0

粉丝