精华内容
下载资源
问答
  • 在我的通用库里定义了个rgbconfig。用来传递rgb屏幕配置参数。 这里记录下对应的含义。

    在我的通用库里定义了个rgbconfig。用来传递rgb屏幕配置参数。

    这里记录下对应的含义。

    image-20201218013454212

    image-20201218013730561

    image-20201218013844343

    展开全文
  • [RK3399][Android7.1] Display模块配置屏幕时序方法

    千次阅读 热门讨论 2018-01-17 13:47:05
    rk3399平台上提供了两种方法来配置屏的时序参数,uboot也一样。 时序参数写在源代码中: 比如当前用的edp屏, dts只有背光,gpio这些配置。 rk3399-firefly-edp.dts: edp_panel: edp-panel { ...

    OS: Android 7.1
    Board: Firefly-RK3399
    Kernel: v4.4.55

    rk3399平台上提供了两种方法来配置屏的时序参数,uboot也一样。

    时序参数写在源代码中:

    比如当前用的edp屏, dts只有背光,gpio这些配置。
    rk3399-firefly-edp.dts:

        edp_panel: edp-panel {
            compatible = "lg,lp079qx1-sp0v";
            bus-format = <MEDIA_BUS_FMT_RGB666_1X18>;
            backlight = <&backlight>;
            ......
            power_ctr: power_ctr {
                   rockchip,debug = <0>;
                   lcd_en: lcd-en {
                           gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
                           pinctrl-names = "default";
                           pinctrl-0 = <&lcd_panel_enable>;
                           rockchip,delay = <20>;
                   };
                   lcd_rst: lcd-rst {
                           gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
                           pinctrl-names = "default";
                           pinctrl-0 = <&lcd_panel_reset>;
                           rockchip,delay = <20>;
                   };
           };
        };

    对应的时序参数配置是在panel-simple.c中

    static const struct of_device_id platform_of_match[] = {
    ......
         {
            .compatible = "lg,lp079qx1-sp0v",
            .data = &lg_lp079qx1_sp0v,
         }, 
    ......
    };

    lg_lp079qx1_sp0v:

    static const struct panel_desc lg_lp079qx1_sp0v = {
        .modes = &lg_lp079qx1_sp0v_mode,
        .num_modes = 1,
        .size = {
            .width = 129,
            .height = 171,
        },
        .bus_format = MEDIA_BUS_FMT_RGB666_1X18,
    };

    lg_lp079qx1_sp0v_mode:

    static const struct drm_display_mode lg_lp079qx1_sp0v_mode = {
        .clock = 200000,
        .hdisplay = 1536,
        .hsync_start = 1536 + 12,
        .hsync_end = 1536 + 12 + 16,
        .htotal = 1536 + 12 + 16 + 48,
        .vdisplay = 2048,
        .vsync_start = 2048 + 8,
        .vsync_end = 2048 + 8 + 4,
        .vtotal = 2048 + 8 + 4 + 8,
        .vrefresh = 60,
        .flags = DRM_MODE_FLAG_NVSYNC | DRM_MODE_FLAG_NHSYNC,
    };

    时序写在dts中:
    这个方式是和rk3288一样的,比如dts中的mipi屏配置。

    rk3399-firefly-mipi.dsti:

    &mipi_dsi {
        status = "okay";
        dsi_panel: panel {
            compatible ="simple-panel-dsi";
            status = "okay";
            ......
            disp_timings: display-timings {
                              native-mode = <&timing0>;
                              timing0: timing0 {
                                           clock-frequency = <80000000>;
                                           hactive = <768>;
                                           vactive = <1024>;
                                           hsync-len = <20>;   //20, 50
                                           hback-porch = <130>; //50, 56
                                           hfront-porch = <150>;//50, 30
                                           vsync-len = <40>;
                                           vback-porch = <130>;
                                           vfront-porch = <136>;
                                           hsync-active = <0>;
                                           vsync-active = <0>;
                                           de-active = <0>;
                                           pixelclk-active = <0>;
                                       };
                          };
        };
    };
    
    展开全文
  • 屏幕使用的是21寸的奇美M215H3-LA1。 现在很疑惑奇美datasheet上说分辨率是1920*1080. 可是参考时序图上给的又是1080*960. 分辨率到底是多少呢? 按照时序图上给出的参数配了,也没图像显示出来。
  • VGA/LCD时序总结 分类: 嵌入式2015-11-20 11:18:04上次调vga时序都是3年前了,很多概念都记不清了, 故撰写本文, 作为备忘。一、VGA首先以标准的XVGA为例:1024 x 768XGAeXtended-VGA参考...
    
    
     

    分类: 嵌入式

    2015-11-20 11:18:04

    上次调vga时序都是3年前了,很多概念都记不清了, 故撰写本文, 作为备忘。

    一、VGA
    首先以标准的XVGA为例:
    1024 x 768
    XGAeXtended-VGA

    参考
    http://wenku.baidu.com/view/bbf7fd7c5acfa1c7aa00ccb8.html?from=search

    一个行周期()内包含a、b、c、d 4个阶段,即同步脉冲(Sync a)、显示后沿(Back porch b)、显示时序段(Display interval c)和显示前沿(Front porch d)。
    其中只有a为低电平,有时候会将bcd合起来计算。c为图像有效时间,即分辨率。a、b、d都是消隐间隔。a+b+c+d=e(total time)就是整个行周期的时间。

    同样,场周期也有opqr4个参数。
    LCD还有一个参数为刷新率,就是屏幕扫描频率,通常为50~60HZ。人眼感应动画的频率至少为24Hz,即帧速为24帧/秒。
    对于XVGA@60Hz分辨率:
    行时序为      a~d依次为=136 160 1024 24,合计为e=1344
    场时序为      o~s依次为=6 29 768 3,合计为e=806
    像素时钟 pixclk = 1344 * 806 * 60Hz = 65Mhz。

    二、AT070TN92时序
    知道了VGA参数的计算方法。
    我们来看常见屏幕AT070TN92的参数:
    分辨率800x480
    行时序:
    假设同步脉冲a= 40(最大40)
    HS pulse width(thpw) = thb - b = 40
    H Blanking(thb) = 46
    Horizontal Display Area(thd)= 800
    HS Front Porch thfp = 210
    One Horizontal Line(th)= 1056
    DCLK Frequency(fclk) =  33.3 MHz

    这里群创把a+b合起来算作H Blank(thb),对应之前分析的ga时序:
    a = 40
    b = thb - a = 6
    c = thd = 800
    d = 210

    e = thd = a+b+c+d =1056

    同理,假设o = 10
    a = 10
    b = thb - a = 13
    c = thd = 480
    d = 22
    e = thd = a+b+c+d =525


    static struct da8xx_panel A70 = {
        .name = "AT070TN92",
        .width = 800,
        .height = 400,
        .hfp = 210,// 前沿
        .hbp = 6, //后沿
        .hsw = 40, //行同步时间
        .vfp = 22, //场前沿
        .vbp = 13,//场后沿
        .vsw = 10,//场同步
        .pxl_clk = 30000000,//30Mhz
        .invert_pxl_clk = 0,
    };

    static struct da8xx_panel A70 = {
        .name = "AT070TN92",
        .width = 800,
        .height = 400,
        .hfp = 210,// 前沿
        .hbp = 6, //后沿
        .hsw = 40, //行同步时间
        .vfp = 22, //场前沿
        .vbp = 13,//场后沿
        .vsw = 10,//场同步
        .pxl_clk = 30000000,//30Mhz
        .invert_pxl_clk = 0,
    };

    三、Linux中的LCD时序
    struct fb_videomode {
        const char *name;    /* optional */
        u32 refresh;        /* optional */
        u32 xres;  //c
        u32 yres;    //q
        u32 pixclock;  //像素周期,单位ps
        u32 left_margin;//行后沿b
        u32 right_margin;//行前沿d
        u32 upper_margin;//场后沿p
        u32 lower_margin;//场前沿r
        u32 hsync_len;//行同步a
        u32 vsync_len;//场同步o
        u32 sync;
        u32 vmode;
        u32 flag;
    };

    四、AM335时序
    static struct da8xx_panel H70 = { 
        .name = "H70-1024x600",
        .width = 1024,
        .height = 600,
        .hfp = 24,// 前沿
        .hbp = 160, //后沿
        .hsw = 136, //行同步时间
        .vfp = 1, //场前沿
        .vbp = 4,//场后沿
        .vsw = 23,//场同步
        .pxl_clk = 30000000,//30Mhz
        .invert_pxl_clk = 0,
    };


    高清屏N101GBE(1366x768):
    DCLK Frequency              72.6 76.42 80.24 MHz
    Vertical Total Time                       (TV) 774 800 1000
    Vertical Active Display Period        (TVD) 768 768 768 
    Vertical Active Blanking Period       (TVB)  32
    Horizontal Total Time                   (TH)  1592  
    Horizontal Active Display Period     (THD) 1366
    Horizontal Active Blanking Period   (THB) 226

    N101使用DE模式来定义时序,THB = a+b+d,即行消隐时间。THD = c   。


    http://itbbs.pconline.com.cn/notebook/51510665.html
    http://blog.csdn.net/bruce0532/article/details/5861523
    展开全文
  • 开机进度条使用指导文档,内核配置说明介绍,配合USB触摸驱动
  • GPIO模拟spi通信总结 spi四种工作模式 本文模拟spi时序代码 可参考项 本文作为总结和分享 spi四种工作模式 工作方式1: 当CPHA=0、CPOL=0时SPI总线工作在方式1。MISO引脚上的数据在第一个SPSCK沿跳变之前已经上线了...

    spi四种工作模式

    工作方式1:

    当CPHA=0、CPOL=0时SPI总线工作在方式1。MISO引脚上的数据在第一个SPSCK沿跳变之前已经上线了,而为了保证正确传输,MOSI引脚的MSB位必须与SPSCK的第一个边沿同步,在SPI传输过程中,首先将数据上线,然后在同步时钟信号的上升沿时,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时(下降沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。

    工作方式2:

    当CPHA=0、CPOL=1时SPI总线工作在方式2。与前者唯一不同之处只是在同步时钟信号的下降沿时捕捉位信号,上升沿时下一位数据上线。

    工作方式3:

    当CPHA=1、CPOL=0时SPI总线工作在方式3。MISO引脚和MOSI引脚上的数据的MSB位必须与SPSCK的第一个边沿同步,在SPI传输过程中,在同步时钟信号周期开始时(上升沿)数据上线,然后在同步时钟信号的下降沿时,SPI的接收方捕捉位信号,在时钟信号的一个周期结束时(上升沿),下一位数据信号上线,再重复上述过程,直到一个字节的8位信号传输结束。

    工作方式4:

    当CPHA=1、CPOL=1时SPI总线工作在方式4。与前者唯一不同之处只是在同步时钟信号的上升沿时捕捉位信号,下降沿时下一位数据上线。

    本文模拟spi时序代码

    #include <linux/init.h>
    #include <linux/miscdevice.h>
    #include <linux/module.h>
    #include <linux/version.h>
    #include <linux/kernel.h>
    #include <linux/slab.h>
    #include <linux/fs.h>
    #include <linux/errno.h>
    #include <linux/types.h>
    #include <asm/io.h>
    #include <linux/wait.h>
    #include <linux/sched.h>
    #include <linux/interrupt.h>
    #include <linux/delay.h>
    #include <linux/gpio.h>
    
    #define GPIO_PB_8 24
    #define GPIO_PH_4 116
    #define GPIO_PH_5 117
    #define GPIO_PE_11 75
    #define GPIO_PE_12 76
    
    #define SCLK GPIO_PH_4
    #define MOSI GPIO_PH_5
    #define CS GPIO_PE_11
    #define Reset GPIO_PE_12
    #define LCDPWM GPIO_PB_8
    
    #define OUTP 1 //表示GPIO接口方向为输出
    #define INP 0  //表示GPIO接口方向为输入
    
    #define set_gpio_value gpio_set_value
    #define get_gpio_value gpio_get_value
    
    //默认为1则一直关比背光灯,默认为0一直打开背光灯
    #define LCDdefault 0
    
    //数据循环发送次数
    #define sendnum 60000
    
    //先释放一下几个gpio口为了方便以后的占用
    static void spi_free_gpio(void)
    {
        gpio_free(MOSI);
        gpio_free(SCLK);
        gpio_free(CS);
        gpio_free(Reset);
        gpio_free(LCDPWM);
    }
    
    //申请GPIO口资源
    static int spi_request_gpio(void)
    {
        if (gpio_request(MOSI, "spi_mosi") < 0)
        {
            printk("fail to request mosi\n");
            return -1;
        }
        if (gpio_request(SCLK, "spi_sclk\n") < 0)
        {
            printk("fail to request sclk\n");
            return -1;
        }
        if (gpio_request(CS, "spi_cs") < 0)
        {
            printk("fail to request cs\n");
            return -1;
        }
        if (gpio_request(Reset, "spi_reset") < 0)
        {
            printk("fail to request reset\n");
            return -1;
        }
        if (gpio_request(LCDPWM, "spi_lcdpwm") < 0)
        {
            printk("fail to request lcdpwm\n");
            return -1;
        }
        return 0;
    }
    
    /* SPI端口初始化 用于每次传递参数 */
    static void spi_init(void)
    {
        // //spi模拟通信初始化
        // gpio_direction_output(CS, 1);
        // gpio_direction_output(SCLK, 1);
        // gpio_direction_output(MOSI, 0);
        gpio_set_value(SCLK, 0);
        gpio_set_value(MOSI, 0);
    }
    
    /*  
      从设备使能  
      enable:为1时,使能信号有效,SS低电平  
      为0时,使能信号无效,SS高电平  
      */
    //因为不确定cs为高低才是使能,所以先保持原样
    void ss_enable(int enable)
    {
        if (enable)
            set_gpio_value(CS, 0); //SS低电平,从设备使能有效
        else
            set_gpio_value(CS, 1); //SS高电平,从设备使能无效
    }
    
    
    /* SPI字节写 */
    void spi_write_cmd(unsigned char b)
    {
        //变量初始化
        int i;
    
        /* SPI端口初始化 */
        spi_init();
        // udelay(5);
    
        ss_enable(1); //从设备使能有效,通信开始
        // udelay(5);
    
        for (i = 8; i >= 0; i--)
        {
            if (i == 8)
            {
                set_gpio_value(SCLK, 0);
                // udelay(5);               //延时
                set_gpio_value(MOSI, 0); //如果是写命令则首位先写0
                // udelay(5);               //延时
                set_gpio_value(SCLK, 1); // CPHA=1,在时钟的第一个跳变沿采样
                // udelay(5);
            }
            else
            {
                set_gpio_value(SCLK, 0);
                // udelay(5);                        //延时
                set_gpio_value(MOSI, b & 1 << i); //从高位7到低位0进行串行写入
                // udelay(5);                        //延时
                set_gpio_value(SCLK, 1);          // CPHA=1,在时钟的第一个跳变沿采样
                // udelay(5);                        //延时
            }                                     //延时
        }
    
        set_gpio_value(SCLK, 0);
        // udelay(5);
    
        //结束单次通信
        ss_enable(0);
    }
    
    void spi_write_data(unsigned char b)
    {
        //变量初始化
        int i;
    
        /* SPI端口初始化 */
        spi_init();
        // udelay(5);
    
        ss_enable(1); //从设备使能有效,通信开始
        // udelay(5);    //延时
    
        for (i = 8; i >= 0; i--)
        {
            if (i == 8)
            {
                set_gpio_value(SCLK, 0);
                // udelay(5);               //延时
                set_gpio_value(MOSI, 1); //如果是写数据则首位先写1
                // udelay(5);               //延时
                set_gpio_value(SCLK, 1); // CPHA=1,在时钟的第一个跳变沿采样
                // udelay(5);
            }
            else
            {
                set_gpio_value(SCLK, 0);
                // udelay(5);                        //延时
                set_gpio_value(MOSI, b & 1 << i); //从高位7到低位0进行串行写入
                // udelay(5);                        //延时
                set_gpio_value(SCLK, 1);          // CPHA=1,在时钟的第一个跳变沿采样
                // udelay(5);                        //延时
            }
        }
    
        set_gpio_value(SCLK, 0);
        // udelay(5);
    
        //结束单次通信
        ss_enable(0);
    }
    
    
    //屏幕初始化函数
    static void spi_lcd_init(void)
    {
        //spi模拟通信初始化
        gpio_direction_output(CS, 1);
        gpio_direction_output(SCLK, 1);
        gpio_direction_output(MOSI, 0);
    
        //屏幕初始化
        gpio_direction_output(LCDPWM, 1);
        gpio_direction_output(Reset, 1);
        gpio_set_value(LCDPWM, LCDdefault);
        gpio_set_value(Reset, 1);
        mdelay(10);
        gpio_set_value(Reset, 0);
        mdelay(100);
        gpio_set_value(Reset, 1);
        mdelay(500);
        spi_write_cmd(0x11);
        mdelay(120);
     //--------------------------------ST7789S Frame rate setting----------------------------------// 
    spi_write_cmd(0xb2); 
    spi_write_data(0x0c); 
    spi_write_data(0x0c); 
    spi_write_data(0x00); 
    spi_write_data(0x33); 
    spi_write_data(0x33); 
     
    spi_write_cmd(0xb7); 
    spi_write_data(0x35); 
     
    spi_write_cmd(0x3A); 
    spi_write_data(0x55); 
    //---------------------------------ST7789S Power setting--------------------------------------// 
    spi_write_cmd(0xbb); 
    spi_write_data(0x30);//vcom 
     
    spi_write_cmd(0xc3); 
    spi_write_data(0x1C); 
     
    spi_write_cmd(0xc4); 
    spi_write_data(0x18); 
     
    spi_write_cmd(0xc6); 
    spi_write_data(0x0f); 
     
    spi_write_cmd(0xd0); 
    spi_write_data(0xa4); 
    spi_write_data(0xa2); 
    //--------------------------------ST7789S gamma setting---------------------------------------// 
    spi_write_cmd(0xe0); 
    spi_write_data(0xf0); 
    spi_write_data(0x00); 
    spi_write_data(0x0a); 
    spi_write_data(0x10); 
    spi_write_data(0x12); 
    spi_write_data(0x1b); 
    spi_write_data(0x39); 
    spi_write_data(0x44); 
    spi_write_data(0x47); 
    spi_write_data(0x28); 
    spi_write_data(0x12); 
    spi_write_data(0x10); 
    spi_write_data(0x16); 
    spi_write_data(0x1b); 
     
    spi_write_cmd(0xe1); 
    spi_write_data(0xf0); 
    spi_write_data(0x00); 
    spi_write_data(0x0a); 
    spi_write_data(0x10); 
    spi_write_data(0x11); 
    spi_write_data(0x1a); 
    spi_write_data(0x3b); 
    spi_write_data(0x34); 
    spi_write_data(0x4e); 
    spi_write_data(0x3a); 
    spi_write_data(0x17); 
    spi_write_data(0x16); 
    spi_write_data(0x21); 
    spi_write_data(0x22); 
     
    //*********SET RGB Interfae*************** 
    spi_write_cmd(0xB0); 
    spi_write_data(0x11); //set RGB interface and DE mode. 
    spi_write_data(0x00); 
    spi_write_data(0x00); 
     
    spi_write_cmd(0xB1); 
    spi_write_data(0x40); // set DE mode ; SET Hs,Vs,DE,DOTCLK signal polarity 
    spi_write_data(0x00); 
    spi_write_data(0x00); 
     
    spi_write_cmd(0x3a); 
    spi_write_data(0x55); //18 RGB ,55-16BIT RGB 
     
    //************************ 
    spi_write_cmd(0x11); 
    mdelay(120);      //Delay 120ms 
     
    spi_write_cmd(0x29); //display on 
    spi_write_cmd(0x2c); 
        printk("finished invitialized.....\n");
    }
    
    //设置写入色块的坐标
    void addset(unsigned int x,unsigned int y)
    {
            spi_write_cmd(0x2a); //发出x坐标
            spi_write_data(x>>8);
            spi_write_data(x&0xff);
    
            spi_write_cmd(0x2b); //发出y坐标
            spi_write_data(y>>8);
            spi_write_data(y&0xff);
    
            spi_write_cmd(0x2c);
    }
    
    
    
    //写入色块的函数
    void setcolor(void)
    {   
    int ret;
    int x, y;
    u16 color0 = 0x001f; // RGB565, blue    
    u16 color1 = 0xf800; // red
    u16 color2 = 0x07e0; // green
    u16 color3 = 0xffff; // white
    u16 color;
    
    //初始化的时候已经把所有需要的口都重新占用了,所以不需要再次申请了
        // ret = gpio_request(pdata->reset_io, spi->modalias);
        // if (ret < 0)
        //     goto err0;
        // ret = gpio_request(pdata->dc_io, spi->modalias);
        // if (ret < 0)
        //     goto err1;
    
    spi_lcd_init(); //初始化屏
    
    addset(0, 0); //从屏的0,0坐标开始刷
    
    //刷屏, 把整屏分成4块,每块颜色不同
    //  gpio_direction_output(pdata->dc_io, 1); 
        for (y = 0; y < 320; y++)
        {
            for (x = 0; x < 240; x++)
            {
                if (x < 120)
                    color = (y < 160) ? color0 : color1; 
                else
                    color = (y < 160) ? color2 : color3; 
    
                spi_write_data(color >> 8);
                spi_write_data(color & 0xff);
            }
        }
    
    
    printk("set color finished! ...\n");
    
    }
    
    
    //入口主函数
    static int __init ya15c_spi_init(void)
    {
        //spi端口先释放,防止之前有人使用
        spi_free_gpio();
    
        //占用函数要用的几个IO口
        if (spi_request_gpio())
        {
            printk("ya15c spi initializer failure...\n");
            return -1;
        }
    
        //发送命令次数
        int num = sendnum;
        unsigned char datawhite = 0xff;
        unsigned char datablack = 0x00; 
    
        //屏幕初始化
        printk("start to set color! ...\n");
        // setcolor();
        spi_lcd_init();
    
        //开始循环发送信息
        // printk("start send message... \n");
        // while (num >= 0)
        // {
        //     spi_write_data(datawhite);
        //     spi_write_data(datawhite);
        //     spi_write_data(datawhite);
        //     // udelay(20);
        //     num--;
        // }
        // num = 60000;
        // while (num >= 0)
        // {
        //     spi_write_data(datablack);
        //     spi_write_data(datablack);
        //     spi_write_data(datablack);
        //     // udelay(20);
        //     num--;
        // }
    
    
        return 0;
    }
    
    static void __exit ya15c_spi_exit(void)
    {
        printk("ya15c exit!\n");
    }
    
    module_init(ya15c_spi_init);
    module_exit(ya15c_spi_exit);
    MODULE_LICENSE("GPL");
    

    可参考项

    • 本文的时序是先拉低然后放数据,上升自动捕获,这个主要还是看对应的spi通信的协议,或者可以自己设置对应的协议,本文是因为已经定了,所以就只能用这种通信方式。

    • 模拟时序的方式就是根据拉高拉低几个io口,具体要用哪几个io口要看电路图

    • spi_request_gpio之前先free的原因是,已经确认这几个io口就是要给这个驱动使用,所以就可以放心free,不然可能会因为别的程序已经占用而没有办法申请资源

    • spi_write_cmd和spi_write_data的区别就是一共发送九个bit位,但是第一位是0还是1,这个就要看接受spi数据的手册要求了,不过一般都是一样的。

    • spi_lcd_init这个是LCD屏幕初始化的函数,这个因为不同的屏幕内容可能会有差异,可以根据自己的屏幕查找(上网搜索)相应的函数数据以及命令内容

    • setcolor(void) 这个函数包含LCD初始化函数,是用于spi模拟的初始化之后写入色块的,但是由于这样模拟spi写入太过于慢,所以就换了RGB通信也就是现在的LCD初始化参数

    • 原本的spi通信的屏幕参数可以参考这个网页:

        https://blog.csdn.net/jklinux/article/details/74411470?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159418532019724811861656%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=159418532019724811861656&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_v1~rank_blog_v1-1-74411470.pc_v1_rank_blog_v1&utm_term=spi
      
    • 循环发送信息,发送的就是纯白和纯黑的颜色,只适用于测试

    本文作为总结和分享

    如果有在做类似项目的人可以作为参考使用,如果有什么问题,可以评论一起交流探讨,一起进步

    展开全文
  • 要使计算机有条不紊地工作,对各种操作信号的产生时间...中文名时序控制外文名sequential control学科计算机科学定义对操作信号施加时间上的控制方式同步、异步、联合目的使系统有条不紊工作时序控制控制介绍编辑语...
  • VGA时序

    2016-05-31 09:50:00
    原文链接:[笔记]VGA时序及其原理 显示器扫描方式分为逐行扫描和隔行扫描:逐行扫描是扫描从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子...
  • lvds屏幕上电闪下白屏

    千次阅读 2017-07-06 10:41:49
    (1)屏幕时序问题; (2)亮屏和亮背光顺序问题; (3)硬件或者干扰问题 客户没把LCD屏幕的背光引脚接到开发板上,由此可以判断是(2)(3)的问题;点亮屏幕的正确方法是:先 亮屏,再亮背光;灭屏的正确方法是...
  • VGA时序介绍

    2014-03-22 17:22:27
    VGA时序介绍,常见的彩色显示器,一般由 CRT(阴极射线管)构成,彩色是由 GRB(绿 Green 红 Red 蓝 Blue)三基色组成。显示是逐行扫描的方式解决,阴极射线枪发出电子束打在涂有荧光粉 的荧光屏上,产生 GRB 三基色,...
  • /*换算为电压值*/ txt=vol/100+((vol%100)*0.01); /*转换为气体浓度*/ ppm = pow(11.5428 * 35.904 * txt/(25.5-5.1* txt),0.6549)*10;
  • 通过模拟时序来驱动LCD主要为了掌握一些时序相关的知识,将原来由fmc驱动 LCD改为了模拟时序驱动,屏幕刷新速度还是蛮快的
  • TFT时序图详解

    2013-05-09 16:12:26
    TFT时序图详解
  • UML——时序

    2020-06-23 14:38:57
    什么是时序时序图(Sequence Diagrams)描述了对象之间传递消息的时间顺序,它用来表示用例中的行为顺序,是强调消息时间顺序的交互图。时序图描述类系统中类与类之间的交互,它将这些交互建模成消息交换。也...
  • 常见分辨率时序

    千次阅读 2020-08-08 09:32:21
    //=============================================================================================================================================== // VIC Total Active Freq ...
  • LCD屏8080时序

    千次阅读 2020-02-28 23:12:30
    LCD屏常用的时序为8080时序和6800时序, 6800总线又叫做摩托罗拉总线、8080时序也叫做英特尔总线。 Intel 总线的控制线有四根,RD 写使能, WR 读使能, ALE 地址锁存, CS 片选。而 moto 总线只有 三根,R/W 读/写,ALE ...
  • LCD 驱动 时序

    2019-06-12 10:08:53
    在我们详细分析SurfaceFlinger之前要了解一下VSync信号,为下一节分析... 即 Refresh Rate 或 Scanning Frequency,单位赫兹/Hz,是指设备刷新屏幕的频率,该值对于特定的设备来说是个常量,如 60hz。 每一台CRT...
  • VGA时序学习

    2019-10-19 21:36:06
    VGA 接口相必是一个大家非常熟悉的接口,我们快接近 00 年代的人,小时候使用的电脑就使用这种接口的显示屏 ...简单的介绍VGA的时序 一行或一列的数据包含了显示前沿(back porch)、有效数据(active viedo)、...
  • VGA时序及其原理

    2017-12-26 15:27:41
    显示器扫描方式分为逐行扫描和隔行扫描:逐行扫描是扫描从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT对电子束进行消隐,每行结束时,用行同步信号...
  • VGA 时序标准

    2017-12-16 12:21:00
    VGA 显示器扫描方式从屏幕左上角一点开始,从左像右逐点扫描,每扫描完一行,电子束回到屏幕的左边下一行的起始位置,在这期间,CRT 对电子束进行消隐,每行结束时,用行同步信号进行同步;当扫描完所有的行,形成一...
  • MIPI屏上电时序问题

    2020-12-19 23:45:18
    问题现象:板子上电屏幕能显示,待机休眠后背光屏幕无图像. 检查设备树初始化序列 检查设备树上电延时 检查LCD_EN,LCD_RST等端口申请和匹配 使用示波器检查上电时序,最后发现设备树的电源管理部分regulator-always-on...
  • VESA标准 显示器各种分辨率的时序 VESA标准的文档

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,261
精华内容 4,904
关键字:

屏幕时序