匿名
未登录
登录
丢石头百科
搜索
查看“模板:1.3inch-Memory-LCD-Manual”的源代码
来自丢石头百科
名字空间
模板
讨论
更多
更多
页面选项
查看
查看源代码
历史
←
模板:1.3inch-Memory-LCD-Manual
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== 产品概述 == * 本产品是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,具体见下图: [[File:1.3inch-Memory-LCD-Manual-00.jpg]] *之后的字节是显示数据+16位空数据结尾+固定的延迟时间 *最后以拉低片选结束通信 === 数据更新模式(1 line) === 仅更新一条指定行的数据(M0="H"、M2="L") [[File:1.3inch-Memory-LCD-Manual-01.jpg]] *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") [[File:1.3inch-Memory-LCD-Manual-02.jpg]] 该模式与数据更新模式(1 line) 基本相同,差异主要是在数据传输周期,在传输第二行数据时,第二行的地址被锁存,第一行的数据会同时写到内部存储器中。 === 显示模式 === 保持内部存储器(保持当前显示)(M0="L"、M2="L") [[File:1.3inch-Memory-LCD-Manual-03.jpg]] M0:模式标志。设为"L",显示模式(保持内部存储器数据) === 清屏模式 === 清除内部存储器数据并写入白色(M0="L"、M2="H") [[File:1.3inch-Memory-LCD-Manual-04.jpg]] M2:清除所有标志,设为"H",清除内部存储器数据并写入白色。 == 引脚描述 == {| class="wikitable" |- ! 引脚号 !! 标识 !! 描述 |- | 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) 硬件连接如下表: {| class="wikitable" |- ! 引脚号 !! 标识 !! 树莓派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 |} 1.连接如下图如示: [[File:1.3inch-Memory-LCD-Manual-06.jpg]] 2.开启树莓派的SPI: <syntaxhighlight lang="c"> nano /boot/config.txt 去掉注释'#', dtparam=spi=on 如果用过电阻触屏, 如ads7843等,由于会占用SPI接口,需要添加注释:#dtoverlay=ads7846 reboot重启树莓派 </syntaxhighlight> 3.安装bcm2835 C 函数库,我们提供了 bcm2835 的安装包([[:File:bcm2835-1.58.tar.gz|点此下载]]),用户也可以到 bcm2835 官网下载最新版本: http://www.airspayce.com/mikem/bcm2835/ 复制安装包到树莓派系统中,执行如下代码: <pre> tar zxvf bcm2835-x.xx.tar.gz cd bcm2835-x.xx ./configure make sudo make check sudo make install </pre> 安装完成。 4.通过github获取相应的代码,在执行相应的命令运行Demo程序。此过程需要联网。 <pre> git clone https://github.com/waveshare/MemoryLCD.git cd MemoryLCD/ make sudo ./mem_lcd </pre> 可以看到1.3inch Memory LCD开始显示相关的图形、图像和文字。 其中: *demo.h , demo.c 为示例程序 *MemoryLCD.h , MemoryLCD.c为液晶屏的驱动代码 *pic.c 图片取模的数组 *ugui*.* 使用了一个开源图形库uGUI == 配合Arduino使用 == 1) 硬件连接如下表: {| class="wikitable" |- ! 引脚号 !! 标识 !! 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或其它兼容版本。 1.连接如下图如示: [[File:1.3inch-Memory-LCD-Manual-07.jpg]] 这里我们使用的是UNO PLUS作为主板,由于本身支持3.3V或5V逻辑电平,在使用时需要把跳线帽接到5V逻辑电平上。Arduino UNO R3则可跳过此步。 2.选择高版本的ArduinoIDE软件。可以在[https://www.arduino.cc/en/Main/Software arduino官方]下载最新版本的编译软件。为了方便使用,这里提供了[https://pan.baidu.com/s/1PUqqZQrp3se8EVItjI3YjQ arduino-1.8.8]。下载后,直接解压即可运行。 3.下载[[File:1.3inch_Memory_LCD_code.7z|示例程序]],将压缩包中的Memory-LCD文件夹放入:"C:\Users\用户名\Documents\Arduino\libraries"文件夹中。 该路径也可以在ArduinoIDE的文件-》首选项-》项目文件夹位置中查看。 打开压缩包中的MonoDemo文件夹,从MonoDemo.ino启动ArduinoIDE。编译下载后,可以看到1.3inch Memory LCD开始显示相关的图形和图像。 == 配合STM32主板使用 == 1) 硬件连接如下表: {| class="wikitable" |- ! 引脚号 !! 标识 !! 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 |} 2.下载[[File:1.3inch_Memory_LCD_code.7z|示例程序]],使用Keil-IDE打开工程文件,编译下载后,可以看到1.3inch Memory LCD开始显示相关的图形、图像和文字。
返回至
模板:1.3inch-Memory-LCD-Manual
。
导航
导航
首页
最近更改
随机页面
MediaWiki帮助
首页
首页
树莓派
主机
配件包
外壳
键鼠
电源
扩展板
显示屏
墨水屏
摄像模块
通信模块
继电器
电机驱动板
游戏机
产品分类
树莓派
Arduino
micro:bit
STM32
Espressif
WiFi模块
蓝牙模块
无线模块
LoRa模块
4G模块
GSM
GPRS
以太网
导航模块
北斗卫星
GPS
LCD
墨水屏
OLED
摄像头
USB模块
串口模块
RS232
RS485
CAN
传感器
温度模块
湿度模块
气压模块
继电器
电机模块
指纹模块
电平转换
音频模块
编程器
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志