搜索
bottom↓
回复: 20

对液晶屏的怨念

[复制链接]

出0入0汤圆

发表于 2012-2-18 14:45:55 | 显示全部楼层 |阅读模式
发下牢骚:

1602
    很久没用这个了,其实有前人的代码问题倒是不大,我记得datasheet上的时序的参数ns级的,可是实际上在51单片机上的程序还是要做ms级延时的,或者读忙标志好像也可以。

12864
   买了块液晶,尝试着独立写驱动,结果发现,datasheet上的参数Tas也是ns级的,可是实际测试的时候发现对于读忙标志和AC值的指令必须延时100多us才能读到正确的值。

3.2寸HX8347驱动的TFT
   不知是店家坑爹还是HX8347的公司咋的,在HX8347的datasheet上居然一点都没有提到指令的问题,倒是有初始化的参考代码。然后在网上找了找datasheet,发现居然有HX8347-A HX8347-G(T) 和HX8347-G(N)  几个版本的,有的datasheet上是有command set的,但是对于参考程序中的指令还是有些对应不上。网上程序倒是挺多,但是找不到明确的说明,从学习的角度出发,很不爽!
有经验的能否帮我解决下这个问题?


接触的这么多液晶当中,NOKIA 5110的算是比较好用的,时序上没发现问题,速度快,很好用,只是初始化的时候的温度校正 偏置电压的之类的设置不是很懂。

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

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

出0入0汤圆

发表于 2012-2-18 15:11:55 | 显示全部楼层
1.  ns级的应该是信号上升时间吧,即使是比较快的1335也只有10MHz的工作频率;
2. 一个byte的数据对于控制器不是一条指令就可以做完的;
3. NT7532(128*64)或者KS0108(64*64)工作频率应该是1MHz左右

出0入0汤圆

 楼主| 发表于 2012-2-18 15:35:39 | 显示全部楼层
回复【1楼】Jigsaw
-----------------------------------------------------------------------

12864是ST7920的


(原文件名:1.jpg)


(原文件名:2.jpg)


(原文件名:3.jpg)

0us 说的是Exce time

实际测试,如果如果Tas段的延时比较小,成功初始化后,连续两次几次读到的值都可能是20几(实际上应该是0),

出0入0汤圆

发表于 2012-2-18 16:36:12 | 显示全部楼层
不知道这个问题和Tas有多大联系
液晶控制器即使你没下指令也会在不断地执行扫描动作的,也就是在“忙”

出0入0汤圆

 楼主| 发表于 2012-2-18 17:01:20 | 显示全部楼层
回复【3楼】Jigsaw
-----------------------------------------------------------------------

嗯,我也不知道和Tas有什么关系,实际测试就是有这样的问题。。。

出0入0汤圆

发表于 2012-2-18 18:03:53 | 显示全部楼层
你上面说的的那个是IO时序,IO时序和指令执行时间是不同的概念
能够输入IO口,并不代表指令就能立刻执行完毕。而且不同指令执行时间是不同的
举例子说,清屏指令,你输入一个指令当然很简单,但是内部RAM却要逐个清零,需要很长时间。假如你只把其中一个单元清零,那么就很快了。
所以才会有“忙”标志的出现


------------------------
不知是店家坑爹还是HX8347的公司咋的,在HX8347的datasheet上居然一点都没有提到指令的问题,倒是有初始化的参考代码。然后在网上找了找datasheet,发现居然有HX8347-A HX8347-G(T) 和HX8347-G(N)  几个版本的,有的datasheet上是有command set的,但是对于参考程序中的指令还是有些对应不上。网上程序倒是挺多,但是找不到明确的说明,从学习的角度出发,很不爽!

产品投入市场之后还需要改善的,假如你有钱的话,直接从代理弄一批,他能给你对得上号的datasheet
datasheet只需要告诉你那个指令用来设置什么就行了,至于这些参数干什么用,只有专业的人才懂得。但是你想要中文的,就只能怪你生在中国了

遇到问题就发牢骚,找客观原因,不如老老实实地打基础吧!你看别人的程序都有意见,那么写程序的人就不用活了!

出0入0汤圆

发表于 2012-2-18 18:28:26 | 显示全部楼层
MARK.

出0入0汤圆

发表于 2012-2-18 18:33:59 | 显示全部楼层
一般都是从那个厂家买的,找厂家要初始化代码,不论51,AVR,PIC。
可能只需修改很少,就可以用了,
剩下画图,显示字符汉字等等,就是自己的事了。

需要延时就延时,况且51读1602,12864没必要那么快吧?

出0入0汤圆

发表于 2012-2-18 20:37:54 | 显示全部楼层
从时序图看,Tas是RW信号建立后到E信号建立必须延迟的时间,与读写数据没关系。因为读写数据是在E信号建立后经过一定延迟才可以进行的。Tddr是E信号到给出数据线信号所需要的时间(理论上这时数据已经稳定),与读写数据有关。但实际上,手册上的Tddr基本是理想状态的数值。因为线路板设计、系统总线上可能挂接的器件数,都影响数据线上信号的稳定,实际上稳定可靠的读写数据所需延迟的时间比Tddr大得多。
偶到觉得TPW是一个重要参数,它表明的是稳定的E信号必须维持的时间。似乎表明在这段时间内器件内部忙,不能处理额外的指令或参数,也就是说少于这段时间,读写数据都有可能出错。

出0入0汤圆

 楼主| 发表于 2012-2-18 21:49:55 | 显示全部楼层
回复【5楼】not_at_all
-----------------------------------------------------------------------

“你上面说的的那个是IO时序,IO时序和指令执行时间是不同的概念
能够输入IO口,并不代表指令就能立刻执行完毕。而且不同指令执行时间是不同的 ”

关于那个12864,首先,如果指令还在执行,那么它应该返回忙,我就知道得到的数据可能是没有用的
但是它不仅不返回忙,还返回错误的数据,很明显这个就是有问题的。


"datasheet只需要告诉你那个指令用来设置什么就行了,至于这些参数干什么用,只有专业的人才懂得"

我想说,店家给的程序功能和资料都不完善,所以我需要用datasheet,才能用相关的指令去完善程序。什么只有专业的人才懂得。。。datasheet就是写给应用开发的人员看的,


"但是你想要中文的,就只能怪你生在中国了 "

我并没有提到想要足文的datasheet,因为我看的datasheet从来都是E文的,中文的经常写错。


“遇到问题就发牢骚,找客观原因,不如老老实实地打基础吧! ”

我也是正常人,有发牢骚的权利,发牢骚不代表我就会这样放弃当前的问题。


“你看别人的程序都有意见,那么写程序的人就不用活了!”

我帖子里好像没有提到看别人的程序有意见这回事吧,我只是想看懂别人的程序,又找不到相关的资料。

出0入0汤圆

 楼主| 发表于 2012-2-18 21:56:27 | 显示全部楼层
回复【7楼】Excellence 精益求精
-----------------------------------------------------------------------

"需要延时就延时,况且51读1602,12864没必要那么快吧?"

呵呵,很多程序员都有一种尽量追求速度的惯,虽然其实很多精力是不得花在那上面的,一老外说的 tunning can't fix a bad design

再说12864,我只是想严格按照Datasheet写一次驱动,也留有一半以上的裕量,但是测试发现还是太快,那我也没办法,除非延时函数

有问题,但这个不太可能。

出0入0汤圆

 楼主| 发表于 2012-2-18 22:01:22 | 显示全部楼层
回复【7楼】Excellence 精益求精
-----------------------------------------------------------------------

"一般都是从那个厂家买的,找厂家要初始化代码,不论51,AVR,PIC。 "

我的TFT是顺便从淘宝店家买的,谁知提供的资料不全,代码功能也不完善,所以我才有了怨念。。。

出0入0汤圆

 楼主| 发表于 2012-2-18 22:06:18 | 显示全部楼层
关于 HX8347 的

找到和配套程序对的上的datasheet了,我的是 HX8347-A 的, 资料就在论坛里面找到的

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4644372&bbs_page_no=1&search_mode=1&search_text=hx8347&bbs_id=9999

我之前在网上只搜到 HX8347-A 的 application note,才 50多页。。。哪里讲得了指令。。。我还误以为是datasheet

出0入0汤圆

发表于 2012-2-18 23:04:02 | 显示全部楼层
回复【9楼】Pony279 Pony279
回复【5楼】not_at_all  
-----------------------------------------------------------------------
我帖子里好像没有提到看别人的程序有意见这回事吧,我只是想看懂别人的程序,又找不到相关的资料。
-----------------------------------------------------------------------
我认同你的观点,不过对于你这句话:
“网上程序倒是挺多,但是找不到明确的说明,从学习的角度出发,很不爽!”

我补充一下:
网上的程序只是给作者自己看的,不是教材,甚至有的纯粹是复制的,怀疑发表者自己也没有弄懂。你想学习还是留意一下有关学习心得的文章,这才是你想要的。不过这些要比较细心才能找到。

出0入0汤圆

发表于 2012-2-18 23:40:44 | 显示全部楼层
底层的驱动
最好还是自己写,实在不行找老外的代码
网上国内很多的代码都是互抄的,找bug的时间都够自己写一个了

出0入0汤圆

发表于 2012-2-18 23:59:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-2-19 22:24:08 | 显示全部楼层
反正我感觉液晶的速度不到nS级别

出0入0汤圆

发表于 2012-2-19 22:40:42 | 显示全部楼层
回复【16楼】lxa0
-----------------------------------------------------------------------

nS级别的液晶,,,CRT都达不到这个指标。
要知道液晶电视现在顶级的才120Hz刷新率。
日常那种用的12864之类的,能到20多Hz就相当高了。

出0入0汤圆

 楼主| 发表于 2012-2-20 18:28:00 | 显示全部楼层

重新看了下我以前写的1602的程序,
确实是我把 时序参数 和 指令执行时间 搞混了。。。

不过对于12864,那个问题依然存在。。。
最近没时间,以后再研究这个。。。

出0入0汤圆

发表于 2012-2-20 18:45:09 | 显示全部楼层
ST7920,读写时序只在使能时用1个NOP,其余没用延时,无任何问题,32位MCU 25M主频

出0入0汤圆

 楼主| 发表于 2012-2-20 21:56:48 | 显示全部楼层
回复【19楼】shinehjx
-----------------------------------------------------------------------

不知道你有没有测试过被始化完以后,
直接读 BF&AC,看返回的AC是多少?

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

本版积分规则

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

GMT+8, 2024-6-9 18:04

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

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