搜索
bottom↓
回复: 40

240x320 LCD 控制器

[复制链接]

出0入0汤圆

发表于 2015-4-18 04:14:14 | 显示全部楼层 |阅读模式
之前搞了一个240X320的lcd控制器,问题是上次用的是SPI接口的,在16bit色彩下,320x240全屏刷30hz就得要36.8Mhz的带宽。TI的M4只能大约20M左右,因此刷新率只有15Hz左右。

这次搞了两个同样的控制器板子,一个是有SDRAM的,一个没有。

BGA+SDRAM的板子是两层板,画得时候好不容易把所有的线引出来了,还吃了一点工艺限制。时序什么的根本没查,反正大约也就跑个20-40MHz,差点也许没事。呵呵

另外一个没有SDRAM的就好很多了,没什么难度,不到2小时就画完了,还剩下了不少地方,正好画个小东西玩玩。


这两个控制器都是打算用并行接口,算下来可以省下不少频率,大约2.3M的传输频率就能实现30hz的刷新频率。等等把板子贴完了,下个月看看结果。

本帖子中包含更多资源

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

x

出0入85汤圆

发表于 2015-4-18 05:05:23 | 显示全部楼层
在16bit色彩下,320x240全屏刷30hz就得要36.8Mhz的带宽 这个怎么算的?

出10入10汤圆

发表于 2015-4-18 08:10:14 | 显示全部楼层
楼主应该这样算的:
SPI接口传送一帧需要320*240*16=1228800 bit,每秒传输30帧画面1228800*30=36864000=36.864Mbit

出0入0汤圆

发表于 2015-4-18 08:28:23 | 显示全部楼层
LZ,你这个是什么主控,FPGA?

出0入93汤圆

发表于 2015-4-18 09:07:06 | 显示全部楼层
SPI接口的LCD好啊,用一片6元的NUC501(ARM7)控制实在是理想选择啊。就冲这货72MHz的SPI来说,一刻不停的刷都能刷到58Hz了。

出0入0汤圆

发表于 2015-4-18 09:09:39 | 显示全部楼层
用50MHz的SPI不就可以了?我现是用62.5MHz的SPI刷480*320的屏,画面也存spi flash里,20 fps.

出0入0汤圆

 楼主| 发表于 2015-4-18 11:20:44 | 显示全部楼层
szxszx 发表于 2015-4-18 08:10
楼主应该这样算的:
SPI接口传送一帧需要320*240*16=1228800 bit,每秒传输30帧画面1228800*30=36864000=36 ...

这个才是正解

出0入0汤圆

 楼主| 发表于 2015-4-18 11:21:08 | 显示全部楼层
nhztb 发表于 2015-4-18 08:28
LZ,你这个是什么主控,FPGA?

不是,是TI的TIVA M4

出0入0汤圆

 楼主| 发表于 2015-4-18 11:23:20 | 显示全部楼层
takashiki 发表于 2015-4-18 09:07
SPI接口的LCD好啊,用一片6元的NUC501(ARM7)控制实在是理想选择啊。就冲这货72MHz的SPI来说,一刻不停的 ...

TIVA M4系列貌似只支持到10M SPI, 实在是有点慢,我大约用的是20Mhz左右。还是慢的很

出0入0汤圆

 楼主| 发表于 2015-4-18 11:26:33 | 显示全部楼层
astankvai 发表于 2015-4-18 09:09
用50MHz的SPI不就可以了?我现是用62.5MHz的SPI刷480*320的屏,画面也存spi flash里,20 fps. ...

可能是屏幕的问题,也可能是MCU的问题。 我没有示波器,搞不清楚哪个不成。

我猜是MCU的问题,因为LCD的控制器应该有足够的带宽

我的基本卡在20Mhz左右了,再快就会显示出错。

出0入0汤圆

发表于 2015-4-18 14:27:57 | 显示全部楼层
Anteater 发表于 2015-4-18 11:26
可能是屏幕的问题,也可能是MCU的问题。 我没有示波器,搞不清楚哪个不成。

我猜是MCU的问题,因为LCD的 ...

不一定的,LCD也可能没有那么高带宽的,

出0入0汤圆

发表于 2015-4-18 14:56:07 | 显示全部楼层
quad-spi啊,带宽肯定够

出0入0汤圆

 楼主| 发表于 2015-4-18 22:31:41 | 显示全部楼层
jianfengxixi 发表于 2015-4-18 14:56
quad-spi啊,带宽肯定够

我还真没见到过有quadspi的屏幕

出10入10汤圆

发表于 2015-4-19 08:57:41 | 显示全部楼层
本帖最后由 szxszx 于 2015-4-19 08:58 编辑

SPI发送完数据缓存区的数据后,需要MCU向SPI缓存里送数据,是不是这里慢了

出0入0汤圆

发表于 2015-4-19 14:55:29 | 显示全部楼层
SPI接口传送一帧需要320*240*16=1228800 bit,每秒传输30帧画面1228800*30=36864000=36.864Mbit

出0入0汤圆

 楼主| 发表于 2015-4-26 05:05:29 | 显示全部楼层
其中的一块到了,正好周末就做出来了。刚才加电没发现短路,debugger也能连上,至少电源和JTAG部分没错。

板子和片子

片子solder ball特写

焊好之后的板子,近景是SDRAM

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2015-4-26 08:00:27 | 显示全部楼层
是0.8pitch的吗?pcb用的什么线宽间隔,能搞2层板?

出0入0汤圆

 楼主| 发表于 2015-4-26 08:07:27 | 显示全部楼层
gwnpeter 发表于 2015-4-26 08:00
是0.8pitch的吗?pcb用的什么线宽间隔,能搞2层板?

0.5 mm pitch, 6/6 mil, 2 layers

出0入0汤圆

 楼主| 发表于 2015-4-26 09:16:42 | 显示全部楼层
更新状态:写了个小程序, 试了一下SDRAM, 前两个地址和最后两个地址都能正确读写@60 MHz.

出10入10汤圆

发表于 2015-4-26 12:27:05 来自手机 | 显示全部楼层
期待楼主的测试总结,继续

出0入0汤圆

 楼主| 发表于 2015-4-26 23:43:00 | 显示全部楼层
本帖最后由 Anteater 于 2015-4-26 23:54 编辑

LCD控制器也能工作,说明BGA焊接应该没有什么问题了,板子上剩下的就是通讯接口, ADC, 还有SPI flash没有试过了.

不过,LCD控制器和SDRAM这两个最重要的功能实现了,没有任何问题。

下一步就是把SRAM或者SDRAM作为缓冲,DMA到LCD。这样可以完全解放CPU时间,

出0入0汤圆

 楼主| 发表于 2015-4-26 23:49:51 | 显示全部楼层
Anteater 发表于 2015-4-26 23:43
LCD控制器也能工作,说明BGA焊接应该没有什么问题了,板子上剩下的就是通讯接口和ADC没有试过了.

不过,LC ...

话说BGA比QFP还容易焊, 看来常见的封装焊接难度可以这么排列

0.4 mm LQFP > 0.5 mm LQFP > 0.5 mm QFN/SON > 0.5 mm BGA > 0.8 mm BGA > 0603 > 0805 > 1.27 mm SOIC > 1206

BGA的难点在于
1. 板子平整度要求高,HAL/HASL工艺的板子可能会有问题。
2. 画板困难,针脚实在是太密集了。
3. 没办法简单的rework。必须重新植球才能再次焊接。
4. DIY的条件下,没有办法检查 (不要扯X-RAY)

出0入0汤圆

 楼主| 发表于 2015-4-27 08:04:14 | 显示全部楼层
本帖最后由 Anteater 于 2015-4-27 08:26 编辑


it is about 240 Hz refresh rate with the internal LCD controller being feed from SRAM or SDRAM though DMA.

The bandwidth of SRAM or SDRAM is never a limiting factor but the LCD interface is.  240 Hz is the max speed that can achieve. In most cases, 65 Hz of update rate is the sufficient.

出0入0汤圆

 楼主| 发表于 2015-4-27 22:12:16 | 显示全部楼层
刷新率太高了也不好。出现了类似于moiré 的现象。 我的目标是用30hz 的总体刷新率,然后每次尽快刷完(大约用时5ms) ,减少闪烁感。

出0入0汤圆

 楼主| 发表于 2015-5-5 10:58:50 | 显示全部楼层
本帖最后由 Anteater 于 2015-5-5 11:01 编辑



60 Hz 刷新率 SDRAM作为缓冲,DMA到LCD。没有接总线,只是一个单独的循环,这样让各个部分动起来,之后还要增加数字的显示部分,用于显示高度。

这个玩意很久很久以前就想做,一直到今天才有能力做出来,也算是圆满了。

http://player.youku.com/player.php/sid/XOTQ4NTA1MDcy/v.swf

出0入0汤圆

 楼主| 发表于 2015-5-11 23:51:25 | 显示全部楼层
优化了一点代码,现在SDRAM只用来读取,可以稳定的实现60Hz的刷新率

由于现在使用SRAM作为缓冲,SDRAM只用来读取,算了一下,现在能达到的速率只有 3.5 MB / s

TI 给的例程上 同样的设置下, SDRAM应该有16.2 MB/s 的速率,正在考虑怎么改变数据结构,提高一点性能

出90入4汤圆

发表于 2015-5-12 09:32:48 | 显示全部楼层
Anteater 发表于 2015-4-26 23:49
话说BGA比QFP还容易焊, 看来常见的封装焊接难度可以这么排列

0.4 mm LQFP > 0.5 mm LQFP > 0.5 mm QFN/ ...

什么意思 0.5的BGA比0.5LQFP容易,要钢网吗?

出0入0汤圆

 楼主| 发表于 2015-5-13 00:54:33 | 显示全部楼层
john78 发表于 2015-5-12 09:32
什么意思 0.5的BGA比0.5LQFP容易,要钢网吗?

嗯,就是,0.5  LQFP 对钢网有点要求,开宽了或者对偏了都很容易出现锡桥。

BGA么,可以用钢网也可以不用,都差不多。 基本上不用担心短路的事情

出0入0汤圆

 楼主| 发表于 2015-5-13 22:52:59 | 显示全部楼层
http://player.youku.com/player.php/sid/XOTU1MDE4MjEy/v.swf

把字库做进去了,除了数据总线基本上是最终的样子了

将来这个就是一个显示模块,可以在调试的时候接到总线上显示姿态,油门,和高度,  之后还可以增加GPS的信息在上面

出0入0汤圆

发表于 2015-9-23 18:16:31 | 显示全部楼层
Anteater 发表于 2015-5-13 22:52
把字库做进去了,除了数据总线基本上是最终的样子了

将来这个就是一个显示模块,可以在调试的时候接到总 ...

楼主,我想请教一下你这个显示用的是什么GUI,有用到操作系统吗

出0入0汤圆

 楼主| 发表于 2015-9-24 03:42:09 | 显示全部楼层
小乖 发表于 2015-9-23 18:16
楼主,我想请教一下你这个显示用的是什么GUI,有用到操作系统吗

我说是裸奔的你信么?嘿嘿

出0入0汤圆

发表于 2015-9-24 09:04:36 | 显示全部楼层
Anteater 发表于 2015-9-24 03:42
我说是裸奔的你信么?嘿嘿

GUI呢?也没用吗?太吊了吧

出0入0汤圆

发表于 2015-9-24 12:10:40 | 显示全部楼层
有一批LG的 800x480的 tft屏 可惜没有资料 不知怎么驱动

出0入0汤圆

 楼主| 发表于 2015-9-26 01:17:54 | 显示全部楼层
小乖 发表于 2015-9-24 09:04
GUI呢?也没用吗?太吊了吧

裸奔,就是连裤衩都没有的那种。。。。

出0入0汤圆

发表于 2015-9-26 08:12:04 | 显示全部楼层
参考 大彩、迪文、的那类TFT,都是  arm+fpga+ram+ VGA接口的TFT,,,价格也便宜

出0入143汤圆

发表于 2015-9-26 11:10:37 | 显示全部楼层
这个BGA板要在哪里才可以打样?

出0入0汤圆

 楼主| 发表于 2015-9-27 12:12:43 | 显示全部楼层
tiky 发表于 2015-9-26 11:10
这个BGA板要在哪里才可以打样?

我记得在我的某个帖子中说过这个:)

出0入0汤圆

发表于 2015-9-27 12:24:00 | 显示全部楼层
看过LZ很多帖子,LZ这种想做什么就做什么的能力是怎么练出来的?我每接触新的东西,光是入门都耗费很多精力,比如开发环境搭建及使用等等,耗费了很多精力,就是说,精力很大一部分都用在学习上了,很多都是重复性劳动,在时间有限的情况下,就怕反复走弯路。

出0入0汤圆

发表于 2015-10-30 20:16:15 | 显示全部楼层
Anteater 发表于 2015-5-13 22:52
把字库做进去了,除了数据总线基本上是最终的样子了

将来这个就是一个显示模块,可以在调试的时候接到总 ...

楼主,能否分享下你的代码啊

出0入0汤圆

 楼主| 发表于 2015-10-30 21:53:33 | 显示全部楼层
小乖 发表于 2015-10-30 20:16
楼主,能否分享下你的代码啊

做着玩的代码就没必要贴出来丢人了

出0入0汤圆

发表于 2015-11-3 14:03:11 | 显示全部楼层
Anteater 发表于 2015-10-30 21:53
做着玩的代码就没必要贴出来丢人了

我还是挺想学习下的,不知楼主是否愿意?哈哈
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 06:00

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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