首页 > 评测 > 评测列表 > MCU

PSoC6评测之三:享受阅读——EInk模块驱动原理与评测

PSoC6   BLE   先锋套件   Cypress   低功耗   EInk   电子纸   墨水屏   
  • 作者:
  • 来源:21ic
  • [导读]
  • 此次PSoC6先锋套件的评测,其实还了作者自己的一个心愿,那就是对EInk屏幕的原理与驱动代码进行一个深入的分析.作为9年前就开始使用电纸书进行阅读的本文作者,一直没有抽出时间与精力来对它的原理进行了解确实有点小小遗憾.希望本文能给有需要的朋友能带来一点知识和阅读的兴趣.Happy Reading and Happy Coding!
  • CC3220SF LaunchPad (CC3220SF-LAUNCHXL)
  • Arduino 树莓派扩展板
  • CY8CKIT-042 PSoC 4 Pioneer Kit
  • NUCLEO-F767ZI
  • NuMaker Tomato
  • NuMaker Uno
  • F769I-DISCO
  • SushiBits One v3.6
  • CC3220SF LaunchPad (CC3220SF-LAUNCHXL)
  • Arduino 树莓派扩展板
  • CY8CKIT-042 PSoC 4 Pioneer Kit
  • NUCLEO-F767ZI
  • NuMaker Tomato
  • NuMaker Uno
  • F769I-DISCO
  • SushiBits One v3.6

概览

先来两张效果图:

image1.jpg

图 使用PSoC 6来驱动EInk

image2.jpg

图 使用另外一款开发板驱动EInk

近几年来,有感于中国人读书的数量较其他国家少(比如日本,德国等发达国家),不管是国家还是地方政府相继推出了不少倡导读书的活动.如"读书年","读书月","全民阅读",等等.不过起到的效果如何还是要看个人的自身觉悟情况.归根结底阅读还是属于个人行为.就作者本人的体会来讲,从小是很喜欢读书.甚至到了干扰正常学习工作的程度.但是自从有了个人电脑,智能手机,读书时间便直线下降.因为电子版本的资源比起纸质版本的更加及时也更加丰富,导致本人有很长一段时间就没有摸过书.相信这也是我们这一代人共同的体验.真正让本人重拾书本认真阅读的就是电纸书这个技术.2011年本人买了第一个电纸书,从此收不住了.到目前为止,作者拥有6,7个电纸书,不同的电纸书存放不同的书籍种类,如有的放小说,有的放政治历史,有的放外文,有的放时事等等.电纸书阅读给本人的体验就是看起来很舒服,如果配上了均匀的背光,看起来比真正的纸质书还要赏心悦目.当然这是本人的一家之言,也有人认为还是纸质的书好.不论如何,把电纸书技术列作本时代最伟大的发明之一不为过.

本文的主题就是评测Cypress PSoC 6 Pionner Kit配套的EInk模块.该模块是Cypress组装的,核心器件由龙亭新技生产,分辨率是264x176,显示密度是117 dpi.由于PSoC 6双核,高性能,低功耗的特点,使得其非常适合驱动这种显示器件.当然在探究了其原理之后,后面将尝试移植驱动代码到其他器件上以验证这个学习过程.需要指出的是EInk模块不仅仅可以用作电纸书的面板,事实上目前业内应用的不少器件都可以使用EIink来替代以降低功耗.比如很多监控仪器的参数显示面板,如果使用LCD/OLED这种技术,电源不能停,但是其显示更新的频率其实很低,如每天更新只有几次甚至几天一次.如果换成仅仅更新需要电源,维持内容不需要电源的EInk,不仅功耗可大大降低,稳定性也会大大增强.

EInk硬件

先将CY8CKIT-028-EPD原理图的几个部分分别贴出来.

image3.png

图 外部接口

按照Arduino接口来分布的,除了I2C是其他外设,其余引脚是EInk模块控制信号.除了SPI的4根线之外,还有电源控制,边界控制,放电控制,复位信号,状态信号.

image4.png

图 电平转换

EINK模块可以被不同的主控板控制,VCC/VDD电压范围2.3v~3.6v,通过电平转换来进行电压匹配.

image5.png

图 电源控制

因为维持显示内容不需要电源,所以不更新内容时, 可以把COG 驱动power off当需要更新显示内容时,再把COG驱动power on.这对于其他技术的显示器来说是巨大的功耗节省.

image6.png

图 Border控制

边界控制:当进行电子墨水颗粒处理的时候用来保持边框清晰度的一种控制信号,利用时序控制引脚来控制此信号.

image7.png

图 Discharge控制

放电控制就是在更新完毕后,将EInk驱动的电容上的电荷放掉以进一步减少功耗.

image8.png

图 核心模块

上图是EINK模块的显示原理图,也就是最终的显示面板.除了Border信号之外,其余信号跟一般的显示器也差不多.这是因为这个驱动器本身也有COG控制IC以简化外围驱动软硬件设计.

Cypress的这个模块除了EInk之外还有其他几个器件:Motion传感器,热敏电阻与PDM接口的麦克风.这些器件与PSoC 6的配合也是值得一写的,权且放在后面的文章中介绍,此文对它们暂且不题.

驱动方式

如何控制这个显示器,也就是如何控制其内置COG (Chip On Glass) 驱动控制IC,新亭原厂提供了驱动例程.大致顺序是先将内容放到COG控制IC的内存(这个内存(memory)可以是图像buffer,SRAM或者Flash)中, 接着给COG驱动上电并且初始化COG驱动,然后按照特定的显示数据格式将存储在IC内存中的内容发送到EPD(E-Paper Dispaly)显示.

更新EPD显示内容的三种方式:

· 4步;

· 2 步;

· 部分更新;

其中4步更新是最耗时的,但是显示效果也最好(残影少).2步更新是省去了其中两步,部分更新就是省去了大多数操作.如果原来显示的内容与新内容相差过大,则需要用4步更新,否则酌情减少步骤.当然所需要的更新时间与显示效果是一个Trade-Off关系,需要程序员折中处理.一般的电纸书应用这样做的:第一次显示某本书使用4步更新,之后每页纸进行部分更新,若干页后进行2步更新,过了更长的阶段后再进行一次4步更新.对于4步更新,过程是这样的:

  • 本文系21ic原创,未经许可禁止转载!

网友评论