时隔四年,终于把DC做出来了(大雾)其实只是用STM32连了一下MT9M001摄像头随便试了下效果而已啦。
- 主控:STM32F429
- 内存:32MB SDRAM 16bit @ 90MHz
- 摄像头:MT9M001
- 摄像头光学尺寸:1/2”
- 摄像头分辨率:1.3MP
时隔四年,终于把DC做出来了(大雾)其实只是用STM32连了一下MT9M001摄像头随便试了下效果而已啦。
STM32是这几年来相当相当流行的单片机系列,凭借着低功耗、高性能、高性价比等优点在爱好者中聚集了很多人气。博主是从2011年开始接触STM32的。因为博主自己是个液晶屏幕控,拿STM32点各种屏幕那是少不了的,SPI、i80、68K这些51都能点的自然不在话下,Raw-STN接口则是比较能体现STM32优势的地方,其实优势说白了也就是大RAM(数十KB)+高速度(IO翻转速度>10MHz)。这个blog里面也有一些关于STM32点Raw-STN接口的记录:深圳安鑫320160两片、日常点屏:M320240-19 & LM081HB1T。然而如果要点Raw-DPI接口(大多数480*272 ~ 800*600屏幕所使用的接口)的屏幕,那STM32就无能为力了,于是以前在对付这种屏幕的时候,我请出了树莓派:树莓派驱动DPI液晶。不过其实早在2014年ST就推出了STM32F429/F439系列单片机,可以支持外扩SDRAM和Raw-DPI液晶。不过由于种种原因,我一直没有亲自去尝试。直到今年有幸得到了一块官方STM32F429I-EVAL,功能简直全面,于是就有机会玩一玩这个“新”芯片。
新芯片除了可以外扩SDRAM和DPI液晶之外,还很贴心地配套加入了一个2D加速功能,官方称为Chrom-Art Accelerator™。找了一圈国内论坛发现关于429的教程、日志一大堆,可是却没有人提及这个2D加速……今天花了半天时间把这个加速器玩了一圈,干脆写个博文记录一下,方便以后参考。
2007年,苹果公司推出了第一代的iPhone,后来这款产品完全改变了人们对于智能手机的理解和认识,智能手机以及衍生的后PC产品功能不断强化,正在一步步取代着原本PC才能做的事情。而就是这样一个背景下,亚马逊公司却反其道而行,推出了一款功能无比单一的产品:Kindle。Kindle不但软件上设计成只能用来看书,就连硬件上也选用了一块基本只能用来看书的屏幕:黑白EPD屏幕。这种屏幕只能显示黑白颜色(或者灰阶),响应速度也非常慢(大约400ms-1s),而且还不能主动发光,必须要借助环境光才能显示……然而这种屏幕却也有一些非常重要的优点,比如显示效果非常接近纸张,不刺眼,只有在刷新时耗电等等。几年后,国产厂家也进军了这一领域,把这类使用EPD屏幕的电纸书的价格做到了千元以下。当时我就买了一台,着实是被这种显示屏的效果给吸引住了。当时我就想着要是能自己用单片机驱动起来玩一玩就好了。无奈当时自己技术差,屏幕也贵,没能顺利实施。最近发现大尺寸(6英寸,型号ED060SC4)的E-Ink屏幕价格已经降到了50以内,于是决定开始研究下它的驱动,也顺便做个最简单的应用:台历。
首先,为了各位方便阅读,先来区分几个名词,首先是EPD,EPD并非是E-Paper Display(电子纸显示器)的缩写,而应该是Electrophoretic Display即电泳显示器的缩写。E-Ink则是PVI公司的注册商标,用于指代他们旗下的EPD产品。但是并非只有PVI公司生产电子纸,天马、龙亭、友达、佳显和LG等公司都在生产类似且兼容的EPD产品,所以最好称他们为EPD而非E-Ink。电子纸这个概念就比较笼统了,EPD是一种电子纸,但是也有很多基于其它技术的电子纸,比如说Ch-LCD、PN-LCD、HR-TFT LCD等等,比如Pebble所使用的HR-TFT LCD也被宣传为电子纸,但实际上并非EPD。
其实在去年3月的《无线电》上就已经刊登了关于小尺寸EPD驱动的文章,当时看了下感觉挺简单,无非就是和驱动一般的串行液晶一样,通过SPI接口把指令和数据发送到EPD控制器就可以。但是仔细看了下发现对于大尺寸的屏幕却完全不是这样。这类大尺寸的EPD面板通常都没有集成控制器!而一般的做法是在一个应用控制器外通过总线扩展一个独立的EPD控制IC来完成对它的控制,通常使用PVI或者是EPSON的控制器。这类控制器价格昂贵不说,还都是使用BGA封装的,控制器本身还需要外扩SDRAM或者DDR SDRAM才能使用,相当麻烦,所以鲜有个人爱好者去尝试驱动这种屏幕。然而这个昂贵且复杂的控制器到底隐藏了什么细节呢?我们首先从EPD的驱动原理讲起。
没有什么前因后果,就是有空拿出几片屏幕玩玩。都是典型的无控制器STN单色液晶,反正程序也是以前用过很多次的,再拿出来用用。第一片是LM081HB1T,8.1英寸640x240 STN负显,其实以前也点过,但是一直没仔细点亮背光看过效果,这次也是拿出来拍拍照。由于STM32F1的RAM容量限制(64KB),我只能使用320x240x4bit模式或者640x240x3bit模式。头图就是全分辨率的效果。
于是拿之前一直在用的程序拿来点了一下,效果如头图。(第二块屏幕请点详情)