描述
4.2 英寸电子墨水屏模块应用指南
在当前的电子显示领域,电子墨水屏以其独特的优势崭露头角。今天要和大家分享一款 4.2 英寸电子墨水屏模块的详细信息,包含其特点、参数、使用方法等内容,希望能为大家在项目设计中提供一些参考。
文件下载:4.2inch e-Paper Module.pdf
产品概述
这款 4.2 英寸电子墨水屏模块分辨率达 400x300,内部自带控制器,采用 SPI 接口通信。它具备许多突出优点,比如能耗极低、视角宽广,即使在阳光直射下也能清晰显示内容,在货架标签、工业仪表等显示应用场景中十分常见。
产品特点剖析
- 断电记忆:该模块无需背光,在断电状态下可长时间保持最后一屏的显示内容,这一特性在需要持续显示信息且对能耗有严格要求的场景中非常实用。
- 超低功耗:其功耗极低,基本只有在刷新屏幕时才会消耗电能,这对于一些使用电池供电的设备来说,可以大大延长电池的使用寿命。
- 接口通用性:采用 SPI 控制接口,能够方便地接入 Raspberry、Arduino、Nucleo 等常见的主控板,为开发者提供了更多的选择和便利。
- 完善资料支持:还提供了完善的配套资料手册,包含 Raspberry、Arduino、STM32 等示例程序,降低了开发者的开发难度。
产品参数详情
| 参数 |
详情 |
| 工作电压 |
3.3V |
| 通信接口 |
3 - wire SPI、4 - wire SPI |
| 外形尺寸 |
90.1mm × 77.0mm × 1.18mm |
| 显示尺寸 |
84.8mm × 63.6mm |
| 点距 |
0.212 × 0.212 |
| 分辨率 |
400 × 300 |
| 显示颜色 |
黑、白 |
| 灰度等级 |
2 |
| 刷新功耗 |
26.4mW(typ.) |
| 待机功耗 |
<0.017mW |
| 可视角度 |
>170° |
接口说明
| 接口 |
定义 |
| VCC |
3.3V |
| GND |
GND |
| DIN |
SPI 通信 MOSI 引脚 |
| CLK |
SPI 通信 SCK 引脚 |
| CS |
SPI 片选引脚(低电平有效) |
| DC |
数据 / 命令控制引脚(高电平表示数据,低电平表示命令) |
| RST |
外部复位引脚(低电平复位) |
| BUSY |
忙状态输出引脚(低电平表示忙) |
工作原理解读
器件
该产品使用的电子纸采用“微胶囊电泳显示”技术实现图像显示。其基本原理是悬浮在液体中的带电纳米粒子在电场作用下产生迁移。电子纸显示屏依靠反射环境光来显示图案,无需背光,即使在阳光下也能清晰可视,可视角度接近 180°,非常适合阅读。
通信协议
- 片选控制:CS 用于从机片选,只有当 CS 为低电平时,模块才会开始工作。
- 数据/命令控制:DC 负责模块的数据/命令控制,当 DC 为低电平时,接收到的数据会被当作指令执行。
- 时钟与数据传输:SCLK 是 SPI 通信时钟,SDIN 用于数据传输,采用主发从收模式。SPI 通信有特定的数据传输时序,由时钟相位(CPHA)与时钟极性(CPOL)组合而成。本模块工作于 CPHA = 0,CPOL = 0 的模式,即 SCLK 第一个下降沿开始传输数据,一个时钟周期传输 8bit 数据,使用 SPI0,按位传输,高位在前,低位在后。
使用方法
用于树莓派
用于 Arduino
- 硬件连接:将模块按照指定方式连接到开发板 UNO PLUS。
- 上传程序:把示例程序包中 arduino/libraries 目录下的文件复制到指定位置,然后点击 Upload 上传工程。上传完成后,屏幕将显示图像,刷新同样需要约 2 秒钟。
用于 STM32 开发板
- 硬件连接:将模块连接到 STM32F103ZE 开发板。
- 编译与下载:打开 Keil 工程,点击 Build 编译,再点击 Download 将工程写入芯片。开发板复位后,屏幕将显示图像,刷新时间约 2 秒。
代码分析
下面以基于树莓派 WiringPi 的函数库示例程序为例进行驱动代码分析。
- 硬件接口函数:驱动代码中的 DigitalWrite、DigitalRead、SendCommand、SendData、DelayMs 等函数调用硬件设备提供的接口函数,实现 IO 电平控制、读取、发送 SPI 命令和数据以及毫秒延迟等功能。移植示例程序时,需根据目标硬件实现 epdif 文件中的所有接口。需要注意的是,树莓派使用硬件片选,传输数据时会自动置 CS 管脚为低电平;而 Arduino 和 STM32 等设备则需要在代码中显式设置。
- 发送命令和数据:SendCommand 和 SendData 分别用于向模块发送命令和数据。发送命令时,设置 D/C 管脚为低电平,数据会被当作命令执行;发送数据时,设置 D/C 管脚为高电平,数据为普通数据,通常是命令后面的参数或图像数据。
- 复位操作:RST 为低电平时,模块复位,用于模块上电或进入睡眠模式后重启。重启后可能需要通过初始化函数 Init 对模块进行初始化。
- 初始化流程:Init 函数用于模块上电或从睡眠模式唤醒后对模块参数进行配置。初始化流程包括 reset -> power setting -> booster soft start -> power on -> panel setting -> PLL control。
- LUT 表设置:模块存储了 look - up table,可能因不同批次有所不同,如有改动会尽快更新示例程序。
- 显示一帧图像:DisplayFrame 函数用于给模块发送一帧图像并刷新屏幕。流程包括分辨率设置、VCM DC 设置、VCOM 和数据间隔设置等,发送图像数据前需先发送一帧全白图像数据,发送完图像数据后必须发送 LUT 表。不支持灰度显示,1 byte 对应 8 个像素,位设置代表像素颜色。
- 睡眠模式:Sleep 函数可让模块进入睡眠模式以降低功耗。进入睡眠模式后,如需唤醒模块,建议使用 Init 函数,而非 Reset 函数。
显示图片的方法
直接显示
通过库函数直接读取图片数据进行解码,并转换成对应的数组发送给模块。其具体实现可参考树莓派 Python 库示例程序。
间接显示
- 用 Windows 画图工具新建 400x300 像素的图片,将其转换为单色位图。
- 使用 Image2Lcd.exe 软件打开图片,设置输出数据类型为 C 语言数组、扫描模式为水平扫描、输出灰度为单色等参数。
- 点击保存生成对应的.c 文件,将数组复制到工程中调用显示。
总之,这款 4.2 英寸电子墨水屏模块以其独特的优势和丰富的功能,为电子工程师在设计显示系统时提供了一个很好的选择。在使用过程中,只要掌握了其特点、参数和使用方法,就能充分发挥其性能。大家在实际应用中是否遇到过类似模块的其他问题呢?不妨一起交流探讨。
打开APP阅读更多精彩内容