也玩MF,雅典娜4 SPI 接口驱动Nokia 5110 LCD

一直以来都想玩一玩嵌入式开发,苦于没有任何硬件基础 ,学校里学的一点入门级的电子信息基础也都忘记的差不多了。很久以前就关注了MF,优势我就不多说了,但是入手门槛还是很高。直到看到大石头的文章。 http://www.cnblogs.com/nnhy/archive/2012/09/25/MFCategory.html ,发现是时候入手了,我买了一块 雅典娜4的开发板, http://www.newlifex.com/showtopic-58.aspx,价格比价便宜,也能满足MF的学习。

现在谈谈MF如何驱动Nokia 5110 LCD。

很久以前打算发一个SPI通讯的DEMO,但是苦于时间太少,今天决定无论如何要写一下,顺便帮大石头验证SPI通讯是可用的。


申明一下,我是个菜鸟,平时做软,硬件不通。。。MF纯属业务爱好。

手头恰巧有个一块5110液晶屏(当年想学51,一起买的,没学会。。。)

5110是个不错的屏幕,字符多,价格便宜,SPI通讯,IO占用少。



说实话,驱动这屏幕花了好多天,各地找资料,终于在东拼西凑勉强驱动了它,由于对5110液晶的协议没有深入了解,目前只能显示简单的英文字符,论坛里的高手们有兴趣可能提供中文显示方案。

首先先了解一下5110LCD
模块接口

  1.   1. RST ——复位
  2.   2. CE  —— 片选
  3.   3. DC  —— 数据/指令选择
  4.   4. DIN —— 串行数据线
  5.   5. CLK —— 串行时钟线
  6.   6. VCC —— 电源输入(3.3v和5v均可,经过实验验证,没有问题)
  7.   7. BL  ——  背光控制端
  8.   8. GND —— 地线

接口为串行SPI接口。

雅典娜4的开发板带2个SPI接口,这取决于 STM32F103VET6 支持的SPI 接口个数。




SPI接口使用核心代码

 SPI.Configuration spiConfiguration = new SPI.Configuration(
                cs,                    // 片选接口
                false,                 // IC is accessed when chip select is low
                0,                     // setup time 1 ms
                0,                     // hold chip select 1 ms after transfer
                false,                 // clock line is low if device is not selected
                true,                  // 上升沿触发
                4000,                  // 设置时钟速率
                SPI.SPI_module.SPI1    // 设置SPI通道
                );

            spi = new SPI(spiConfiguration);

不太好理解的地方还是用英文翻译。

例程中用的是SPI接口,并且由于不需要读取数据,所以只需要用到 PA7(M0SI)、PA5(SCK)。
开发板与LCD的接线是

  1. 1. RST ——PD7
  2. 2. CE —— PD10
  3. 3. DC ——PD8
  4. 4. DIN ——PA7
  5. 5. CLK —— PA5
  6. 6. VCC ——3.3v 串一个4.7K电阻,否则屏幕颜色过深
  7. 7. BL —— 3.3V
  8. 8. GND —— 地线

网上有关于5110的资料,非常完整,大家有兴趣可以研究一下 http://wenku.baidu.com/view/56527c084a7302768e9939af.html 

我精力有限,发这文章主要目的就是让大家了解一下SPI的用法,以及证实下雅典娜4 SPI可用。

再次感谢下 大石头 辛勤付出,为 STM32F103VET6 移植MF固件。

对MF有兴趣的朋友可以加入 QQ群 1600838 

论坛 http://www.newlifex.com

demo下载

posted @ 2012-12-01 22:41  tandly  阅读(1770)  评论(6编辑  收藏  举报