找回密码
 注册
搜索
查看: 4012|回复: 16

[讨论] lcd 驱动中的cmd data

[复制链接]
发表于 2011-8-2 16:18:45 | 显示全部楼层 |阅读模式
小弟刚做驱动,不明白lcd 中cmd data什么意思?

LCD初始化的时候类似这样:
   LCD_WRITE_CMD(0xD0);                              

   LCD_WRITE_DATA(0x07);                                

   LCD_WRITE_DATA(0x42);                                

   LCD_WRITE_DATA(0x1B);                                

                                                                  

   LCD_WRITE_CMD(0xD1);                              

   LCD_WRITE_DATA(0x00);                                

   LCD_WRITE_DATA(0x14);                                

   LCD_WRITE_DATA(0x1B);
查了datasheet,一部分是command 后面跟着这个command的参数,
1.不明白所谓的命令是什么,是寄存器地址吗;所谓的参数是干吗的,是写入对应的寄存器的数据?
2.如何区别写入是cmd还是data?我只看都是通过sdi写入的,在拉高拉低sdi线

可能问的比较低级,但真的好疑惑,请大虾解惑~
发表于 2011-8-10 11:15:26 | 显示全部楼层
以下是引用Justinyue在2011-8-9 20:21:07的发言:


为何 有的cmd没有参数?


我要扇你几下了

为什么一定要带参数

1:开关就不需要参数,不需要区分,是优雅的关,还是摔门出去
2:设置白平衡等,你就要设置参数,比如你要设置成哪个值
点评回复

使用道具 举报

 楼主| 发表于 2011-8-9 20:21:07 | 显示全部楼层
以下是引用fly100在2011-8-2 19:57:05的发言:
                重庆有做手机方案的?

                CMD 代表写寄存器的地址,
                DATA 代表向此寄存器写的值。

                不知道楼主有没有单片机的经历,
                寄存器 -》 数据。


为何 有的cmd没有参数?
点评回复

使用道具 举报

 楼主| 发表于 2011-8-5 13:28:03 | 显示全部楼层
以下是引用fly100在2011-8-2 19:57:05的发言:
                重庆有做手机方案的?

                CMD 代表写寄存器的地址,
                DATA 代表向此寄存器写的值。

                不知道楼主有没有单片机的经历,
                寄存器 -》 数据。

谢谢你的回复。
我在上海,
不知道为什么位置显示 ”重庆江北“,个人信息没有此设置项,不知怎么搞的,汗一个~
点评回复

使用道具 举报

发表于 2011-8-4 17:50:18 | 显示全部楼层
进入函数内部看下不就ok了,mpu有专门的接口,时序都初始化好了以后,通过上面的函数就可以把寄存器地址和所需要的参数放入mpu接口的相关寄存器中,这个可以参考datasheet,里面有所有的寄存器用途说明,理解这个的重点就是看代码,不多,
点评回复

使用道具 举报

发表于 2011-8-3 12:33:14 | 显示全部楼层
走过路过,没有错过
点评回复

使用道具 举报

发表于 2011-8-3 08:48:06 | 显示全部楼层
我不肯定,我只是把我一个模糊的印象说出来,让LZ了解下

LCD的命令和数据,有两种方式


一种是一个命令,后面跟一个数据

一种是一个命令,后面跟几个数据

以上两种,其中一种叫NOKIA方式。

其实LZ如果不是做LCD的话,不必深究这些东西,这些都是LCD的FAE会帮你做好的,你要做的,只是把他们纳入你的LCD驱动代码而已,

特别注意是时序,还有管脚的配置。

因为这两个东西就是造成白屏 倒屏 花屏等的根源。

具体要看DATASHEET,比如本人之前碰到的XXXXX这个芯片(不具体表明,免得人家找我麻烦)

他就是非标的做法,在WR  和CS都是低的时候,任何一个拉高,都会向LCD 的寄存器里写数据,
这个要特别注意的,但是DATASHEET里,他们很乖的,只写一种,非标的不会写在DATASHEET里,否则会吃官司的,哈哈
点评回复

使用道具 举报

发表于 2011-8-3 08:37:47 | 显示全部楼层
以下是引用Justinyue在2011-8-2 19:52:59的发言:



又见yilisa,谢谢
52的搜索实在不好用,木有找到啊,是你回的贴还是发的贴。
麻烦提供个链接啦~


http://www.52rd.com/bbs/Detail_RD.BBS_201788_15_1_1.html

http://www.52rd.com/bbs/Detail_RD.BBS_195194_5_1_1.html

这两个都是关于LCD的

一年以前写的东西,第一个帖子是转的,第二个配图的帖子是原创。

也许有错误,时间久了,也懒得更新了。
点评回复

使用道具 举报

发表于 2011-8-2 23:19:59 | 显示全部楼层
路过学习。
点评回复

使用道具 举报

发表于 2011-8-2 19:57:05 | 显示全部楼层
重庆有做手机方案的?

  CMD 代表写寄存器的地址,
  DATA 代表向此寄存器写的值。

  不知道楼主有没有单片机的经历,
  寄存器 -》 数据。
点评回复

使用道具 举报

 楼主| 发表于 2011-8-2 19:52:59 | 显示全部楼层
以下是引用yilisha在2011-8-2 16:54:16的发言:
LZ可以搜下我的帖子


又见yilisa,谢谢
52的搜索实在不好用,木有找到啊,是你回的贴还是发的贴。
麻烦提供个链接啦~
点评回复

使用道具 举报

发表于 2011-8-2 16:54:16 | 显示全部楼层
LZ可以搜下我的帖子
点评回复

使用道具 举报

发表于 2011-8-12 15:12:26 | 显示全部楼层
以下是引用yilisha在2011-8-3 8:48:06的发言:

我不肯定,我只是把我一个模糊的印象说出来,让LZ了解下

LCD的命令和数据,有两种方式


一种是一个命令,后面跟一个数据

一种是一个命令,后面跟几个数据

以上两种,其中一种叫NOKIA方式。

其实LZ如果不是做LCD的话,不必深究这些东西,这些都是LCD的FAE会帮你做好的,你要做的,只是把他们纳入你的LCD驱动代码而已,

特别注意是时序,还有管脚的配置。

因为这两个东西就是造成白屏 倒屏 花屏等的根源。

具体要看DATASHEET,比如本人之前碰到的XXXXX这个芯片(不具体表明,免得人家找我麻烦)

他就是非标的做法,在WR                和CS都是低的时候,任何一个拉高,都会向LCD 的寄存器里写数据,
这个要特别注意的,但是DATASHEET里,他们很乖的,只写一种,非标的不会写在DATASHEET里,否则会吃官司的,哈哈


热心人。
点评回复

使用道具 举报

 楼主| 发表于 2011-8-11 13:43:34 | 显示全部楼层
楼上那位说
cmd代表写寄存器的地址,DATA 代表向此寄存器写的值
如果没有参数,仅仅写一个地址有何用?
点评回复

使用道具 举报

发表于 2011-9-4 23:40:31 | 显示全部楼层
慢慢熬吧,东西很多额
点评回复

使用道具 举报

 楼主| 发表于 2012-2-21 16:26:46 | 显示全部楼层
都是通过spi写入LCD module,如何区分是cmd还是data?
两个接口如下:

  1. static void ILI9481ds_spi_write_reg_byte(u8 val)
  2. {
  3.         int i;       
  4.         gpio_set_value(spi_cs, 0);
  5.         gpio_set_value(spi_sclk, 0);               
  6.         gpio_set_value(spi_sdi, 0);               
  7.         ndelay(100);
  8.         gpio_set_value(spi_sclk, 1);  /区别就在这里:写data时这里是拉低
  9.         ndelay(100);
  10.         for (i = 0; i < 8; i++)
  11.         {
  12.                 /* #1: Drive the Data (High or Low) */
  13.                 gpio_set_value(spi_sclk, 0);
  14.                 if (val & bit_shift[i])
  15.                         gpio_set_value(spi_sdi, 1);
  16.                 else
  17.                         gpio_set_value(spi_sdi, 0);

  18.                 /* #2: Drive the Clk High and then Low */
  19.                 //ndelay(100);
  20.                 gpio_set_value(spi_sclk, 1);
  21.                 ndelay(100);
  22.         }       
  23.         /*FIXME: Idle state of sdi should be low */
  24.         if (gpio_get_value(spi_sdi)) {
  25.                 //pr_info("%s(): warning spi_sdi may dismatch\n", __func__);
  26.                 gpio_set_value(spi_sdi, 0);
  27.         }               
  28.         gpio_set_value(spi_cs, 1);
  29. }

  30. static void ILI9481ds_spi_write_data_byte(u8 val)
  31. {
  32.         int i;
  33.    
  34.         gpio_set_value(spi_cs, 0);               
  35.         gpio_set_value(spi_sclk, 0);               
  36.         gpio_set_value(spi_sdi, 1);
  37.        
  38.         ndelay(100);
  39.         gpio_set_value(spi_sclk, 1);
  40.         ndelay(100);

  41.         for (i = 0; i < 8; i++) {
  42.                 /* #1: Drive the Data (High or Low) */
  43.                 gpio_set_value(spi_sclk, 0);
  44.                 if (val & bit_shift[i])
  45.                         gpio_set_value(spi_sdi, 1);
  46.                 else
  47.                         gpio_set_value(spi_sdi, 0);

  48.                 /* #2: Drive the Clk High and then Low */
  49.                 //ndelay(100);
  50.                 gpio_set_value(spi_sclk, 1);
  51.                 ndelay(100);
  52.         }

  53.         /*FIXME: Idle state of sdi should be low */
  54.         if (gpio_get_value(spi_sdi)) {
  55.                 //pr_info("%s(): warning spi_sdi may dismatch\n", __func__);
  56.                 gpio_set_value(spi_sdi, 0);
  57.         }       
  58.         gpio_set_value(spi_cs, 1);
  59. }

复制代码

上面两个函数的唯一区别就是传送数据前spi这个线的高低不同,当是cmd时,spi拉低,data时,spi拉高。
请问这是有lcd 的IC决定的还是spi的规范?
点评回复

使用道具 举报

发表于 2012-4-11 16:31:07 | 显示全部楼层
学习中 受益匪浅
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-24 20:51 , Processed in 0.048364 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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