1.9inch Segment e-Paper Module Manual
| ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
说明
各项参数
尺寸 | 1.9英寸 |
驱动板尺寸 | 51mm × 34 mm |
显示尺寸 | 41.35mm × 28.11 mm |
外形尺寸(裸屏) | 49.35mm × 32.11mm × 1.13 mm |
工作电压 | 3.3V / 5V(IO电平电压要和供电电压一致) |
通信接口 | IIC |
段码 | 91段 |
显示颜色 | 黑、白 |
灰度等级 | 2 |
局刷时间 | 0.3s |
刷新时间 | 1.5s |
刷新功耗 | < 5 mW(typ.) |
休眠电流 | < 0.01uA(接近0) |
- 刷新时间:刷新时间为实验测试数据,实际刷新时间会有误差,以实际效果为准。全局刷新过程中会有闪烁效果,这个是正常现象。
- 刷新功耗:功耗数据为实验测试数据,实际功耗由于驱动板的存在和实际使用情况不同,会有一定误差,以实际效果为准。
- IIC地址:默认使用0x3c和0x3d
指令传输地址:0x3c/0x3e 数据传输地址:0x3d/0x3f
IIC 通信协议
从上面功能引脚表得知使用的是I2C通信,I2C 通信,一条数据线,一条时钟线。 I2C 总线在传送数据过程中共有三种类型信号:开始信号、结束信号和应答信号。
开始信号:SCL 为高电平时, SDA 由高电平向低电平跳变,开始传送数据。
结束信号:SCL 为高电平时, SDA 由低电平向高电平跳变,结束传送数据。
应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据。
- I2C写数据时序
首先主机(即树莓派,后面统称为主机)会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机(即 TSL2581 传感器模块,后面统称为从机),从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机发送命令寄存的值,从机回应一个响应信号,直到主机发送一个停止信号,此次 I2C 写数据操作结束
- I2C读数据时序
首先主机会发送一个开始信号,然后将其 I2C 的 7 位地址与写操作位组合成 8 位的数据发送给从机,从机接收到后会响应一个应答信号,主机此时将命令寄存器地址发送给从机,从机接收到发送响应信号,此时主机重新发送一个开始信号,并且将其 7 位地址和读操作位组合成 8 位的数据发送给从机,从机接收到信号后发送响应信号,再将其寄存器中的值发送给主机,主机端给予响应信号,直到主机端发送停止信号,此次通信结束。
- 1.9inch Segment e-Paper IIC 地址
命令地址 : 0x3C
数据地址 : 0x3D
工作原理
- 本产品使用的电子纸采用“微胶囊电泳显示”技术进行图像显示,其基本原理是悬浮在液体中的带电纳米粒子受到电场作用而产生迁移。电子纸显示屏是靠反射环境光来显示图案的,不需要背光,在环境光下,电子纸显示屏清晰可视,可视角度几乎达到了 180°。因此,电子纸显示屏非常适合阅读。
编程原理
- 对于黑白图片,我们可以规定,如果是黑色我们定义成0,如果是白色就定义成1,那么有了表示颜色的方式:
- 白色:□ 对应1
- 黑色:■ 对应0
- 白色:□ 对应1
- 一个点在图形上一般称之为像素点(pixel),而颜色不是1就是0,也就是1个位就可以标识颜色:1Pixel = 1bit,那么一个字节里面就包含了8个像素点。
- 以16个像素点为例,我们假设前8个像素点为黑,后8个像素点为白色,那么可以这么认为,像素点1-16,对应这0位到15位,0表示黑色,1表示白色:
对于计算机而言,它的数据存储方式是高位在前,低位在后,且一个字节只有8个位,因此会有一点改变:
这样只需要2个字节即可表示16个像素点了。
1.9inch Segment e-Paper 的编程原理与上面介绍的基本一致,只不过每一个像素点的大小不一样而已
段码表
数字对应表(不带小数点)
0 :0xbf, 0x1f
1 :0x1f(1号位置),0x00,0x1f(其他位置)
2 :0xfd, 0x17
3 :0xf5, 0x1f
4 :0x47, 0x1f
5 :0xf7, 0x1d
6 :0xff, 0x1d
7 :0x21, 0x1f
8 :0xff, 0x1f
9 :0xf7, 0x1f
小数点和 % 分别是4号、8号、10号位置的第5位
13号位置可以显示摄氏度(0x05)和华氏度(0x06),第0位为最下面一横,第1位为中间一横,第2位为其它的显示,第3位显示蓝牙标识,第4位显示电源标识,14号没用
注意事项
- 支持局刷的屏幕,注意使用的时候不能一直用局刷对屏幕进行刷新,需要在做几次局刷之后,对屏幕进行一次全刷清屏。否则会造成屏幕显示效果异常,无法修复!
- 注意屏幕不能长时间上电,在屏幕不刷新的时候,要将屏幕设置成睡眠模式,或者进行断电处理。否则屏幕长时间保持高电压状态,会损坏膜片,无法修复!
- 使用墨水屏的时候,建议刷新时间间隔至少是180s, 并且至少每24 小时做一次刷新,如果长期不使用墨水屏的话,要将墨水屏刷白存放。(具体储存环境需求参考数据手册)
- 屏幕进入睡眠模式之后,会忽略发送的图片数据,只有重新初始化才能正常刷新
- 墨水屏的工作电压要求是3.3V,如果您购买的是裸屏的话,设计电路的时候如果需要配合5V 工作环境的话,建议做一下电平转换处理。新版本(V2.1和后续版本)加入了电平处理电路,可以同时支持3.3V 和5V 工作环境, 老版本只能支持3.3V 工作环境,使用的时候可以先确认一下版本。(PCB 上带有20脚芯片的一般是新版本)
- 屏幕的FPC 排线比较脆弱,注意使用的时候沿屏幕水平方向弯曲排线,不可以沿屏幕垂直方向弯曲排线
- 墨水屏屏幕较为脆弱,注意尽量避免跌落,碰撞,用力按压。
- 我们建议客户拿到屏幕之后,先用我们提供的示例程序,使用对应的开发板进行测试
Raspberry Pi
硬件连接
连接树莓派的时候,可以直接将板子插到树莓派的 40PIN 排针上去,注意对好引脚。
e-Paper | Raspberry Pi | |
BCM2835编码 | Board物理引脚序号 | |
VCC | 3.3V | 3.3V |
GND | GND | GND |
SDA | SDA.1 | 3 |
SCL | SCL.1 | 5 |
RST | 4 | 7 |
BUSY | 17 | 11 |
开启I2C接口
- 打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 选择Interfacing Options -> I2C -> Yes 开启I2C接口
sudo reboot
运行C语言例程
- 安装 lg 库
#打开树莓派终端,并运行以下指令: wget https://github.com/joan2937/lg/archive/master.zip unzip master.zip cd lg-master make sudo make install # 更多的可以参考源码:https://github.com/gpiozero/lg
- 安装 BCM2835(可选)
#打开树莓派终端,并运行以下指令: 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/
- 下载程序(已下载可跳过这一步)
wget https://www.waveshare.net/w/upload/f/f6/E-Paper-Segment-Code.zip unzip E-Paper-Segment-Code.zip -d E-Paper-Segment-Code cd e-Paper/RaspberryPi/
- 备用解压方式
sudo apt-get install p7zip-full 7z x E-Paper-Segment-Code.zip -O./E-Paper-Segment-Code cd e-Paper/RaspberryPi/
- 编译程序(说明:-j4 为使用4线程编译,数字可自行修改)
# 此时在 e-Paper/RaspberryPi 位置 cd c sudo make clean sudo make -j4
- 运行程序
sudo ./main
运行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-smbus
- 安装函数库(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-smbus
- 下载程序(已下载可跳过这一步)
wget https://www.waveshare.net/w/upload/f/f6/E-Paper-Segment-Code.zip unzip E-Paper-Segment-Code.zip -d E-Paper-Segment-Code cd e-Paper/RaspberryPi/
- 备用解压方式
sudo apt-get install p7zip-full 7z x E-Paper-Segment-Code.zip -O./E-Paper-Segment-Code cd e-Paper/RaspberryPi/
- 运行程序
# 确保在 e-Paper/RaspberryPi/ 位置 cd python/1in9_E-paper sudo python3 main.py
Arduino
硬件连接
e-Paper | Arduino UNO | Mega2560 |
Vcc | 5V | 5V |
GND | GND | GND |
SDA | SDA | SDA |
SCL | SCL | SCL |
RST | D8 | D8 |
BUSY | D7 | D7 |
安装IDE
运行程序
- 在资料界面下载程序,然后解压进入 E-Paper_code 目录可以看到下面的内容:
- 打开测试程序:E-Paper-Segment-Code\Arduino\EPD_1in9\EPD_1in9.ino
- Arduino IDE 中选择好板子后编译下载即可。
STM32
硬件连接
e-Paper | STM32 |
VCC | 3.3V |
GND | GND |
SDA | PB9/D14 |
SCL | PB8/D15 |
RST | PA9/D8 |
BUSY | PA8/D7 |
运行程序
- 在资料界面下载程序,然后解压进入 E-Paper_code 目录可以看到下面的内容:
- 解压后找到 STM32 程序文件目录,打开 E-Paper-Segment-Code\STM32\epd-segmented-demo\MDK-ARM 目录下的 epd-segmented-demo.uvprojx,即可看到程序。
- 在 main.c 中取消对应函数的注释:
// EPD_1in9_test();
改为
EPD_1in9_test();
- 然后编译下载即可。
资料
文档
程序
相关链接
FAQ
软件问题
- 使用指令sudo apt-get install python-imaging 安装一下imaging函数库
- 这种情况需要客户减少局刷位置并且在局刷5次后进行一次清屏(提高VCOM的电压可以改善颜色,但是带来是残影加重)。
- 电子墨水屏重新唤醒的过程,实际是重新上电的过程,所以EPD在wake up时,要先进行清屏的动作,这样才能最大程度地避免残影现象。
- 可能是I2C驱动不成功导致的
- 1.先检查接线是否正确
- 2.在检查I2C是否开启,参数是否配置正确(I2C的波特率,I2C模式等参数)
硬件问题
- 可以,现在已经板载了电平转换芯片,支持3.3V驱动
- 墨水屏额定输入电压是2.3~3.6V,如果是5V系统需要做电平转换,另外电压最好不要低于2.5V,以免影响墨水屏显示效果
- 器件选型可以使用我们提供的原理图中的型号或者根据数据手册选择都是可以的
- 可以,注意需要时序正确
- 确认I2C通信是否正常
- 确认BUSY引脚是否正常初始化为输入模式
- 可能是没有正常复位,尝试缩短复位时低电平的持续时间(因为驱动电路加入了断电开关,复位低电平过长会导致驱动板断电导致复位失败)
- 如果判忙函数有发送0x71命令,可以尝试注释掉
屏幕问题
- 【工作条件】温度范围:0~50°C ;湿度范围:35%~65%RH
- 【存储条件】:温度范围:30°C以下; 湿度范围:55%RH以下;存储最长时间:6个月
- 【运输条件】:温度范围:-25~70°C ;运输最长时间:10天
- 【拆包后】:温度范围:20°C±5°C ; 湿度范围:50±5%RH;存储最长时间:72小时内完成组装
- 刷新模式
- 全刷:电子墨水屏在刷新过程中会闪烁多次(闪烁次数取决于刷新时长),闪烁是为了清除残影达到最佳的显示效果
- 局刷:电子墨水屏在刷新过程中无闪烁效果。使用局刷功能的用户注意在刷新几次之后,要进行一次全刷操作清除残影,否则残影问题会越来越严重,甚至损坏屏幕(目前只有部分黑白电子墨水屏支持局刷,具体参考产品页面说明)
- 刷新频率
- 使用过程中,建议客户设置电子墨水屏的刷新间隔至少为180秒(支持局刷功能的产品除外)
- 待机过程(即刷新操作后)建议客户将电子墨水屏设置为睡眠模式,或者断电操作(可以将墨水屏供电部分用模拟开关断开), 降低功耗并且延长电子墨水屏寿命。(部分电子墨水屏如果长时间处于上电状态的话,会出现屏幕损坏无法修复的情况)
- 使用场所
- 电子墨水屏建议是在室内使用。如果在户外使用,需要避免电子墨水屏受阳光直射,同时要做好紫外线防护措施,因为带电粒子长时间在强光的照射下会发干,导致失去活性无法刷新,这种情况是不可逆的。在设计电子墨水屏产品的时候,客户注意要确定好使用环境是否满足电子墨水屏的要求
- 理想情况下,正常使用,可以刷新1000000次(100万次)
- 长时间上电开发板,在每次刷新操作之后,建议将屏幕设置为睡眠模式或者直接断电处理,否则屏幕长时间处于高电压状态下可能烧坏屏幕
- 可以,但是需要用软件重新做电子纸初始化操作。
- 电泳电子纸的显示灰阶由粒子在微胶囊或者微杯的空间位置所决定,黑色粒子与白色粒子在电压的作用下发生电泳现象,这种促使粒子发生电泳运动的电压时序就是电子纸的驱动波形。驱动波形为电子纸显示器的核心部分,对驱动波形的优化将直接影响显示器的显示效果。而驱动波形文件是用来说明促使粒子发生电泳运动的电压时序而形成的参数,在电子纸刷新时需要定期被调用。
- 不同批次的电子纸膜片,电泳矩阵因为材料、制作工艺等原因,在驱动显示时所需电压值会有所差异,反映在灰度与电压、温度关系的就是电子墨水屏的波形。一般来说,每一批次的电泳矩阵生成后,会有相应的波形文件,以.wbf 文件形式存在,由膜片生产商将波形文件和电泳矩阵提供给生产电子纸屏的厂家,再由生产电子纸屏厂家集成保护板、基板和驱动器以后提供给客户;如果波形文件和屏幕不对应,很可能造成无法显示或者显示效果不理想。一般出厂时波形文件已经OTP内置于墨水屏的驱动IC内,并且我们提供的部分程序也有调用外部的波形文件来驱动电子墨水屏。
其他问题
- 0.5mm间距,8Pin。
- 排线插座 0.5-8pin 后翻盖式 2.0H(FPC连接器)
- 墨水屏从局刷切换为全刷时需要加入全刷初始化函数
- 可能是之前运行过C语言的基于BCM2835库的例程,此时需要重启树莓派再运行python例程