0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于eInk Click电路板的墨水显示屏驱动装置

454398 来源:一板网 作者:阿哲 2020-10-22 13:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在本文中,我们将使用LPC55S69开发板和墨水屏制作一个气象站项目,并且在墨水显示屏(E-INK)上显示温度、湿度和大气压,这样我们就可以将其放在办公室的窗台上,

在项目中,我们选择了MikroElekronika公司的eInk Click电路板(MIKROE-2659)作为该显示屏的驱动。墨水屏有一个非常吸引人的功能,那就是断电保持图像。我打算关断显示屏电源,在每1分钟采样博世BME280环境传感器的数据后,将NXP LPC55S69设置为低功耗模式。该项目基于NXP LPC55S69-EVK开发板,由于该开发板自带有一个Mikroe连接器,因此可以将eInk Click电路板直接插入到EVK开发板中。墨水屏我们选择的型号是OKdo E1电路板。

OKdo E1电路板和eInk Click电路板之间的连接非常简单:它们之间采用的是SPI连接(eInk电路板没有MISO信号返回)、BUSY信号和Data / Command D /〜C信号。我使用了MCUXpresso SDK SPI驱动程序和两个GPIO信号作为控制信号。此eInk显示屏需要大约一秒钟的时间才能将图像从其显示RAM传输到显示面板,并且在此传输过程中将BUSY信号设置为高电平。在此期间,显示IC将不接受任何新命令或数据。而且,与我使用的所有基于SPI的显示屏器一样,主机微控制器会设置或清零控制线“Data / Command D /〜C”,并发出信号告知当前SPI字是命令字还是数据。

eInk Click电路板接口信号:SPI、BUSY、D /〜C

使用MCUXpresso SDK SPI驱动程序函数SPI_MasterTransferBlocking()写入eInk显示屏。显示屏包括72 x 172个像素,每个像素都能够显示4种灰度颜色之一:白色(0b11)、灰色2(0b10)、灰色1(0b01)或黑色(0b00)。因此,共有12384个像素,如果我们将4个像素的颜色存储在一个字节中,则意味着每次屏幕刷新我们将传输3096字节的数据(加上该块之前的5个字节的控制字(将RAM X地址计数设置回零、RAM Y地址计数回到171),并在数据传输后4字节)。所有技术细节均在MikroElektronika发布的数据表epa20-ae.pdf 中。我在“横向”模式下使用屏幕。左上角的像素是像素[0,171]。当我们过渡到屏幕右侧时,列数递减为0,而当我们向下过渡屏幕时,列数递增为71,这意味着右下角的像素为[71,0]。

下面以气象站页面顶部中心的“云”符号为例。这是一个位图文件,在将传输到显示屏之前,它会写入LPC55S69内部的屏幕缓冲区中。

历史记录界面由以下各个部分组成:

● 字体:从MCUXpresso SDK中的LittleVGL图形库中获取;

● 符号(“电池充电”符号来自LittleVGL,而“温度”和“云”符号是我创建的位图);

● 最后,可以将显示最近7天最高/最低温度和大气压力趋势的框和线直接直接绘制到屏幕上。

为了以正确的方向显示位图,必须进行一些操作。以下是实现步骤。

1)设计位图

在开始嵌入式工作之前,我们需要在Microsoft Powerpoint中模拟一些界面。这样我们将可以看到屏幕的显示方式,并轻松地移动项目。 Powerpoint的另一个优点是它具有图标库,因此我能够为屏幕选择“温度”和“天气”图标。

2)导出温度和天气符号,并调整大小

Powerpoint支持以多种格式导出幻灯片 – 我使用位图格式,然后裁剪输出,以便仅显示天气符号。有许多工具可用于调整位图的大小并将其缩小为4色灰度(我使用了GIMP)。前面我提到我们将在一个字节中存储4个垂直像素,因此我将符号的大小调整为20像素宽和16像素高。

显示20×16像素的图像(很小),因此我在上图中进行了拉伸。它的大小约为1 KB,20×16像素和2位灰度色(白色、两个灰度和黑色)。

3)格式转换

位图存储为行数组,每行宽20像素,共有16行。但是,当我们写入屏幕时,必须将数据写入列中。一种解决方案是将位图绕其对角线轴翻转:左上角的像素保持在同一位置,右上角的像素变为左下角的像素,依此类推上。考虑将图像顺时针旋转90度,然后围绕垂直轴镜像是最简单的方法,如下所示:

如果您仔细查看“之前”和“之后”图片,您会发现,当我们将第一张_row_从旋转的位图写入eInk屏幕上的一列时,我们将显示16像素的白色列。下一行将生成另一列16个白色像素,位图的第三行将云的边缘写入eInk屏幕上的一列。当我们从位图的行中读取并在屏幕上写入列时,最终将按预期显示天气符号。

4)转换为字符数组

网络上有许多位图到数组的转换器。比如:https://lvgl.io/tools/imageconverter。最终,我们得到一个看起来像这样的数组:

天气符号数组

我们可以读取数组的前两行(第26和27行),并观察到它们是4个字节的0xFF。将白色编码为0b11,我们可以看到有两行16像素的白色。云边缘的第一个像素被编码为0b10(0xF8中的“ 8”,第28行)为浅灰色(GREY2)。

5)在屏幕上显示

我编写了一个小测试程序以在eInk屏幕上显示天气符号。就像从数组weather_symbol_cloudy_grey2 []中读取每一行并将其写入LPC55S69内部的屏幕缓冲区一样简单。屏幕缓冲区只是一个3096字节的字节数组,从左上方的像素开始,一直向下到屏幕的左下方像素,然后返回第二列,依此类推。当我们将天气符号复制到屏幕缓冲区时,每次都需要添加行偏移量(18个字节)。由于每一列中有72个像素,因此等于18个字节。复制例程就是这样:

位图复制例程

墨水屏上显示的天气符号

将eInk CLick电路板连接到OKdo E1墨水屏电路板非常简单。接口非常简单,可以使用MCUXpresso SDK SPI驱动程序和Pins Config工具来设置SPI和GPIO引脚。 MikroElektronika在其文档中提供了足够的信息以使用显示屏,请注意查找表(LUT)和写入显示控制器内部RAM的必要命令。然后,反复尝试才能获得正确的位图写入顺序。使用lpcxpresso55s69 SDK的LitteVGL字体支持来编写各种字体和符号,我非常喜欢开发该气象站项目。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RAM
    RAM
    +关注

    关注

    8

    文章

    1400

    浏览量

    120967
  • 显示控制器
    +关注

    关注

    0

    文章

    45

    浏览量

    15926
  • 环境传感器
    +关注

    关注

    2

    文章

    77

    浏览量

    19146
  • 电墨水屏
    +关注

    关注

    0

    文章

    11

    浏览量

    4354
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Visionfive和蚀刻SD卡,将电路板连接到HDMI时,什么也没显示,为什么?

    我最近购买了 Visionfive 和蚀刻 SD 卡(带 Fedora)。当我将电路板连接到 HDMI 时,什么也没显示显示屏显示错误“
    发表于 04-01 06:08

    eink墨水高效开发秘籍:开源库与演示系统全揭秘

    想要在最短时间内完成eink墨水项目的原型验证?关键在于选择合适的开发工具。高性能开源eink库,集成多种刷新算法优化,并提供配套演示系统,覆盖文字、图像、动画等展示场景,助你轻松实
    的头像 发表于 02-25 20:00 363次阅读
    <b class='flag-5'>eink</b><b class='flag-5'>墨水</b><b class='flag-5'>屏</b>高效开发秘籍:开源库与演示系统全揭秘

    开源!eink墨水库+演示系统,高效开发必看

    硬件驱动到界面设计的完整解决方案,助你快速构建稳定、低功耗的墨水应用。 一、 eink墨水
    的头像 发表于 02-23 21:53 602次阅读
    开源!<b class='flag-5'>eink</b><b class='flag-5'>墨水</b><b class='flag-5'>屏</b>库+演示系统,高效开发必看

    这款开源驱动控制器让你的墨水直接打破刻板印象

    提到墨水,你是不是一直认为它 “慢、静态、只能看电子书”?75Hz 高刷新率 + 低于 20μs 低延迟!这款开源驱动控制器让你的墨水
    的头像 发表于 02-05 10:16 1004次阅读
    这款开源<b class='flag-5'>驱动</b>控制器让你的<b class='flag-5'>墨水</b><b class='flag-5'>屏</b>直接打破刻板印象

    MAX20056B:汽车显示屏高亮度LED驱动的理想之选

    MAX20056B:汽车显示屏高亮度LED驱动的理想之选 在汽车显示屏应用中,高亮度LED驱动的性能至关重要。今天我们要介绍的MAX20056B,是一款集成了DC - DC开关升压/S
    的头像 发表于 01-30 14:20 254次阅读

    LED显示屏常见故障分类及处理方法

    常见故障分类LED显示屏常见故障分为三类:LED模组常见故障、室内全彩显示屏故障及户外全彩显示屏故障。针对每一类故障,我们将详细分析可能的原因,并提供具体的检测与维修步骤。LED模组常见问题及处理
    的头像 发表于 12-18 15:48 1683次阅读
    LED<b class='flag-5'>显示屏</b>常见故障分类及处理方法

    基于RK3568开发显示屏调试适配方法(1)-如何在Uboot界面切换显示屏

    显示屏作为电子产品不可或缺的一部分,此文档的目的在于帮助用户调试适配其它显示屏。本文档将以调试适配7寸MIPI为例。本文档章节安排:第一章:帮助用户如何在Uboot界面切换显示屏(L
    的头像 发表于 11-07 16:19 554次阅读
    基于RK3568开发<b class='flag-5'>板</b><b class='flag-5'>显示屏</b>调试适配方法(1)-如何在Uboot界面切换<b class='flag-5'>显示屏</b>

    力芯微矩阵型恒压LED驱动芯片为车载显示屏带来“智”变

    在汽车智能化飞速发展的今天,车载显示屏作为人车交互的重要窗口,其显示效果和性能直接影响到用户的驾驶体验和行车安全。力芯微矩阵型恒压LED驱动芯片,凭借其卓越的性能和创新的技术,为车载显示屏
    的头像 发表于 10-27 16:02 1412次阅读
    力芯微矩阵型恒压LED<b class='flag-5'>驱动</b>芯片为车载<b class='flag-5'>显示屏</b>带来“智”变

    解析LED显示屏背后的驱动方案

    当前,各式各样的LED显示屏正以创新的显示效果与丰富造型,拓展着人们感知视觉世界的维度。而这些视觉盛宴的背后,都离不开“幕后操控者”——LED驱动技术。
    的头像 发表于 10-27 15:04 4863次阅读
    解析LED<b class='flag-5'>显示屏</b>背后的<b class='flag-5'>驱动</b>方案

    硕博电子7寸触摸显示屏,支持CAN通信和Codesy编程#工业显示屏 #汽车CAN总线  #触摸显示屏

    显示屏
    长沙硕博电子科技股份有限公司
    发布于 :2025年09月18日 15:29:59

    EMC整改显示屏:怎么选择?功率多少?

    南柯电子|EMC整改显示屏:怎么选择?功率多少?
    的头像 发表于 08-28 09:30 1150次阅读

    液晶显示屏背光驱动设计的核心要点

    在液晶显示屏的世界里,无论是信息清晰的单色还是色彩绚丽的彩色,背光都是其视觉呈现的灵魂。然而,背光驱动绝非简单的“通电即亮”。忽视设计细节,轻则导致亮度不均、用户体验打折,重则缩短
    的头像 发表于 07-10 11:46 4623次阅读
    液晶<b class='flag-5'>显示屏</b>背光<b class='flag-5'>驱动</b>设计的核心要点

    【BPI-CanMV-K230D-Zero开发体验】+TFT显示驱动及信息显示

    对于BPI-CanMV-K230D-Zero开发来讲,其标准的显示器配置是基于芯片ST7701的LCD显示屏,该显示屏显示分辨率为800
    发表于 07-02 11:03

    希恩凯电子推出全新3.95寸TFT液晶显示屏

    在智能家居控制面板的优雅流转中,在新能源设备精准数据的跃动间,一块清晰、可靠、响应迅捷的显示屏是用户体验的核心支点。希恩凯电子有限公司,深耕显示技术领域的中国显示屏制造厂家,隆重推出其匠心之作——3.95”TFT液晶
    的头像 发表于 06-06 11:41 1378次阅读

    户外显示屏驱动的具体防护措施

    驱动在户外显示屏中的防水设计是确保显示屏长期稳定运行的关键之一。
    的头像 发表于 04-22 15:58 1288次阅读