2398|4

1万

帖子

25

TA的资源

裸片初长成(高级)

楼主
 

【庆科Open1081】LCD显示的进一步探索 [复制链接]


       原来我的LCD是不能正常工作的,刚拿到手作LCD测试时,仅显示了乱七八糟的彩色。以后就不再显示了。根据此现象判断,接触不良的可能性最大。所以就反复看LCD插座等处并重焊,没有解决问题。前天又拿着LCD看,因为我不死心,很想把它搞好,当把LCD模块分离后检查,发现MAX3032的第18脚有些异常,仔细观察终于找到了原因:18脚 没焊上!!


一、LCD的驱动IC
    Open1081所配的LCD,资料没有介绍,如果更进一步地使用此LCD的特殊功能,必须知道其驱动IC。随即从庆科的程度寻找突破口,这里有几个关键点:
OSC控制:
                LCD_WriteReg( 0x000, 0x0001 ); /* oschilliation start */
电源控制:
                LCD_WriteReg( 0x100, 0x0000 ); /*power supply setup*/       
窗口控制:
        LCD_WriteReg(0x210,0x0000);
        LCD_WriteReg(0x212,0x0000);
        LCD_WriteReg(0x211,0xEF);
        LCD_WriteReg(0x213,0x013F);
        经过比较,感觉HD66781很象,其手册为:
(PDF) HD66781.pdf (3.96 MB, 下载次数: 4)
做了部分试验,没有发现不符,以后还要继续试验一些特殊功能,以确定它的IC型号。

二、LCD的写入速度
      在庆科的例程中,使用SPI1对其控制,同时SPI1也控制摸屏。使用的速度为1/64:
                SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_64;

清屏时超过1秒(估计值),象这样的速度着实无法接受。经过实验,在二分频时可以正常工作:
             SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;


     然而,它与触屏是一起使用的,触屏的速度低,所以只有这样做:
        (触屏工作前)SPI1->CR1 |= 8;                 // SPI2¨ìØÂêÎa: Fpclk/64
          ……
        (触屏工作后)SPI1->CR1 |= 0xFFC7;                 // SPI2¨ìØÂêÎa: Fpclk/2



三、速度的进一步提高
      进一步查看例程代码,感觉使用SPI时并没有充分提高速度,反而在有些步骤时影响速度,因为使用的是查询式:
uint8_t SPI_Communication(uint8_t send_char)
{
    while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE)==RESET);
    SPI_I2S_SendData(SPI1,(uint16_t)send_char);


    while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE)==RESET);
    return ((unsigned char)SPI_I2S_ReceiveData(SPI1));
}
每一次调用这个函数时,1、使用ST的库函数,由于过程的调用使用有入栈出栈操作。
                                 2、 使用判断语句while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE)==RESET);它会增加至少四个时钟-----即是可以发送时。

         分析电路的形式,使用中断也不能提高速度,因为仍然需要等待。所以,使用IO模拟SPI的方法会好一些,因为在发送前不需要判断发送器是否为空,发送完也不用判断是否发送完。











此帖出自RF/无线论坛

最新回复

那个IO速率我一直没搞懂。。。。是翻转速率吗??输入状态下如果翻转速率有100M那要SPI干嘛??  详情 回复 发表于 2015-2-15 18:53
点赞 关注
 

回复
举报

3238

帖子

5

TA的资源

五彩晶圆(中级)

沙发
 
配置下DMA方式速率会快些
此帖出自RF/无线论坛

点评

现在的关键问题是,大量的数据经过一个狭窄的通道 --- SPI。而DMA要解决的问题是CPU与SPI模块的通讯问题。  详情 回复 发表于 2015-2-15 10:05
个人签名淘宝:https://viiot.taobao.com/Q群243090717
多年专业物联网行业经验,个人承接各类物联网外包项目
 
 

回复

1万

帖子

25

TA的资源

裸片初长成(高级)

板凳
 
wateras1 发表于 2015-2-15 09:52
配置下DMA方式速率会快些

现在的关键问题是,大量的数据经过一个狭窄的通道 --- SPI。而DMA要解决的问题是内部I模块间的通讯问题。

此帖出自RF/无线论坛
 
 
 

回复

180

帖子

3

TA的资源

一粒金砂(中级)

4
 
那个IO速率我一直没搞懂。。。。是翻转速率吗??输入状态下如果翻转速率有100M那要SPI干嘛??
此帖出自RF/无线论坛

点评

有SPI硬件模块时,只要写入相应的寄存器,它自己就可以完成发送或接收。如果配合DMA,还可以不用CPU干预而完成块数据的传输。 而使用IO口,虽然同样可以完成SPI功能,但它是用CPU资料而完成的。  详情 回复 发表于 2015-2-15 20:23
 
 
 

回复

1万

帖子

25

TA的资源

裸片初长成(高级)

5
 
jianping-sun 发表于 2015-2-15 18:53
那个IO速率我一直没搞懂。。。。是翻转速率吗??输入状态下如果翻转速率有100M那要SPI干嘛??



有SPI硬件模块时,只要写入相应的寄存器,它自己就可以完成发送或接收。如果配合DMA,还可以不用CPU干预而完成块数据的传输。
而使用IO口,虽然同样可以完成SPI功能,但它是用CPU资料而完成的。
此帖出自RF/无线论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
快速回复 返回顶部 返回列表