13.3inch e-Paper (E) 使用教程

说明

各项参数

尺寸13.3英寸
驱动板尺寸65.00 × 30.50mm
显示尺寸270.40 × 202.80mm
外形尺寸284.70 × 208.80 × 0.85mm
工作电压3.3V / 5V(IO电平电压要和供电电压一致)
通信接口SPI
点距0.169 × 0.169mm
分辨率1600 × 1200
显示颜色E6全彩色
灰度等级2
刷新时间19s
总刷新功耗< 0.5W(typ.)
工作温度0 ~ 40 ℃
存储温度-25 ~ 60 ℃
  • 刷新时间:刷新时间为实验测试数据,实际刷新时间会有误差,以实际效果为准。全局刷新过程中会有闪烁效果,这个是正常现象。
  • 刷新功耗:功耗数据为实验测试数据,实际功耗由于驱动板的存在和实际使用情况不同,会有一定误差,以实际效果为准。
  • 在低温环境下进行刷新可能出现显示偏色,需要在25℃的环境中静止6小时后,在进行刷新。

通信方式


CSB(CS):从机片选信号,低电平有效,为低电平的时候,芯片使能。
SCL(SCK/SCLK):串行时钟信号。
D/C(DC):数据/命令控制信号,低电平时写入命令(Command);高电平时写入数据(Data/parameter)。
SDA(DIN):串行数据信号。
时序:CPHL=0,CPOL=0,即 SPI 模式0。
【备注】具体关于SPI通信的相关信息,可以自行网上搜索资料了解。


工作原理

本产品使用的电子纸采用“微胶囊电泳显示”技术进行图像显示,其基本原理是悬浮在液体中的带电纳米粒子受到电场作用而产生迁移。电子纸显示屏是靠反射环境光来显示图案的,不需要背光,在环境光下,电子纸显示屏清晰可视,可视角度几乎达到了 180°。因此,电子纸显示屏非常适合阅读。


编程原理

  • 对于计算机来说,图片是由像素点构成的,而每一个像素点所占的空间大小就决定了这个像素点可能的状态(颜色)多少,最简单的黑白图片每个像素点只占一位(1Bit),不是0就是1非黑即白,随着颜色的增加,每一个像素点占用的空间越来越大,八位、十六位、二十四位……
  • 本模块使用的是一种非标准二十四位图,如果需要自己制作图片可以参考"图片处理"章节。
  • 对于黑白图片,我们可以规定,如果是黑色我们定义成0,如果是白色就定义成1,那么有了表示颜色的方式:
    • 白色:□,对应1
    • 黑色:■:对应0
  • 一个点在图形上一般称之为像素点(pixel),而颜色不是1就是0,也就是1个位就可以标识颜色:1Pixel = 1bit,那么一个字节里面就包含了8个像素点。
  • 以16个像素点为例,我们假设前8个像素点为黑,后8个像素点为白色,那么可以这么认为,像素点1-16,对应这0位到15位,0表示黑色,1表示白色:

  • 对于计算机而言,它的数据存储方式是高位在前,低位在后,且一个字节只有8个位,因此会有一点改变:

  • 这样只需要2个字节即可表示16个像素点了。
  • 现在假设我们有六种颜色,所以最少需要三位数据才能表示所有颜色,但为了方便运算我们在它前面加一个0,即用四位数据表示一个像素点的颜色,这样一个字节(1Byte)可以表示两个像素点。其实本模块的控制器使用的就是这种方式。


  • 以四个像素点为例,我们假设这四个点的颜色依次为黄、蓝、红、绿,结合上表,那么人的逻辑是这样的,依次存储:


  • 对于计算机而言,它的数据存储方式是高位在前,低位在后,且一个字节只有八位,因此存储在字节中是这样的:



注意事项

  1. 注意屏幕不能长时间上电,在屏幕不刷新的时候,要将屏幕设置成睡眠模式,或者进行断电处理。否则屏幕长时间保持高电压状态,会损坏膜片,无法修复。
  2. 使用墨水屏的时候,建议刷新时间间隔至少是180s, 并且至少每24小时做一次刷新,如果长期不使用墨水屏的话,要将墨水屏刷白存放。(具体储存环境需求参考数据手册)
  3. 屏幕进入睡眠模式之后,会忽略发送的图片数据,只有重新初始化才能正常刷新。
  4. 如果发现制作的图片数据在屏幕上显示错误,建议检查一下图片大小设置是否正确,调换一下宽度和高度设置再试一下。
  5. 墨水屏的工作电压要求是 3.3V,如果您购买的是裸屏的话,设计电路的时候如果需要配合 5V 工作环境的话,建议做一下电平转换处理。
  6. 屏幕的 FPC 排线比较脆弱,请注意:不要沿屏幕垂直方向弯曲排线,避免排线被撕裂;不要反复过度弯曲排线,避免排线断裂;不要往屏幕正面方向弯曲排线,避免排线与面板的连接断开。调试研发时建议固定排线后使用。
  7. 墨水屏屏幕较为脆弱,注意尽量避免跌落、碰撞、用力按压。
  8. 我们建议客户拿到屏幕之后,先用我们提供的示例程序,使用对应的开发板进行测试。



图片处理

多色墨水屏的图片制作与转换


图片制作

准备

所需软件:Adobe PhotoShop CC、画图

介绍

  • Floyd-Steinberg抖动算法非常适合在颜色数量很少的情况下,展示出丰富的层次感。使得获得更多的颜色组合,对原始图片进行更好的阴影渲染。特别适合电子墨水屏的各种使用场景。
  • 以下将介绍如何将普通图片转为Floyd-Steinberg散点图。
  • 如果你对实际的算法有兴趣,可以了解我们在ESP32ESP8266的算法移植。在这里不在赘述。

操作步骤

准备工作:将颜色表下载到PC机,解压得到如下图文件,我们要用到的是 N-color.act 或者 4-color.act。

1. 新建Photoshop工程,按电子墨水屏的实际分辨率设置宽度和高度,颜色模式使用RGB颜色。如果使用的屏幕分辨率为800*480,将宽改为800像素,高改为480像素即可。

2. 准备好相应的素材,复制到工程中,调整好大小、对比度之类的参数(和一般Photoshop的处理图片的步骤类似)。

3. 选择文件-》存储为Web和设备所用格式。

4. 如下图选择载入颜色表。载入准备工作中所提供的颜色表。

5. 对于七色的图片,载入N-color.act,之后点击存储,保存为gif文件即可。然后转换成BMP格式即可在本模块上使用。
对于四色的图片,载入4-color.act,之后点击存储,保存为gif文件即可。然后转换成BMP格式即可在本模块上使用。
对于六色的图片,载入6-color.act,之后点击存储,保存为gif文件即可。然后转换成BMP格式即可在本模块上使用。

6.使用画图打开gif文件,将其另存为为24位的bmp图片。

7.至此,图片已经制作完成,可以把它放到树莓派或e-Paper Shield模块的SD卡中使用,或者参照下一节转换成数组供其他嵌入式设备使用。


图片数据转换

下载程序

注:该应用为方便您的使用友情提供且开源,我司不对其提供技术支持

BUG解决

如果你的电脑是 win10/win11 系统,并且没有安装 VS(Microsoft Visual Studio)或者其他微软的开发工具,在使用本程序时可能出现下面的错误提示

这个表示你电脑中缺少这两个组件,解决办法如下
1、安装 VS(Microsoft Visual Studio)或者其他微软的开发工具(Visual C++ Redistributable 等)
2、使用我们提供的两个组件文件

将这两个文件放到目录 C:\Windows\System32 下,然后重启电脑即可


转换步骤

  • 将制作好的图片和对应的exe应用程序放在同一文件夹,可以同时放入多个图片。
  • 将图片拖放到exe文件上,程序会把图片转换成固定名称的.c文件。
  • 双击cmd文件,程序会把文件夹内的所有符合尺寸的图片转换生成相应名字的.c文件。



Raspberry Pi

硬件连接

连接树莓派的时候,可以直接将板子插到树莓派的 40PIN 排针上去,注意对好引脚。
如果是选择用 10PIN 排线连接的话,请参考下方的引脚对应表格:

树莓派连接引脚对应关系
e-PaperRaspberry Pi
BCM2835编码Board物理引脚序号
VCC3.3V3.3V
GNDGNDGND
DINMOSI19
CLKSCLK23
CS_MCE024
CS_SCE126
DC2522
RST1711
BUSY2418
PWR1812

树莓派前置设置

关闭SPI接口

  • 打开树莓派终端,输入以下指令进入配置界面:
sudo raspi-config
选择Interfacing Options -> SPI -> No 关闭SPI接口

  • 重启树莓派:
sudo reboot

config.txt 文件设置

使用命令

sudo nano /boot/config.txt

或者

sudo nano /boot/firmware/config.txt

打开对应的 config.txt 文件
在最后面添加

gpio=7=op,dl
gpio=8=op,dl

按下 Ctrl+ O(字母 O)保存
按下 Ctrl+ X 退出

  • 重启树莓派:
sudo reboot

运行C语言例程

  • 安装 BCM2835 (Pi4、zero等系列)
#打开树莓派终端,并运行以下指令:
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/
  • 安装 wiringPi (Pi5)
git clone https://github.com/WiringPi/WiringPi
cd WiringPi
./build
gpio -v
# 运行 gpio -v 会出现对应版本,如果没有出现,说明安装出错。
  • 下载程序(已下载可跳过)
https://www.waveshare.net/w/upload/e/e2/13.3inch_e-Paper_E.zip
unzip 4inch_e-Paper_E.zip -d 13.3inch_e-Paper_E
cd 13.3inch_e-Paper_E/RaspberryPi/

  • 备用解压方式
sudo apt-get install p7zip-full
7z x 13.3inch_e-Paper_E.zip -O./13.3inch_e-Paper_E
cd 13.3inch_e-Paper_E/RaspberryPi/

  • 通过 GitHub 下载程序(备用方式,已下载可跳过)

目前访问 GitHub 并不是很流畅,建议使用上面的方法从我们官网下载。

git clone https://github.com/waveshare/e-Paper.git
cd e-Paper/E-paper_Separate_Program/13.3inch_e-Paper_E/RaspberryPi/
  • 编译程序(说明:-j4 为使用4线程编译,数字可自行修改)
# 此时在 13.3inch_e-Paper_E/RaspberryPi_JetsonNano 位置
cd c
sudo make clean
# Pi4 使用BCM库进行驱动
sudo make -j4 USELIB=USE_BCM2835_LIB
# Pi5 使用wiringPi库进行驱动
sudo make -j4 USELIB=USE_WIRINGPI_LIB 
  • 运行程序
sudo ./epd

运行python例程

  • 安装函数库
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-numpy
sudo apt-get install python3-spidev

  • 安装函数库(python2)
sudo apt-get update
sudo apt-get install python-pip
sudo apt-get install python-pil
sudo apt-get install python-numpy
sudo apt-get install python-spidev
  • 下载程序(已下载可跳过)
https://www.waveshare.net/w/upload/e/e2/13.3inch_e-Paper_E.zip
unzip 4inch_e-Paper_E.zip -d 13.3inch_e-Paper_E
cd 13.3inch_e-Paper_E/RaspberryPi/

  • 备用解压方式
sudo apt-get install p7zip-full
7z x 13.3inch_e-Paper_E.zip -O./13.3inch_e-Paper_E
cd 13.3inch_e-Paper_E/RaspberryPi/

  • 通过 GitHub 下载程序(备用方式,已下载可跳过)

目前访问 GitHub 并不是很流畅,建议使用上面的方法从我们官网下载。

git clone https://github.com/waveshare/e-Paper.git
cd e-Paper/E-paper_Separate_Program/13.3inch_e-Paper_E/RaspberryPi/
  • 运行程序
# 确保在 13.3inch_e-Paper_E/RaspberryPi/ 位置
cd python/examples/
python3 epd_13in3e_test.py



Arduino

硬件连接

使用 10PIN 排线连接,请参考下方的引脚对应表格:

Arduino连接引脚对应关系
e-PaperArduino UNOMega2560
VCC5V5V
GNDGNDGND
DIND11D51
CLKD13D52
CS_MD10D10
CS_SD9D9
DCD8D8
RSTD7D7
BUSYD6D6
PWRD5D5

安装IDE

Arduino IDE Windows 安装教程

运行程序

  • 在资料界面下载程序,然后解压进入 13.3inch_e-Paper_E 目录可以看到下面的内容

E-paper arduino cede-R4-2.jpg

  • 打开测试程序:13.3inch_e-Paper_E\Arduino_R4\Arduino_R4.ino
  • 在 Arduino IED 中的工具栏(Tools)选择对应的开发板(Board)和端口(Port)

  • 最后点击上传即可,上传成功如下(Arduino 1.8.13)



STM32

硬件连接

使用 9PIN 排线连接,请参考下方的引脚对应表格:

STM32连接引脚对应关系
e-PaperSTM32
VCC3.3V
GNDGND
DINPA7
CLKPA5
CS_MPA4
CS_SPC4
DCPA2
RSTPA1
BUSYPA3
PWRPA6

运行程序

  • 点击下载程序,然后解压进入 13.3inch_e-Paper_E 目录可以看到下面的内容


  • 使用 Keil 打开 13.3inch_e-Paper_E\STM32-F103ZET6\MDK-ARM 目录下的 epd-demo.uvprojx
  • 打开 Keil 的编译工具栏(一般情况已经打开了)


  • 点击编译。

E-paper stm32 cede3.jpg

  • 确保已连接合适的烧录器,然后点击下载(LOAD)将程序下载到单片机中

ESP32

硬件连接

STM32连接引脚对应关系
e-PaperESP32
VCC3.3V
GNDGND
DINIO14
CLKIO13
CS_MIO15
CS_SIO2
DCIO27
RSTIO26
BUSYIO25
PWRIO33

环境配置

在线安装需要使用翻墙软件,离线安装则无需使用

运行程序

  • 在资料界面下载程序,然后解压进入 13.3inch_e-Paper_E 目录可以看到下面的内容


  • 打开测试程序:13.3inch_e-Paper_E\ESP32\ESP32.ino


  • 在 Arduino IED 中的工具栏(Tools)选择对应的开发板(Board)和端口(Port)


  • 最后点击上传即可。



FAQ


软件问题

问题:STM32 驱动墨水屏,MDK 编译显示空间不够?

  • 我们例程使用的是 STM32f103ZET6,如果客户在 MDK 中修改其他的型号,例如 STM32F103RBT6,RAM 空间变小了,需要在原基础上修改启动文件中的 stack size 和 heap size。


问题:关于 datasheet 的问题。字库什么时候传输 Data Start Transmission 1,什么时候用 Data Start Transmission 2?

  • 在需要传输 B/W 数据时,使用 Data Start Transmission 1;在传输 RED 数据时,使用 Data Start Transmission 2


问题:电子墨水屏上无法显示中文?

  • 我们的例程的中文字库是使用 GB2312 的编码方式,请将您的 xxx_test.c 文件改成 GB2312 编码格式编译下载后即可正常显示。


问题:e-Paper 显示黑边框?

  • 可以通过 Border Waveform Control 寄存器或者 VCOM AND DATA INTERVAL SETTING 寄存器设置边框显示颜色。


问题:多个位置局刷,局刷几次后字体偏浅?

  • 这种情况需要客户减少局刷位置并且在局刷5次后进行一次清屏。


问题:墨水屏在 deep sleep mode 时,第一次唤醒画面刷新会有不干净的问题,请问如何解决?

  • 电子墨水屏重新唤醒的过程,实际是重新上电的过程,所以 EPD 在 wake up 时,要先进行清屏的动作,这样才能最大程度地避免残影现象。


问题:测试程序时,程序一直卡在 e-Paper busy?

  • 可能是 SPI 驱动不成功导致的:
    • 1.先检查接线是否正确。
    • 2.在检查 SPI 是否开启,参数是否配置正确。(波特率、模式等参数)


问题:为什么局刷后再全刷无法显示图像?

  • 墨水屏从局刷切换为全刷时需要加入全刷初始化函数。


问题:为什么运行 python 程序时打印信息正常但墨水屏没有反应?

  • 可能是之前运行过C语言的基于 BCM2835 库的例程,此时需要重启树莓派再运行 python 例程。


问题:运行 python 程序的时候报错 ImportError: No module named Image?

  • 使用指令 "sudo apt-get install python-imaging" 安装一下 imaging 函数库。



硬件问题

问题:Arduino 5V 能不能驱动墨水屏?

  • 可以,现在已经板载了电平转换芯片,支持 5V 驱动。


问题:设计驱动板要注意什么?

  • 墨水屏额定输入电压是 2.3~3.6V,如果是 5V 系统需要做电平转换,另外电压最好不要低于 2.5V,以免影响墨水屏显示效果。
  • 器件选型可以使用我们提供的原理图中的型号或者根据数据手册选择都是可以的。


问题:可以使用模拟 SPI 吗?

  • 可以,注意需要时序正确。


问题:为什么 BUSY 引脚一直处于忙状态?

  • 确认 SPI 通信是否正常。
  • 确认 BUSY 引脚是否正常初始化为输入模式。
  • 可能是没有正常复位,尝试缩短复位时低电平的持续时间。(因为驱动电路加入了断电开关,复位低电平过长会导致驱动板断电导致复位失败)
  • 如果判忙函数有发送 0x71 命令,可以尝试注释掉。


问题:屏幕排线接口是什么规格?

  • 1.64inch、2.36inch、3inch,为0.5mm 间距,26Pin
  • 1.02inch,为0.5mm 间距,30Pin
  • 4.37inch、7.3inch,为0.5mm 间距,50Pin
  • 其余(非并口),为0.5mm 间距,24Pin。


问题:墨水屏使用的是什么型号的连接器?

  • 排线插座 0.5-XXpin 后翻盖式 2.0H(FPC连接器)。



屏幕问题

问题:电子墨水屏的使用环境?

  • 【工作条件】温度范围:0~40°C(七色屏幕为: 15~35°C);湿度范围:35%~65%RH。
  • 【存储条件】:温度范围:30°C以下; 湿度范围:55%RH 以下;存储最长时间:6个月。
  • 【运输条件】:温度范围:-25~50°C;运输最长时间:10天。
  • 【拆包后】:温度范围:20°C±5°C; 湿度范围:50±5%RH;存储最长时间:72小时内完成组装。


问题:电子墨水屏刷新注意事项

  • 刷新模式:
    • 全刷:电子墨水屏在刷新过程中会闪烁多次(闪烁次数取决于刷新时长),闪烁是为了清除残影达到最佳的显示效果。
    • 局刷:电子墨水屏在刷新过程中无闪烁效果。使用局刷功能的用户注意在刷新几次之后,要进行一次全刷操作清除残影,否则残影问题会越来越严重,甚至损坏屏幕。(目前只有部分黑白电子墨水屏支持局刷,具体参考产品页面说明)
  • 刷新频率:
    • 使用过程中,建议客户设置电子墨水屏的刷新间隔至少为180秒。(支持局刷功能的产品除外)
    • 待机过程(即刷新操作后)建议客户将电子墨水屏设置为睡眠模式,或者断电操作(可以将墨水屏供电部分用模拟开关断开), 降低功耗并且延长电子墨水屏寿命。(部分电子墨水屏如果长时间处于上电状态的话,会出现屏幕损坏无法修复的情况
    • 多色电子墨水屏在使用的过程中,建议客户至少每24小时更新一次显示画面。(如果屏幕长时间保持同一个画面,会出现烧屏情况难以修复)
  • 使用场所:
    • 电子墨水屏建议是在室内使用,不建议在户外使用。
    • 如果使用场景是在户外,我们不保证其显示效果,如果因为是在户外使用导致出现的墨水屏损坏,我们不提供保修服务
    • 以下是一些户外使用的防护,我们不保证做好这些防护后墨水屏可以正常使用
      • 避免电子墨水屏受阳光直射,同时要做好紫外线防护措施,因为带电粒子长时间在强光的照射下会发干,导致失去活性无法刷新,这种情况是不可逆的。
      • 在墨水屏连接排线上面白胶部分,使用3M胶将其完全覆盖,完全覆盖与不加,在紫外线下是有不同反应的。
      • 将墨水屏放在相对阴凉的区域,如树荫底下、屋檐阴影下面
    • 在设计电子墨水屏产品的时候,客户注意要确定好使用环境是否满足电子墨水屏的要求。


问题:电子墨水屏的刷新次数是多少/使用寿命是多少?

  • 理想情况下,正常使用,可以刷新 1000000次(100万次)。


问题:使用一段时间之后屏幕刷新(全刷)出现严重残影问题无法修复?

  • 长时间上电开发板,在每次刷新操作之后,建议将屏幕设置为睡眠模式或者直接断电处理,否则屏幕长时间处于高电压状态下可能烧坏屏幕。


问题:墨水屏进入深入睡眠模式后,是否可以再次刷新?

  • 可以,但是需要用软件重新做电子纸初始化操作。


问题:为什么显示图像偏移

  • 可能 SPI 速率过高,导致数据丢失,尝试降低 SPI 速率。
  • 供电不足或者电源不稳定导致数据丢失。
  • 数据线过长导致数据丢失,延长线最好不要超过20cm。


问题:什么是电子墨水屏的波形文件,有什么作用?

  • 电泳电子纸的显示灰阶由粒子在微胶囊或者微杯的空间位置所决定,黑色粒子与白色粒子在电压的作用下发生电泳现象,这种促使粒子发生电泳运动的电压时序就是电子纸的驱动波形。驱动波形为电子纸显示器的核心部分,对驱动波形的优化将直接影响显示器的显示效果。而驱动波形文件是用来说明促使粒子发生电泳运动的电压时序而形成的参数,在电子纸刷新时需要定期被调用。
  • 不同批次的电子纸膜片,电泳矩阵因为材料、制作工艺等原因,在驱动显示时所需电压值会有所差异,反映在灰度与电压、温度关系的就是电子墨水屏的波形。一般来说,每一批次的电泳矩阵生成后,会有相应的波形文件,以 .wbf 文件形式存在,由膜片生产商将波形文件和电泳矩阵提供给生产电子纸屏的厂家,再由生产电子纸屏厂家集成保护板、基板和驱动器以后提供给客户;如果波形文件和屏幕不对应,很可能造成无法显示或者显示效果不理想。一般出厂时波形文件已经 OTP 内置于墨水屏的驱动 IC 内,并且我们提供的部分程序也有调用外部的波形文件来驱动电子墨水屏。


问题:LUT和OTP代表什么意思?

  • LUT 是 LOOK UP TABLE 的缩写,OTP 是 ONE TIME PROGRAM 的缩写,LUT 本意就是加载波形文件,而波形文件分 OTP 和 REGISTER 两种,其中 OTP 为内置波形存储方式,REGISTER 为外置波形存储方式。


问题:电子纸的局刷过程?

  • 主要有两种类型的墨水屏:
    • 一种是先刷背景图。
    • 另外一种是交替刷新旧数据和新数据。


问题:如何在不同位置同时局刷?

  • 在不同位置同时局刷需要在程序设计进行操作,即先把不同位置的数据刷到电子纸 IC 内,最后统一做好 Updata/TurnOnDisplay。


问题:三色e-Paper有色差偏红/黄的情况?

  • 是的,e-Paper 在批量时,会有一些色差,这属于正常现象。把 e-Paper 正面朝上存放,可在一定程度上减小偏红/黄的现象。


问题:裸屏产品出货时是否有表面覆膜?

  • 有覆膜。


问题:请问e-Paper内置温度传感器吗?

  • 目前所有屏幕都有内置温度传感器,也可以使用 IIC 管脚外置 LM75 温度传感器。



开发时可能遇到的问题

问题:树莓派程序编译并且运行了,但是墨水屏没有反应

  • 在树莓派 config.txt 文件中没有添加对应代码,请参考树莓派前置操作进行配置


问题:树莓派对墨水屏进行一次刷新后,无法对墨水屏进行第二次刷新

  • 在进行第一次刷新的时候,强行终止了墨水屏的刷新
  • 在刷新结束后,没有进入睡眠模式,直接切断了电源


问题:STM32、ESP32、Arduino 等主控板驱动墨水屏时,无法驱动,并且主控板还在不断重启

  • 供电不够,该墨水屏与驱动板在运行时需要的电流相对较大,建议使用 3.3V/1A 以上的电源对其供电



技术支持

周一-周五(9:30-6:30)周六(9:30-5:30)

手机:13434470212

邮箱:services04@spotpear.cn

QQ:202004841



[教程导航]