查看: 2497|回复: 0

瑞芯微RK3399嵌入式ARM开发板屏幕配置方法

[复制链接]
  • TA的每日心情
    慵懒
    2017-10-13 15:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2017-10-13 08:46:07 | 显示全部楼层 |阅读模式
    分享到:
    RK3399的CPU采用big.LITTLE大小核架构,双Cortex-A72大核+四Cortex-A53小核结构,对整数、浮点、内存等作了大幅优化,在整体性能、功耗及核心面积三个方面都具革命性提升。 RK3399的GPU采用四核ARM新一代高端图像处理器Mali-T860,集成更多带宽压缩技术:如智能迭加、ASTC、本地像素存储等,还支持更多的图形和计算接口,总体性能比上一代提升45%。

    请参考 drivers/video/rockchip/screen/lcd_LD089WU1_mipi.c
    包含头文件:#include "../transmitter/mipi_dsi.h"
    #define SCREEN_TYPE SCREEN_MIPI 定义屏幕类型为 MIPI,SCREEN_TYPE 如果不设为
    SCREEN_MIPI,MIPI 的相关驱动不会执行。
    #define MIPI_DSI_LANE 4 //定义 LANE 个数
    MIPI_DSI_LANE 是 LCD 的 DATA LANE 数,现在大多数分辨率稍高点的一般是 4 个 LANE 的,所
    以默认可以不用设置,必须和硬件相匹配。
    #define MIPI_DSI_HS_CLK 1000*1000000 //DSI_HS_CLK
    MIPI_DSI_HS_CLK 是各个 LANE 传输时的速率(ddr 双边沿),最小值 80Mbps,最大 1Gbps,默
    认是 1Gbps,这个也基本上不用改,除非板子布线有问题,跑不了 1Gbps 的。
    如果 MIPI 屏幕本身需要初始化,要定义 RK_SCREEN_INIT
    #define RK_SCREEN_INIT 1
    并实现下面两个函数:
    int rk_lcd_init(void) {
    u8 dcs[16] = {0};
    if(dsi_is_active() != 1)
    return -1;
    /*below is changeable*/
    msleep(50);
    dsi_enable_hs_clk(1);
    dcs[0] = LPDT;
    dcs[1] = dcs_exit_sleep_mode;
    dsi_send_dcs_packet(dcs, 2);
    msleep(1);
    dcs[0] = LPDT;
    dcs[1] = dcs_set_display_on;
    dsi_send_dcs_packet(dcs, 2);
    msleep(10);
    dsi_enable_video_mode(1);
    }
    int rk_lcd_standby(u8 enable) {
    u8 dcs[16] = {0};
    if(dsi_is_active() != 1)
    return -1;
    if(enable) {
    /*below is changeable*/
    dcs[0] = LPDT;
    dcs[1] = dcs_set_display_off;
    dsi_send_dcs_packet(dcs, 2);
    msleep(1);
    dcs[0] = LPDT;
    dcs[1] = dcs_enter_sleep_mode;
    dsi_send_dcs_packet(dcs, 2);
    msleep(1);
    } else {
    /*below is changeable*/
    rk_lcd_init();
    }
    说明:
    1、dsi_is_active()用来判断 DSI 是否已经处于工作状态了,如果是返回 1,如果不是返回 0,
    如果出错返回-1。
    2、dcs[0] = LPDT;
    dcs[1] = dcs_enter_sleep_mode;
    dsi_send_dcs_packet(dcs, 2);
    屏的初始化是通过 DSI 来传送数据的,根据需要封装了 dsi_send_dcs_packet 这个接口。对
    于 dcs[]数组,第一个成员为写的模式,第二个成员为 DCS 命令,后面的成员为 DCS 命令的参数。
    上 面 两 句 用 来 发 送 , dcs_exit_sleep_mode 这 个 命 令 , 这 些 DCS 命 令 是 在
    drivers/video/rockchip/transmitter/mipi_dsi.h 定义的,具体的含义请参考 MIPI DCS 的规范。
    当然屏自定义的命令也可以通过该接口发送。
    回复

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 16:32 , Processed in 0.126993 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.