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

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

PSoC6   BLE   先锋套件   Cypress   低功耗   EInk   电子纸   墨水屏   
  • 作者:
  • 来源:21ic
  • [导读]
  • 此次PSoC6先锋套件的评测,其实还了作者自己的一个心愿,那就是对EInk屏幕的原理与驱动代码进行一个深入的分析.作为9年前就开始使用电纸书进行阅读的本文作者,一直没有抽出时间与精力来对它的原理进行了解确实有点小小遗憾.希望本文能给有需要的朋友能带来一点知识和阅读的兴趣.Happy Reading and Happy Coding!

Pv_EINK_FullStageHandler(prevFrame, PV_EINK_STAGE2);

/* Stage 3: update the display with the inverted version of the new

frame */

Pv_EINK_FullStageHandler(newFrame, PV_EINK_STAGE3);

}

/* Stage 4: update the display with the new frame */

Pv_EINK_FullStageHandler(newFrame, PV_EINK_STAGE4);

}

else

{

}

/* If power cycle operation requested, turn off E-INK power */

if (powerCycle)

{

Cy_EINK_Power(false);

}

}

这个函数会持续Block数秒钟,这样的代码比较适合低功耗的内核执行.当然如果进行优化,可以加入休眠唤醒机制或者Event机制以提高CPU利用率与进一步降低功耗.这些内容当然不在本文覆盖范畴之内,读者可以自行进行思考或者加以改进.

image16.jpg

图 PSoC驱动EInk效果图2

使用其他处理器驱动EInk

因为该模块的引脚分布与Arduino Uno的接口兼容,所以从硬件上来讲可以用任何其他与之兼容的主控板进行驱动.但是从软件上来讲至少需要30 KB的RAM作为缓存.所以Uno这样的板子不是驱动这个模块的最佳选择.这里使用另外一家与Uno接口兼容的Cortex M4F内核的开发板来做这个实验.

外设方面.注意配置好SPI的参数与几个IO,至于定时器使用SysTick即可.

image17.png

图 SPI参数配置成与数据手册中一致

因为该开发板不是Cypress公司的产品,设计方法此处从简以免喧宾夺主.具体请参阅文末的代码连接.

image18.jpg

图 另外一块开发板控制EInk效果图2

总结,代码与参考

本文的写作其实还了自己的一个心愿,那就是对EInk屏幕的原理与驱动代码进行一个深入的分析.作为9年前就开始使用电纸书进行阅读的本文作者,一直没有抽出时间与精力来对它的原理进行了解确实有点小小遗憾.感谢Cypress厂家与21ic网站提供给本人的实验硬件,也感谢读者的阅读与关注.希望本文能给有需要的朋友能带来一点知识和阅读的兴趣.Happy Reading and Happy Coding!

代码下载连接:

PSoC 6工程

实验所用工程从官方例程改来,大家可以直接下载官方例程:

http://www.cypress.com/CE218133

其他处理器工程

https://github.com/zhanzr/stm32l4r5-demo.git

EInk器件原厂参考连接:

http://www.pervasivedisplays.com/products/271

本人最爱的电子书资源网站:

http://www.gutenberg.org/

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

网友评论