170|5

1064

帖子

3

资源

纯净的硅(中级)

有谁知道如何驱动GD32F450z_EVAL开发板上的LCD屏幕吗? [复制链接]

    一块GD32F450Z_EVAL开发板,板上带有3.5寸的LCD彩屏,官方的DEMO只找到了tli模式显示动画图片的示例,没有找到LCD模式写屏幕指定位置的相关代码,也不知道这块LCD屏幕使用的什么驱动芯片及其数据手册。在此请求大家帮助,有示例最好,或者提供LCD屏幕的数据手册也可。先谢谢大家!

    下图是开发板全貌:

Lcd_1.jpg

    这是屏幕的细节:

Lcd_2.jpg

    这是官方提供的DEMO:

Lcd_3.jpg

    分析示例中似乎有LCD和TLI两种显示模式:

Lcd_5.jpg

    这是官方TLI模式显示动画:

Lcd_0.jpg

    在官方的例程中没有找到LCD屏幕写指定位置的函数:

Lcd_4.jpg

此帖出自GD32 MCU论坛

回复

1万

帖子

21

资源

版主

我看例程里有直接写入图片的函数,比如ipa_config((uint32_t)&gImage_image1);,这样的话是不是操作gImage_image1对应的数据就能实现对屏幕指定位置的修改?这种情况可以找一些其它单片机的例程,把对应的函数移植过来。

image.png  

点评

    我将Logo图片数据进行了分析,并试图在图片外围加个方框,初步取得了成功,下图为加了左右竖线及部分横线,因为验证成功了就没有继续修改数据让方框闭合起来。 [attachimg]644776[/attachimg] &  详情 回复 发表于 昨天 10:36
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复

2154

帖子

3

资源

版主

屏拿下来,看看后面的丝印就行了,如果拆不下来,就看init的初始化寄存器,对比一下就知道了。还有就查一下这块开发板的资料就可以了,示例代码应该可以查得到的。


回复

1064

帖子

3

资源

纯净的硅(中级)

littleshrimp 发表于 2022-9-26 20:21 我看例程里有直接写入图片的函数,比如ipa_config((uint32_t)&gImage_image1);,这样的话是不是操作gImag ...

    我将Logo图片数据进行了分析,并试图在图片外围加个方框,初步取得了成功,下图为加了左右竖线及部分横线,因为验证成功了就没有继续修改数据让方框闭合起来。

Lcd_6.jpg

    经过初步分析图像数据,这个Logo图片是320*162点阵像素,每个像素数据为2字节。

Lcd_7.jpg

    如果要采取这个方案显示的话,需要建立一个显示缓存为320*480*2=307200字节,即300k的flash,况且目前还不清楚如何设定图像的起点以及宽、高,所以困难比较大。如果能够找到更简捷的方法,应该会容易一些。


回复

1064

帖子

3

资源

纯净的硅(中级)

lugl4313820 发表于 2022-9-26 22:57 屏拿下来,看看后面的丝印就行了,如果拆不下来,就看init的初始化寄存器,对比一下就知道了。还有就查一下 ...

屏幕背面没有驱动芯片的丝印信息:

Lcd_9.jpg

    右上角芯片的丝印信息如下,不象是驱动芯片:

Lcd_a.jpg

    从厂家官网搜索到的资料有限,百度也找不到更多的资料。我找到的仅有三个版本的资料:

Lcd_8.jpg

    最新的版本TLI范例中LCD有4个型号,我对应的是第2个V1.2:

Lcd_b.jpg

    从代码中我看不出驱动芯片的相关信息:

void lcd_power_on1(void)
{
    lcd_command_write(0xC0); //power control1 command电源控制1命令/w/
    lcd_data_write(0x0A);    //P-Gamma level伽马水平//4.1875v
    lcd_data_write(0x0A);    //N-Gamma level
    lcd_command_write(0xC1); //BT & VC Setting//power contrl2 command/w/
    lcd_data_write(0x41);
    lcd_data_write(0x07);    //VCI1 = 2.5V
    lcd_command_write(0xC2); //DC1.DC0 Setting//power control3 for normal mode
    lcd_data_write(0x33);
    lcd_command_write(0xC5); //VCOM control
    lcd_data_write(0x00);    //NV memory is not programmed NV存储器未编程
    lcd_data_write(0x42);    //VCM Setting
    lcd_data_write(0x80);    //VCM Register Enable
    lcd_command_write(0xB0); //interface mode control //Polarity Setting 接口模式控制//极性设置
    lcd_data_write(0x02);
    lcd_command_write(0xB1); //frame rate control for normal mode 正常模式的帧速率控制
    lcd_data_write(0xB0);    //Frame Rate Setting//70 frame per second//no division for internal clocks 帧速率设置//每秒70帧//内部时钟无分割
    lcd_data_write(0x11);    //17 clocks per line period for idle mode at cpu interface CPU接口的空闲模式每行周期17个时钟
    lcd_command_write(0xB4); //dispaly inversion control 显示反转控制
    lcd_data_write(0x00);    // disable Z-inversion , column inversion 禁用Z反转、列反转
    lcd_command_write(0xB6); //display function control// RM.DM Setting 显示功能控制//RM。DM设置
    lcd_data_write(0x70);    //0xF0
    lcd_data_write(0x02);    //direction of gate scan: G1->G480 one by one, source scan: S1->S960, scan cycle if interval scan in non-display area
	                         //门扫描方向:G1->G480逐个,源扫描:S1->S960,非显示区间隔扫描时扫描周期
    lcd_data_write(0x3B);    //number of lines to drive LCD: 8*(0x3C) = 480 驱动LCD的行数:8*(0x3C)=480
    lcd_command_write(0xB7); //Entry Mode 进入模式
    lcd_data_write(0x07);    //disable low voltage detection, normal display 禁用低压检测,正常显示,
    lcd_command_write(0xF0); //Enter ENG , must be set before gamma setting 输入ENG,必须在gamma设置之前设置
    lcd_data_write(0x36);
    lcd_data_write(0xA5);
    lcd_data_write(0xD3);
    lcd_command_write(0xE5); //Open gamma function , must be set before gamma setting打开伽马函数,必须在伽马设置之前设置
    lcd_data_write(0x80);
    lcd_command_write(0xE5); //Page 1
    lcd_data_write(0x01);
    lcd_command_write(0XB3); //WEMODE=0(Page 1) , pixels over window setting will be ignored.//frame rate control in partial mode/full colors
	                         //WEMODE=0(第1页),窗口设置上方的像素将被忽略//部分模式/全色的帧速率控制
    lcd_data_write(0x00);
    lcd_command_write(0xE5); //Page 0
    lcd_data_write(0x00);
    lcd_command_write(0xF0); //Exit ENG , must be set before gamma setting 退出ENG,必须在gamma设置之前设置
    lcd_data_write(0x36);
    lcd_data_write(0xA5);
    lcd_data_write(0x53);
    lcd_command_write(0xE0); //Gamma setting
    //y fine adjustment register for positive polarity y正极微调寄存器
    lcd_data_write(0x00);
    lcd_data_write(0x35);
    lcd_data_write(0x33);
    //y gradient adjustment register for positive polarity 正极性y梯度调整寄存器
    lcd_data_write(0x00);
    //y amplitude adjustment register for positive polarity 正极性的y振幅调整寄存器
    lcd_data_write(0x00);
    lcd_data_write(0x00);
    //y fine adjustment register for negative polarity y负极性微调寄存器
    lcd_data_write(0x00);
    lcd_data_write(0x35);
    lcd_data_write(0x33);
    //y gradient adjustment register for negative polarity 负极性y梯度调整寄存器
    lcd_data_write(0x00);
    //y amplitude adjustment register for negative polarity 负极性的y振幅调整寄存器
    lcd_data_write(0x00);
    lcd_data_write(0x00);
    lcd_command_write(0x36); //memory data access control 存储器数据访问控制
    lcd_data_write(0x48);
    lcd_command_write(0x3A); //interface pixel format setting 界面像素格式设置
    lcd_data_write(0x55);    //16-bits
    lcd_command_write(0x11); //Exit sleep mode
    lcd_command_write(0x29); //Display on 

    delay(10);
}

 


回复

1064

帖子

3

资源

纯净的硅(中级)

开发板上也找不到LCD的驱动芯片:

Lcd_c.jpg


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

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表