查看: 241|回复: 0
打印 上一主题 下一主题

【MAPS四色板试用】8 飞思卡尔四色板:驱动SPI接口LCD

[复制链接] qrcode

24

主题

24

帖子

74

积分

注册会员

Rank: 2

积分
74
楼主
跳转到指定楼层
发表于 2016-3-7 03:44 PM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    在MAPS-Dock上,板载了一个128x64单色LCD屏,而在K64-SDK开发包中,给出了相应的示例代码,本帖就根据官方提供的示例,来驱动MAPS-Dock上LCD的显示。


一、硬件分析

MAPS-Dock上的LCD屏

    在MAPS-Dock上,板载了一个单色LCD显示屏,如下图所示:


    在板子的背面,如下图所示,可见该模块用了8根线,进行连接驱动控制


2 MAPS-Dock原理图

    MAPS-Dock上关于LCD的原理图,如下图所示,它使用了SPI接口来驱动,而由于在MAPS-K64板上的控制芯片,含有多个(3个)SPI接口,故需要通过DIN接口,来决定到底LCD连接到了那一个SPI上。


3 MAPS-K64原理图

    经查,最后定位到如下图的位置,可见,使用了SPI2来驱动MAPS-Dock上的LCD。


二、软件实现

1 DSPI接口代码

(1)第一次听说DSPI接口,它到底和SPI有什么关系呢?在K64P144M120SF5数据手册中,查到了下面一段话:

    大体说,DSPI的全称是DMA SPI接口,在主从工作模式下,它提供一个同步的串行总线,而且传输的特性是可以编程定义的,具体的信息,查找对应的参考手册。而从K64P144M120SF5RM参考手册中,可得知,MAPS-K64上的控制芯片,含有3个DSPI模块,分别为SPI0、SPI1、SPI2,SPI的时钟来自总线时钟。SPI模块含有一个FIFO的缓冲区,而且支持DMA模式,可以大提高SPI总线的读写速度和传输效率。也就是说,DSPI相对于传统的SPI,传输可以控制,速度更快等。

(2)相关代码

在抽像层,根据用户手册,对DSPI进行了最基本的定义

在驱动层,分别定义了DSPI工作在主模式和从模式的相关驱动代码以及相关通用的函数接口

2 LCD显示代码

    在K64-SDK中,提供了一个驱动示例,在示例中,封装了驱动MAPS-Dock上LCD的驱动函数,主要包括:


其中LCD_PutChar是用来显示字符的,LCD_PutString是用来显示字符串的,LCD_FillAll是用来显示图片的


3 测试代码

(1)将示例中的源码,移植到模板工程中

(2)具体的代码,可查看示例代码,具体位于MAPS-K64_KSDK_1.0.0demosdspi_lcdsrc。这里有说的是,使用SPI,首先要对引脚的复用进行设置,如下

具体的功能,为什么是kPortMuxAlt2,由参考手册中定义,如下图所示:


(3)显示字符


三、总结

1 DSPI第一次接触,有点陌生,需要继续学习,尤其是相关参考手册和数据手册

2 LCD显示可以正常,模块化的提供示例代码后,可以方便后续开发,提高效率

3 MAPS-Dock下载程序不是可取,经常卡死

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表