你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何在 4 灰度级 E-Paper 上显示 STM32 嵌入式存储器中尺寸优化的图片

[复制链接]
STMCU小助手 发布时间:2022-7-13 10:48
前言
本应用笔记描述了如何优化黑白图像的大小以将其存入 STM32 微控制器的嵌入式闪存,以及如何在 E-Paper 显示器上显示它们。
本应用笔记中说明了如何准备和编码黑白图像,并给出了对图像解压缩、将其在 4 灰度级的E-Paper 显示器上显示出来的软件解决方案。
STM32 微控制器可连接 E-Paper 显示器,使用特定外设向 E-Paper 显示器控制器发送数据 /命令,并驱动特定 GPIO 来管理 E-Paper 控制引脚。
本应用笔记和相关软件 (STSW-STM32152)都是基于 STM32L053 探索套件32L0538DISCOVERY),提供了嵌入式 E-Paper 显示器。对于任意一款 STM32 微控制器客户板,经过微小改动 (时钟配置, GPIO 定义),可以很容易地重复利用。
E-Paper 显示器的显示区域为 2.1 英寸,包含 172x72 个像素,具有 2 比特完全显示能力。
关于本应用笔记中未说明的 E-Paper 功能,更多详细信息请参考 ST 网站上的 GDE021A1规范。

U]Z6C`%@4BH993SWYNADD5L.png

1. 可用产品、工具 & 软件
类型 参考产品
STM32 嵌入式软件
STSW-STM32152
STM32 MCU 评估工具
32L0538DISCOVERY



1 实现示例
1.1 概述
本应用笔记中的示例提供了连接某个 E-Paper 与 STM32 微控制器的典型硬件和软件实现基
本知识。
一般来说,系统包括:
一个 STM32 微控制器
一个 E-Paper 显示器,其外部元件用于 E-Paper 显示器驱动器 (嵌入到GDE021A1 E-Paper 显示模块中)的电荷泵。


)QLU6@4JA%OP2OW_TJAX@{K.png


E-Paper 显示模块经由 SPI 接口连接到 STM32 MCU 来接收数据和命令,配置显示器并将图片传输到 E-Paper 模块内部 RAM 缓冲器中。
图片存储到内部 Flash 程序存储器中,以减少外部资源。包括 4 张图片以演示 STM32L053的主要特性。图片会循环显示,当第 4 张图片已经在 E-Paper 模块上显示出来时,又返回第一张图片。
注: 如果嵌入式闪存的空间很小,不能满足应用代码和图片库的需求,那么图片可存储在外部存储器中 (比如 SD 卡或外部闪存)。这种情况下,通常没有必要缩小图片尺寸,也不需要使用本应用笔记中给出的扩展算法。由于图片无任何预处理就被发送到 EPD 的缓冲区,因此缩短了数据处理时间。

1.2 STM32 配置
一般要求
样例主要基于 STM32L053 探索套件,但其功能和结构说明与大多数应用和平台类似。

1.2.1 SPI 外设
MCU 和 E-Paper 显示器之间的通信使用 SPI 协议。 MCU 将 SPI 配置为主 8 位模式, NSS由软件管理。这里不需要 CRC。 E-Paper 显示模块可只通过 SPI 通道写入。 这是为什么定义 MOSI 线而不是定义 MISO 线的原因。
用来通信的频率是 2 MHz,开始 HSI 设为 16 MHz,在 SPI 波特率发生器中应用系数为 8 的预分频器 (将其分频为 2 MHz)。

1.2.2 系统时钟
应用笔记中将高速内部振荡器设置为系统时钟。时钟路径上没有分频器, APB 和 AHB 总线频率为 16MHz。


1.2.3 使用特定的 GPIO 控制 E-Paper 显示器。
利用一些特定信号来控制 E-Paper 显示器:
EPAPER_Reset:此信号由 MCU 产生,用来复位 E-Paper 寄存器,并清除任何正在进行的刷新。
EPAPER_D/C:数据/命令线。此输出由MCU生成,使E-Paper显示模块能够识别SPI发送的数值是命令还是数据。
EPAPER_CS:这是芯片选择引脚。此输出由 MCU 生成,用来使能嵌入到 E-Paper 显示模块中的 SPI 从设备。
EPAPER_Busy:此信号来自 E-Paper 显示模块,用来向 MCU 报告该模块的状态。当软件启动刷新时,BUSY 位将被置位,E-Paper 显示器上不能有更多操作(不再有命令或数据),以避免显示错误。
EPAPER_Power_switch:此GPIO用来控制为E-Paper显示模块上电/掉电的模拟开关,以节约应用的功耗。

1.3 E-Paper 显示器配置
用于 STM32L053 探索套件的 E-Paper 显示器是可配置的。建议参考 E-Paper 说明 (型号GDE021A1),以便能更好地理解此应用笔记处理 E-Paper 模块所采用的方法。
编码图片的数据通过 MCU 的 SPI 外设被填充到 E-Paper 模块的内部 RAM (请参考2Ram 地址映射)。
每次写操作后,根据 E-Paper 模块的配置, RAM 地址递增或递减。地址计数器可沿 X 或 Y方向更新。对于 X、 Y 坐标系,可独立配置每个轴的开始 / 结束地址。
对于本应用笔记,模块配置为沿 X 方向从 0 至 71 递增地址计数器,然后沿 Y 方向从 0 递增至 171。


W}MS}Q@DPE%NG82ZPLS1)[Q.png


此应用笔记中所采用的配置在更新操作后无需使 E-Paper 显示模块进入深度睡眠模式。这意味着 RAM 数据保持在两个更新刷新周期之间。
当没有正在进行的更新时,如果应用需要降低功耗,可以配置 E-Paper 使其处于深度睡眠模式。于是功耗可以降低为 1/10 (降至 2 µA),但是这种情况下无法保持 RAM 内容。这种情况的缺点是部分图片不能刷新显示,在刷新显示之前,整个图片的所有像素必须通过 SPI 重新加载到 RAM 中。
这里使用的波形查阅表 (Waveform Look Up Table, LUT)(默认的,无温度范围)。详情请参见 GDE021A1 规范。


U4YLD`JX3_4GQ8TDXKAU~.png

MQ95OA`{`4TMSKKRDE`5V(K.png


每个 RAM 地址存储 4 个像素,每个像素以 4 灰度级进行编码。 STM32 的 SPI 配置为以高位在前的方式来设置传输,如 E-Paper 显示模块所要求的。
图片需要按这些限制进行编码。详情请参见1.4 节:图片创建和尺寸压缩

1.4 图片创建和尺寸压缩
要在 E-Paper 模块上显示的图片须以巧妙的方式创建,以得到适当格式的相应软件常数。它应该易于处理并在 E-Paper 模块上显示。
此图片存储在 STM32L053 的内部非易失性 Flash 程序区。因此图片必须以特定格式进行压缩,编码为 1 比特每像素,以节省存储空间。这样,图片将被编码为黑白的而不再是 4 灰度级的图片。
由于 E-Paper 显示器 RAM 模块需要接收 2 比特每像素编码模式,因此需要从图片存入非易失性 Flash 程序存储器开始进行扩展处理。此操作将由软件管理 (请参考章节1.5 节:片数据扩展,以载入嵌入式 E-Paper RAM

1.4.1 图片帧
图片帧可进行编辑,例如采用 Windows 中有名的 “ 画板 ” 软件。首先须编辑空白图片 (如4:图片帧中)。空白帧为 172x72 像素。


%OADLAQ3$X_$$_A_U}SB}0L.png



然后必须将要显示的图片放入此帧中。如果要在图片中出现文本,可使用专门字体 “ 小字体 ”,它提供了简便的文本显示。
本应用笔记的示意图片显示在5 4 张图片显示在 E-Paper 显示器上中。


9RKV7({5`QU0$ASR_GV%F@2.png


为了在编码图片 (以一种简便方式,可最小化数据处理)时得到常数,可将图片向右旋转90° (6图片向右 90° 旋转)。这样,如7 中所示,编码成常数的字节数量将对所有像素进行编码,且为全帧像素总数的整数倍。


W9]7T53K`X(T]O[_I6`L9(Q.png

然后,必须利用 PAINT 将每张图片存储为 .bmp 图片格式和单色位图类型。
为了直接得到编码要显示图片的 C-constant,可将图片存储为 XBM-X11 格式,例如可使用免费软件 Xnview。这里是进行这种操作后得到的文件格式 (7 C 常数编码图片帧)。此常数可在 C 项目中直接使用和声明。


{HON%2{95_95)F(S_F63.png


利用此图片格式可将每张图片的大小减少 1/2,意味着图片大小为 1.5KB,而不是 4 灰度级模式下的 3KB。

完整版请查看:附件





DM00117749_ZHV1.pdf

下载

781.08 KB, 下载次数: 1

收藏 评论0 发布时间:2022-7-13 10:48

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版