5184|4

133

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【LPC54100】SPI0驱动TFT LCD [复制链接]

本帖最后由 yinyue01 于 2015-5-13 22:12 编辑

今天使用LPC54102SPI口来驱动TFT LCDSPI的原理就不具体介绍了,硬件有4根线:SSELSCKMISOMOSI。驱动ILI9163TFT屏只需要主机发送数据,因此SPI口接3根线即可:片选SSEL0、时钟SCK、主机输出MOSI。此外还要用1GPIO口连接到TFT屏的A0(寄存器选择),具体参照https://bbs.eeworld.com.cn/thread-461864-1-1.html
LPCOpen Platform for LPC5410Xmicrocontrollers文档中给出了SPI口的配置过程,这里进一步说明一下。
1.      初始化SPI:配置SPI口和SPI引脚,使能时钟
这里选择了SPI0,对应板子上的J3口:P0.11-P0.14
使能时钟如下:
2.      开辟内存,用于drivercontext
3.      初始化驱动:调用ROM_SPIM_Init()函数,配置SSEL0有效为0
4.      配置SPI传输参数:
比特率设为1MHz,延时均设为0
根据ILI9163的时序可确定:低位先发送,数据位为8
选择对应的SPI模式:SPI空闲时SCK时钟极性为低电平,在SCK的奇数边沿采集数据,选择模式0,如下图:
5.      注册回调函数
6.      设置传输缓存区、片选线等
由于主机不需要接收数据,这里设为Receive Ignore
7.      开始传输
ROM_SPIM_Transfer(spimHandle, &mXfer);
8.      一直传输直至完成
while (mXfer.status == ERR_SPI_BUSY) {
         ROM_SPIM_TransferHandler(spimHandle);
}
通过上面的配置可完成SPI0口的数据传输,实现TFT驱动的3个基本函数:
void write_command(uint_least8_t addr1);//写命令
void write_para(uint_least8_t para1); //写命令的参数
void write_data(uint_least16_t dat); //写数据
从而将TFT驱动程序移植到LPC54102上,相比GPIO口模拟SPI时序的方式,硬件SPI方式虽然配置复杂,但不需要写程序实现发送的时序,有效利用了片内资源,也更为可靠。


lpc54102_SPI.zip (5.68 MB, 下载次数: 140)
此帖出自NXP MCU论坛

最新回复

那做GUI 需要实时显示的 就没啥意思,简单显示一下 字符还可以。 我看开发板自带 320×240 LCD ,怎么刷的过来?? 用SPI 刷完一屏要几秒把。 用GPIO直接驱动呢》?试过没?  详情 回复 发表于 2015-5-23 16:35
点赞 关注
 

回复
举报

20

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
刷屏速度怎么样??试了没?
此帖出自NXP MCU论坛

点评

速度很低,SPI设的1MHz,3MHz就不行了  详情 回复 发表于 2015-5-23 16:30
 
 
 

回复

133

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
luy3728000 发表于 2015-5-23 16:27
刷屏速度怎么样??试了没?

速度很低,SPI设的1MHz,3MHz就不行了
此帖出自NXP MCU论坛
 
 
 

回复

20

帖子

0

TA的资源

一粒金砂(初级)

4
 
那做GUI 需要实时显示的 就没啥意思,简单显示一下 字符还可以。
我看开发板自带 320×240 LCD ,怎么刷的过来?? 用SPI 刷完一屏要几秒把。


用GPIO直接驱动呢》?试过没?
此帖出自NXP MCU论坛

点评

试过,差不多。 应该和LCD的驱动芯片有关,我的是ILI9163,有人测过速度: http://zhidao.baidu.com/question/1431316291443927459.html?fr=iks&word=ILI9163&ie=gbk 另外,用并口方式可能会快点~~  详情 回复 发表于 2015-5-23 22:34
 
 
 

回复

133

帖子

0

TA的资源

一粒金砂(中级)

5
 
本帖最后由 yinyue01 于 2015-5-23 22:40 编辑
luy3728000 发表于 2015-5-23 16:35
那做GUI 需要实时显示的 就没啥意思,简单显示一下 字符还可以。
我看开发板自带 320×240 LCD ,怎么刷的过来?? 用SPI 刷完一屏要几秒把。


用GPIO直接驱动呢》?试过没?

试过,差不多。

应该和LCD的驱动芯片有关,我的是ILI9163,有人测过速度:

http://zhidao.baidu.com/question ... word=ILI9163&ie=gbk

另外,用并口方式可能会快点~~

万利板上的屏应该是MDM2802,有一款MDM2803是并口模式,驱动芯片都是ILI9341
此帖出自NXP MCU论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表