1.3inch Memory LCD
说明
| ||||||||||||||||||||||||
| ||||||||||||||||||||||||
产品概述
- 本产品是memory LCD,1.3英寸,分辨率为144×168,带有内部存储器,使用SPI接口通信。
- 相比普通LCD,memory LCD具有超低功耗的优点
- 相比e-paper,memory LCD刷新率更高,并且不会有残影问题
产品特点
- 144×168分辨率,对比度高,显示更清晰
- 使用SPI控制,确保不会占用太多接口引脚资源
- 低功耗,宽视角,在阳光下也可正常显示
产品参数
- 屏幕类型:Memory LCD
- 支持接口:SPI
- 显示颜色:黑白
- 分 辨 率:144 × 168
- 可视区域:20.88mm × 24.36mm
- 工作电压:3.3V / 5V
- 功 耗:1mW(typ.)
工作原理
1.3inch Memory LCD有别于通常的黑白LCD或SPI接口的TFT,它具有以下几个显著的特点:
- 其本身没有驱动IC,驱动电路刻蚀在LCD的ITO上
- 内部不带有显示RAM,对主机来看,它是一个write only的器件,因此画面缓存必须要由主机实现
- 缓存整屏数据需要144×168/8 = 3024bytes, 而Arduino Uno R3只有2K的RAM, 我们在PCB上放了一个SPI接口的SRAM芯片(23LC1024)来帮助缓存显示数据
- 数据的更新只能以"行"为单位进行,哪怕只想反转显示一个像素,也必须缓存整行数据,并修改相应像素的数据,再把整行数据更新给Memory LCD,当然也可以更新好整帧数据缓存, 再更新一帧显示
通信时序概述
Memory LCD系列产品的SPI协议大致相同。
- 每一次通讯的开始都需要拉高片选,之后接一个固定的延迟时间
- 第一个字节表明这次通讯需要Memory LCD使用哪种模式
- 第二个字节表明后面发送的数据更新的行地址。注意:行地址是从1开始计数而不是从0开始,格式为LSB,具体见下图:
- 之后的字节是显示数据+16位空数据结尾+固定的延迟时间
- 最后以拉低片选结束通信
数据更新模式(1 line)
仅更新一条指定行的数据(M0="H"、M2="L")
- M0:模式标志。设为"H",数据更新模式(内部存储器数据更新)。设为"L",显示模式(保持内部存储器数据)
- M1:帧反转标志。设为"H",输出VCOM为"H"。设为"L",输出VCOM为"L"。当EXTMODE为"H",该位可以是"H"或"L"。1.3inch Memory LCD硬件已将EXTMODE拉高。
- M2:清除所有标志,设为"H",清除内部存储器数据并写入白色。
- DUMMY DATA:虚拟数据,该位可以是"H"或"L",推荐设为"L"
- 数据写入周期,数据以二进制格式存储在第一个锁存块中
- 数据传输周期,写在第一个锁存块中的数据被写到内部存储器中
- M1:当EXTMODE为"L",帧翻转标志被使能
- 当SCS为"L"时,M0和M2被清除
数据更新模式(多行 line)
更新任意多行数据(M0="H"、M2="L")
该模式与数据更新模式(1 line) 基本相同,差异主要是在数据传输周期,在传输第二行数据时,第二行的地址被锁存,第一行的数据会同时写到内部存储器中。
显示模式
保持内部存储器(保持当前显示)(M0="L"、M2="L")
M0:模式标志。设为"L",显示模式(保持内部存储器数据)
清屏模式
清除内部存储器数据并写入白色(M0="L"、M2="H")
M2:清除所有标志,设为"H",清除内部存储器数据并写入白色。
引脚描述
引脚号 | 标识 | 描述 |
---|---|---|
1 | VCC | 电源正(3.3V或5V电源输入) |
2 | GND | 电源地 |
3 | MISO | 模块SPI数据输出 |
4 | MOSI | 模块SPI数据输入 |
5 | SCLK | 模块SPI时钟输入 |
6 | LCD_CS | Memory LCD片选信号 |
7 | RAM_CS | SPI RAM片选信号 |
8 | DISP | 显示开/关信号 |
9 | EIN | 外部Vcom信号 |
配合树莓派使用
1) 硬件连接如下表:
引脚号 | 标识 | 树莓派BCM引脚号 |
---|---|---|
1 | VCC | 3.3V |
2 | GND | GND |
3 | MISO | N.C. |
4 | MOSI | 10 (MOSI) |
5 | SCLK | 11(SCLK) |
6 | LCD_CS | 23 |
7 | RAM_CS | 3.3V |
8 | DISP | 24 |
9 | EIN | 25 |
2.开启树莓派的SPI:
nano /boot/config.txt 去掉注释'#', dtparam=spi=on 如果用过电阻触屏, 如ads7843等,由于会占用SPI接口,需要添加注释:#dtoverlay=ads7846 reboot重启树莓派
3.安装bcm2835 C 函数库,我们提供了 bcm2835 的安装包(点此下载),用户也可以到 bcm2835 官网下载最新版本:
http://www.airspayce.com/mikem/bcm2835/
复制安装包到树莓派系统中,执行如下代码:
tar zxvf bcm2835-x.xx.tar.gz cd bcm2835-x.xx ./configure make sudo make check sudo make install
安装完成。
4.通过github获取相应的代码,在执行相应的命令运行Demo程序。此过程需要联网。
git clone https://github.com/waveshare/MemoryLCD.git cd MemoryLCD/ make sudo ./mem_lcd
可以看到1.3inch Memory LCD开始显示相关的图形、图像和文字。
其中:
- demo.h , demo.c 为示例程序
- MemoryLCD.h , MemoryLCD.c为液晶屏的驱动代码
- pic.c 图片取模的数组
- ugui*.* 使用了一个开源图形库uGUI
配合Arduino使用
1) 硬件连接如下表:
引脚号 | 标识 | Arduino引脚标识 |
---|---|---|
1 | VCC | 5V |
2 | GND | GND |
3 | MISO | D12 |
4 | MOSI | D11 |
5 | SCLK | D13 |
6 | LCD_CS | D7 |
7 | RAM_CS | D9 |
8 | DISP | D8 |
9 | EIN | D6 |
注:由于Arduino的主板版本很多,这里特指Arduino UNO R3或其它兼容版本。由于Arduino UNO R3默认的逻辑电平是5V,所以VCC连接到5V电源上。对于某些逻辑电平是3.3V的主板,则VCC需要连接到3.3V上。另外我们提供的DEMO程序只支持Arduino UNO R3或其它兼容版本。
这里我们使用的是UNO PLUS作为主板,由于本身支持3.3V或5V逻辑电平,在使用时需要把跳线帽接到5V逻辑电平上。Arduino UNO R3则可跳过此步。
2.选择高版本的ArduinoIDE软件。可以在arduino官方下载最新版本的编译软件。为了方便使用,这里提供了arduino-1.8.8。下载后,直接解压即可运行。
3.下载示例程序,将压缩包中的Memory-LCD文件夹放入:"C:\Users\用户名\Documents\Arduino\libraries"文件夹中。
该路径也可以在ArduinoIDE的文件-》首选项-》项目文件夹位置中查看。
打开压缩包中的MonoDemo文件夹,从MonoDemo.ino启动ArduinoIDE。编译下载后,可以看到1.3inch Memory LCD开始显示相关的图形和图像。
配合STM32主板使用
1) 硬件连接如下表:
引脚号 | 标识 | STM32引脚标识 |
---|---|---|
1 | VCC | 3.3V |
2 | GND | GND |
3 | MISO | N.C. |
4 | MOSI | PA7 |
5 | SCLK | PA5 |
6 | LCD_CS | PA8 |
7 | RAM_CS | 3.3V |
8 | DISP | PA9 |
9 | EIN | PC7 |
资料
文档
程序
软件
数据手册