240x320 LCD 控制器
之前搞了一个240X320的lcd控制器,问题是上次用的是SPI接口的,在16bit色彩下,320x240全屏刷30hz就得要36.8Mhz的带宽。TI的M4只能大约20M左右,因此刷新率只有15Hz左右。这次搞了两个同样的控制器板子,一个是有SDRAM的,一个没有。
BGA+SDRAM的板子是两层板,画得时候好不容易把所有的线引出来了,还吃了一点工艺限制。时序什么的根本没查,反正大约也就跑个20-40MHz,差点也许没事。呵呵
另外一个没有SDRAM的就好很多了,没什么难度,不到2小时就画完了,还剩下了不少地方,正好画个小东西玩玩。
这两个控制器都是打算用并行接口,算下来可以省下不少频率,大约2.3M的传输频率就能实现30hz的刷新频率。等等把板子贴完了,下个月看看结果。 在16bit色彩下,320x240全屏刷30hz就得要36.8Mhz的带宽 这个怎么算的? 楼主应该这样算的:
SPI接口传送一帧需要320*240*16=1228800 bit,每秒传输30帧画面1228800*30=36864000=36.864Mbit LZ,你这个是什么主控,FPGA? SPI接口的LCD好啊,用一片6元的NUC501(ARM7)控制实在是理想选择啊。就冲这货72MHz的SPI来说,一刻不停的刷都能刷到58Hz了。 用50MHz的SPI不就可以了?我现是用62.5MHz的SPI刷480*320的屏,画面也存spi flash里,20 fps. szxszx 发表于 2015-4-18 08:10
楼主应该这样算的:
SPI接口传送一帧需要320*240*16=1228800 bit,每秒传输30帧画面1228800*30=36864000=36 ...
这个才是正解 nhztb 发表于 2015-4-18 08:28
LZ,你这个是什么主控,FPGA?
不是,是TI的TIVA M4 takashiki 发表于 2015-4-18 09:07
SPI接口的LCD好啊,用一片6元的NUC501(ARM7)控制实在是理想选择啊。就冲这货72MHz的SPI来说,一刻不停的 ...
TIVA M4系列貌似只支持到10M SPI, 实在是有点慢,我大约用的是20Mhz左右。还是慢的很 astankvai 发表于 2015-4-18 09:09
用50MHz的SPI不就可以了?我现是用62.5MHz的SPI刷480*320的屏,画面也存spi flash里,20 fps. ...
可能是屏幕的问题,也可能是MCU的问题。 我没有示波器,搞不清楚哪个不成。
我猜是MCU的问题,因为LCD的控制器应该有足够的带宽
我的基本卡在20Mhz左右了,再快就会显示出错。 Anteater 发表于 2015-4-18 11:26
可能是屏幕的问题,也可能是MCU的问题。 我没有示波器,搞不清楚哪个不成。
我猜是MCU的问题,因为LCD的 ...
不一定的,LCD也可能没有那么高带宽的, quad-spi啊,带宽肯定够 jianfengxixi 发表于 2015-4-18 14:56
quad-spi啊,带宽肯定够
我还真没见到过有quadspi的屏幕 本帖最后由 szxszx 于 2015-4-19 08:58 编辑
SPI发送完数据缓存区的数据后,需要MCU向SPI缓存里送数据,是不是这里慢了 SPI接口传送一帧需要320*240*16=1228800 bit,每秒传输30帧画面1228800*30=36864000=36.864Mbit
RE: 240x320 LCD 控制器 (16楼更新)
其中的一块到了,正好周末就做出来了。刚才加电没发现短路,debugger也能连上,至少电源和JTAG部分没错。板子和片子
片子solder ball特写
焊好之后的板子,近景是SDRAM
是0.8pitch的吗?pcb用的什么线宽间隔,能搞2层板? gwnpeter 发表于 2015-4-26 08:00
是0.8pitch的吗?pcb用的什么线宽间隔,能搞2层板?
0.5 mm pitch, 6/6 mil, 2 layers 更新状态:写了个小程序, 试了一下SDRAM, 前两个地址和最后两个地址都能正确读写@60 MHz. 期待楼主的测试总结,继续 本帖最后由 Anteater 于 2015-4-26 23:54 编辑
LCD控制器也能工作,说明BGA焊接应该没有什么问题了,板子上剩下的就是通讯接口, ADC, 还有SPI flash没有试过了.
不过,LCD控制器和SDRAM这两个最重要的功能实现了,没有任何问题。
下一步就是把SRAM或者SDRAM作为缓冲,DMA到LCD。这样可以完全解放CPU时间, 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) 本帖最后由 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. 刷新率太高了也不好。出现了类似于moiré 的现象。 我的目标是用30hz 的总体刷新率,然后每次尽快刷完(大约用时5ms) ,减少闪烁感。 本帖最后由 Anteater 于 2015-5-5 11:01 编辑
60 Hz 刷新率 SDRAM作为缓冲,DMA到LCD。没有接总线,只是一个单独的循环,这样让各个部分动起来,之后还要增加数字的显示部分,用于显示高度。
这个玩意很久很久以前就想做,一直到今天才有能力做出来,也算是圆满了。
http://player.youku.com/player.php/sid/XOTQ4NTA1MDcy/v.swf 优化了一点代码,现在SDRAM只用来读取,可以稳定的实现60Hz的刷新率
由于现在使用SRAM作为缓冲,SDRAM只用来读取,算了一下,现在能达到的速率只有 3.5 MB / s
TI 给的例程上 同样的设置下, SDRAM应该有16.2 MB/s 的速率,正在考虑怎么改变数据结构,提高一点性能 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容易,要钢网吗? john78 发表于 2015-5-12 09:32
什么意思 0.5的BGA比0.5LQFP容易,要钢网吗?
嗯,就是,0.5LQFP 对钢网有点要求,开宽了或者对偏了都很容易出现锡桥。
BGA么,可以用钢网也可以不用,都差不多。 基本上不用担心短路的事情 http://player.youku.com/player.php/sid/XOTU1MDE4MjEy/v.swf
把字库做进去了,除了数据总线基本上是最终的样子了
将来这个就是一个显示模块,可以在调试的时候接到总线上显示姿态,油门,和高度,之后还可以增加GPS的信息在上面 Anteater 发表于 2015-5-13 22:52
把字库做进去了,除了数据总线基本上是最终的样子了
将来这个就是一个显示模块,可以在调试的时候接到总 ...
楼主,我想请教一下你这个显示用的是什么GUI,有用到操作系统吗
小乖 发表于 2015-9-23 18:16
楼主,我想请教一下你这个显示用的是什么GUI,有用到操作系统吗
我说是裸奔的你信么?嘿嘿 Anteater 发表于 2015-9-24 03:42
我说是裸奔的你信么?嘿嘿
GUI呢?也没用吗?太吊了吧 有一批LG的 800x480的 tft屏 可惜没有资料 不知怎么驱动
小乖 发表于 2015-9-24 09:04
GUI呢?也没用吗?太吊了吧
裸奔,就是连裤衩都没有的那种。。。。 参考 大彩、迪文、的那类TFT,都是arm+fpga+ram+ VGA接口的TFT,,,价格也便宜{:titter:} 这个BGA板要在哪里才可以打样? tiky 发表于 2015-9-26 11:10
这个BGA板要在哪里才可以打样?
我记得在我的某个帖子中说过这个:) 看过LZ很多帖子,LZ这种想做什么就做什么的能力是怎么练出来的?我每接触新的东西,光是入门都耗费很多精力,比如开发环境搭建及使用等等,耗费了很多精力,就是说,精力很大一部分都用在学习上了,很多都是重复性劳动,在时间有限的情况下,就怕反复走弯路。 Anteater 发表于 2015-5-13 22:52
把字库做进去了,除了数据总线基本上是最终的样子了
将来这个就是一个显示模块,可以在调试的时候接到总 ...
楼主,能否分享下你的代码啊 小乖 发表于 2015-10-30 20:16
楼主,能否分享下你的代码啊
做着玩的代码就没必要贴出来丢人了 Anteater 发表于 2015-10-30 21:53
做着玩的代码就没必要贴出来丢人了
我还是挺想学习下的,不知楼主是否愿意?哈哈
页:
[1]