搜索
bottom↓
回复: 18

不带LCD控制器的高速单片机直接驱动不含控制器的TN、STN、TFT液晶及VGA的可行性

[复制链接]

出0入93汤圆

发表于 2009-12-29 09:35:52 | 显示全部楼层 |阅读模式
本人及本帖不参与任何关于器件、内核等等的口水大战。本人只将这些东西分成三类:PLD/CPLD/FPGA等EDA,DSP以及单片机(包括486DX等等)。单片机只比较外设。
  EDA太强了,本文不讨论。DSP外设能力如何,我不便讨论,因此只讲单片机。
  如果您的单片机速度没有10MHz,内存不足1024字节,DMA功能查无此人者敬请无视本帖。如果您的单片机足够强,已经内置LCD控制器了,本文已经太原始了,直接返回即可。
  模拟屏有的使用VGA方式,而VGA大抵都与TFT时序相同,只是外加电阻网络组成了DAC。因此实际上只有STN和TFT两种时序需要考虑。
  本人从没有使用ARM等高速单片机做过任何产品,用得多的还是51。因此只有设想,欢迎大家共同讨论。
  LCD数据缓冲区→(DMA中断传送)→DMA传送数据区→(DMA,定时器下降沿触发)→LCD
  STN和TFT都由水平扫描和垂直扫描再加上一些消隐与控制信号等组成,方式略有不同。但我们可以由单片机的一个定时器产生像素时钟,一般在其下降沿处触发一次内存到IO端口的DMA传输,DMA传输的内容由液晶数据以及控制信号共同组成,如液晶需要1位、2位、4位的数据格式(主要是STN屏),则通通扩展成8位数据。TFT的前沿、后沿、消隐、电压极性、同步等等信号都直接转换成数据存在内存中。每行扫描完成后结束DMA传送,并触发DMA中断。在DMA中断中填充下一行的数据,并再次启动DMA。
  使用此方法传输数据量比传送到LCD的数据量大一倍,如要驱动较大尺寸的LCD,则可能要采用隔行扫描了。

  不知我是否说明白了,也不知方案是否行得通。

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2009-12-29 09:46:42 | 显示全部楼层
把单片机累吐血,也干不了这个活

出0入0汤圆

发表于 2009-12-29 09:52:52 | 显示全部楼层
当然可以,只是你的MCU还能用来干什么?DMA也是要占用CPU时间的,只是你的程序没干预,但内核还是一样在等待

出0入93汤圆

 楼主| 发表于 2009-12-29 10:01:04 | 显示全部楼层
不同意以上两位,比如STM32跑72MHz,驱动一个320×240的16位屏,60Hz扫描,需要的数据量/时钟为320*240*60=4492800Hz,使用我提的方法数据吞吐量增加一倍,达到8985600Hz,加上消隐、前沿、后沿,我们认为它占用20MHz的带宽,还有52MHz,怎么会干不了活呢?DMA传送时内核是停止,但他毕竟不是在一直等待的,他当然可以在DMA没有传送的时候干别的活。就算是800×600×60Hz的屏,也只占用40MHz带宽,如果我们使用隔行扫描,也有大量充裕的时间空闲啊。

出0入93汤圆

 楼主| 发表于 2009-12-29 10:02:36 | 显示全部楼层
V-USB占用AVR的90%的处理时间,AVR同样还能做一些复杂的工作,更何况是高速的单片机,DMA根本没有占用CPU的一半处理时间呢?

出0入0汤圆

发表于 2009-12-29 13:55:20 | 显示全部楼层
用单片机做点字符叠加之类的活还免强可以,对于图形控制,即使用上最快的120M时钟的F51也做不了。

出0入0汤圆

发表于 2009-12-29 16:50:17 | 显示全部楼层
搞着玩可以,做产品肯定不行。

出0入0汤圆

发表于 2009-12-29 17:12:55 | 显示全部楼层
1、肯定可行,但效率与分辨率关系密切

2、论坛里已经有人做到了

3、个人认为没有必要做得这么辛苦

出0入0汤圆

发表于 2009-12-29 17:50:01 | 显示全部楼层
可行, AVR 12M以上可以驱动 240*80的 (利用定时器定期更新数据)。 提高主频还能干点其它事。 主频超到20M 驱动320*240的也行(就是内存不够),能做到普通单色LCD不闪烁。

所以像STM32这些别AVR速度快,而且还有DMA可用的(但我不清楚怎么用),应该是很轻松的。也有很多时间去做其它事情。

小单片机就算了

看我的一个应用,ATmega64 18.432Mhz (低点也可以) 驱动240*80的单色屏(4bit数据宽度)做的一个简单的终端。 简单功能还是能实现一些的。 显示好用的资源我估计在70%左右
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3683892&bbs_page_no=1&search_mode=3&search_text=bozai&bbs_id=9999

出0入0汤圆

发表于 2009-12-29 20:07:30 | 显示全部楼层
用一颗CPLD就可以做的很好,何必呢!

出0入93汤圆

 楼主| 发表于 2009-12-30 08:49:22 | 显示全部楼层
谢谢【7楼】 watercat,【8楼】 bozai 章其波,我目前也只是想驱动一个小屏,4位单扫描单色的,想用STM32先试试,当然用上DMA,屏幕和8楼的差不多,先参考一下8楼的代码。
不用CPLD的原因就是CPLD还得外加两个芯片,麻烦。

出0入0汤圆

发表于 2009-12-30 09:54:03 | 显示全部楼层
还是推荐你用44B0这样带控制器的ARM,昨天看到华邦的710也不错,价格也就40来块,44b0也就30几,8M SDRAM+2M NORFLASH也就15块

出0入0汤圆

发表于 2009-12-30 09:56:26 | 显示全部楼层
我准备用710替代44b0,这样可以省掉一颗USB HOST,价格加起来差不多

出0入0汤圆

发表于 2009-12-30 19:41:45 | 显示全部楼层
TFT不现实,山寨/DIY的尽管上,点亮完全可以.当年我也用AVR一样点480*272(100%利用率)的屏.

IO直接整STN没问题,上了DMA等硬件机制更简单了,毕竟数据量小多了

出0入0汤圆

发表于 2009-12-31 12:26:35 | 显示全部楼层
国产的SEP4020带LCDC,驱动800*600的屏没有问题,功能比44B0和710强

出0入0汤圆

发表于 2011-9-6 20:38:12 | 显示全部楼层
请问楼主能驱动起来了吗?

出0入0汤圆

发表于 2016-4-15 07:53:29 | 显示全部楼层
bozai 发表于 2009-12-29 17:50
可行, AVR 12M以上可以驱动 240*80的 (利用定时器定期更新数据)。 提高主频还能干点其它事。 主频超到20 ...

您的原帖还在吗?找了半天没找出来,谢谢.

出0入0汤圆

发表于 2016-4-15 18:00:20 | 显示全部楼层
advarx21ic 发表于 2016-4-15 07:53
您的原帖还在吗?找了半天没找出来,谢谢.

http://www.amobbs.com/forum.php?mod=viewthread&tid=3683892

用amobbs.com替换ourdev.cn即可

出0入0汤圆

发表于 2016-4-16 08:50:30 | 显示全部楼层
McuY 发表于 2016-4-15 18:00
http://www.amobbs.com/forum.php?mod=viewthread&tid=3683892

用amobbs.com替换ourdev.cn即可

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

本版积分规则

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

GMT+8, 2024-8-25 19:52

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

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