12.48inch e-Paper Module (B) 产品说明
| SKU | 产品 |
|---|---|
| 待补 | 12.48inch e-Paper Module (B) |
版本说明
- V2:硬件结构及接口与V1版本兼容,使用V2程序。如果您是第一次采购,并且屏幕背面带有V2标签,直接使用V2程序即可。
- V1:使用V1程序。
特点
- 尺寸: 12.48inch
- 外形尺寸(裸屏):261.40mm × 211.00mm × 1.20mm
- 外形尺寸(亚克力外壳):280.0mm x 229.5mm
- 显示尺寸:252.98mm × 190.90mm
- 工作电压:3.3V/5V
- 通信接口:SPI
- 点距:0.194mm × 0.194mm
- 分辨率:1304 x 984
- 显示颜色:黑、白、红
- 灰度等级:2
- 全局刷新 :37s
- 刷新功耗 : 82.5mW(typ.)
- 休眠电流 : <0.01uA(接近0)
- 工作温度 : 0 ~ 40 ℃
- 存储温度 : -25 ~ 60 ℃
【备注】:
刷新时间:刷新时间为实验测试数据,实际刷新时间会有误差,以实际效果为准。全局刷新过程中会有闪烁效果,这个是正常现象
刷新功耗:功耗数据为实验测试数据,实际功耗由于驱动板的存在和实际使用情况的不同,会有一定误差,以实际效果为准
在低温环境下进行刷新可能出现显示偏色,需要在25℃的环境中静止6小时后,在进行刷新。
SPI 通信时序

由于墨水屏只需要显示,这里将从机发,主机收的数据线(MISO)隐藏。
CS:从机片选,当CS为低电平的时候,芯片使能
DC:数据/命令控制引脚,当DC=0时写入命令;DC=1时写入数据
SCLK: SPI通信时钟
SDIN:SPI通信主机发送,从机接收
时序:CPHL=0, CPOL=0 (SPI0)
【备注】具体关于SPI通信的相关信息,可以自行网上搜索资料了解 PS:如果显示有出现错位或者分区不同步请尝试降低SPI速率
屏幕图片刷新实质
上面了解到屏幕使用的是SPI通信,对于此屏幕可能有些客户会觉得奇怪为什么会有两个排线?
对于此问题的解释就是该屏幕是由4块小屏幕拼接而成变得大尺寸屏幕,因此对应着4路片选信号。
- 刷新实质
简略图如下:

我们把四部分分别命名为S2,M2,M1,S1,他们在程序中是依次进行传输的。
其中S2,M1是同样大小的分辨率:648492,M2,S1是同样大小的分辨率:656492.
他们的横竖加起来分辨率就是:1304*984
- 控制原理
4个屏幕,那么他们就对应这4个SPI从机,所需要的控制线就是4个屏幕的总数:
一般SPI接口类显示屏具有以下4条控制线:MOSI,SCLK,CS,DC
然后需要最基本电源和复位:VCC,GND,RST
由于墨水屏的刷新特性,会一直闪烁,用于表示屏幕忙碌:BUSY
为了节省接口,其中4块屏幕共用VCC,GND,MOSI,SCLK;2块屏幕共用DC,RST
此时,重点来了,4块屏幕所需要电源线加控制线16条:

- 核心代码分析
屏幕要进行工作,一般都会进行复位并初始化一些相关的寄存器,然后传输图像数据,最后打开显示。
这里主要讲述传输图像数据:
对于黑白或者红白,我们都可以认为是一张二阶灰度图片,那么一个字节的8个位就对应8个像素点,那么S2部分和M1部分:一行像素点有648点,将占用648/8 = 81个字节,有492列,总共占用81 * 492 = 39852个字节。同理M2部分与S1部分:一行像素点有656点,将占用656/8 = 82个字节,有492列,总共占用82 * 492 = 40344个字节。
12.48inch e-paper的寄存器0x13和0x10分别用于控制黑色图片数据和红色图片数据的传输。
他们的关系如下:
| 颜色 | 0x10 | 0x13 |
|---|---|---|
| 白色 | 0xff | 0x00 |
| 黑色 | 0x00 | 0x00 |
| 红色 | 0xff/0x00 | 0xff |
下面以黑白屏为例子:
void EPD_12in48_Display(const UBYTE *Image)
{
int x,y;
//S1 part 648*492
EPD_S2_SendCommand(0x13);
for(y = 0; y < 492; y++)
for(x = 0; x < 81; x++) {
EPD_S2_SendData(*(Image + (y*163 + x)));
}
//M2 part 656*492
EPD_M2_SendCommand(0x13);
for(y = 0; y < 492; y++)
for(x = 81; x < 163; x++) {
EPD_M2_SendData(*(Image+ (y*163) +x));
}
//S1 part 656*492
EPD_S1_SendCommand(0x13);
for(y = 492; y < 984; y++)
for(x = 81; x < 163; x++) {
EPD_S1_SendData(*(Image+ (y*163) +x));
}
//M1 part 648*492
EPD_M1_SendCommand(0x13);
for(y = 492; y < 984; y++)
for(x = 0; x < 81; x++) {
EPD_M1_SendData(*(Image+ (y*163) +x));
}
EPD_12in48_TurnOnDisplay();
}
我们提供了基于4个硬件平台的示例程序,分别是Raspberry Pi, Arduino UNO, STM32以及ESP32。您可以根据自己的需求查看。