精华内容
下载资源
问答
  • ST7701S 初始化代码生成工具,自动生成各个平台格式,包括SMART,展讯,MTK,高通等等。。。。。
  • ST7701S.rar

    2020-03-20 10:24:25
    本帖含有st7701s芯片手册,datasheet,还含有相应的初始化代码,ST7701S是一款16.7M色系统级芯片(SOC)驱动器LSI,专为中小尺寸TFT LCD显示器而设计,能够支持高达480RGBX864的分辨率,无需RAM即可传输图形数据.480...
  • st7701S 初始化

    2020-09-30 09:41:28
    st7701S初始化代码,测试可以使用,注意三线spi的sck极性,HV和DE模式选择,更多问题可以一起交流
  • ST7701S_SPEC_ V1.2.rar

    2021-05-07 16:25:13
    ST7701S_SPEC_ V1.2
  • ST7701S_SPEC_ V0.2

    2021-03-20 09:36:04
    ST7701S 是常用的小尺寸TFT面板驱动芯片,支持MIPI RGB888等接口 寄存器描述和高版本的没什么不同
  • HSD2.0+ST7701S.txt

    2019-11-20 14:36:08
    显示屏ST7701S MIPI接口,初始化代码,经测试可以正常电量显示屏,MIPI 接口可实现IPS显示屏数据传输,并且节省IO接口,为小芯片系统第一选择,在单片机领域应用广泛!
  • ST7701S_SPEC_ V1.2.pdf

    2019-08-15 09:54:26
    开发ST7701S系列液晶必备文档,官方无修改版本V1.2,需要的请下载。
  • ST7701S_SPEC_V1.1.pdf

    2019-05-09 14:48:53
    ST7701S的技术资料和Application。提供出初学者完善的技术参考资料和应用参考。
  • SR1711023附件二ST7701S_SPEC_ V1.1
  • ST7701S_SPEC_ V1.1.pdf

    2019-08-20 15:50:34
    ST7701S是一款16.7M色系统级芯片(SOC)驱动器LSI,专为中小尺寸TFT LCD显示器而设计,能够支持高达480RGBX864的分辨率,无需RAM即可传输图形数据.480通道源驱动器具有真正的8位分辨率,可通过内部D / A转换器生成...
  • ST7701S_IPS.zip

    2020-11-30 09:30:30
    ST7701 的 datasheet 和 初始化代码。压缩包内包含一份ST7701的手册(datasheet)和一份初始化代码文件 。
  • 用TW8836驱动ST7701S TTL屏调试记录

    千次阅读 2020-04-08 09:59:24
    近段时间做一个项目,要调试3.2寸320x820分辨率的LCD。在此做下记录: 主要是屏st7701s的一些通讯,初始化之类的内容。

    近段时间做一个项目,要调试3.2寸320x820分辨率的LCD。在此做下记录:

    在这里插入图片描述屏规格书如上图
    在这里插入图片描述
    屏的主要接口如上图

    1.查看屏的规格书,如图所示,需要8836和st7701s通讯,方式是3线SPI。
    2.通讯接口SDA,SCK,CS。
    3.RGB接口就比较简单了。

    下面贴一些主要的函数:

    1. 初始化函数,对屏进行复位。在初始化函数里面读屏的ID,如果读到就证明通讯成功了撒。根据描述,读DA,DB,DC也是可以的嘛,读完ID后适当延时再去发命令和数据,不然显示会不正常的,调通之后读不读ID不影响后面发的命令和数据。
      在这里插入图片描述

    2. 初始化成功后就发送命令和数据了,按照屏厂给的参数填数据发送就可以了。

      spi_st7701s_WriteCommand( BYTE i);
      spi_st7701s_WriteData( BYTE i);

      屏厂给的格式大概是这样滴:
      W_C (0xFF);
      W_D (0x77);
      W_D (0x01);
      W_D (0x00);
      W_D (0x00);
      W_D (0x13);

    3. 我的程序里是用的这几个管脚
      P3_3 SPI_CS PIN117
      P1_0 SPI_DSIO PIN60
      P1_1 SPI_SCLK PIN61

      D/C 第一位 D/C = 0,Commond
      D/C = 1,Data
      发送完一个字节后,CS必须拉高,如果不拉高接着就是读取数据。

      SPI时序 eg: send com:0x11 接逻辑分析后再补张逻辑分析仪捉到的图吧。
      在这里插入图片描述

    #define SPI_DSIO P1_0
    #define SPI_SCLK P1_1
    #define SPI_CS	P3_3
    #define RST_PANEL P3_7
    
    void ST7701S_Init(void)
    {
    	BYTE ID1,ID2,ID3;
    	#if 1
    	RST_PANEL = 1;
    	delay1ms(100);
    	#endif
    	RST_PANEL = 0;
    	delay1ms(200);
    	RST_PANEL = 1;
    	
    	#if 0
    	ID1 = Spi_St7701s_ReadByte(0xDA);
    	ID2 = Spi_St7701s_ReadByte(0xDB);
    	ID3 = Spi_St7701s_ReadByte(0xDC);
    	Printf("\nLCD ID:0x%bx 0x%bx 0x%bx", ID1,ID2,ID3);
    	#endif
    }
    static BYTE Spi_St7701s_ReadByte(BYTE id)
    {
    	BYTE i,tmp = 0;
    
    	SPI_CS = 0;
    	
        SPI_DSIO = 0;
    
    	SPI_SCLK = 0;
    	SPI_Dealy(1);
    	SPI_SCLK = 1;
    	SPI_Dealy(1);
    
    	spi_st7701s_SendData(id);
    	//先写寄存器地址0x04	
    	SPI_SCLK = 0;
    	SPI_DSIO = 1;//设为高阻态输入模式?
    	
    	SPI_Dealy(1);
    	for(i = 0;i < 8;i++)
    
    	{
    		SPI_SCLK = 1;
    
    		tmp <<= 1; //移位
    		
    		if(SPI_DSIO) tmp |= 1; //读取一位数据
    		
    		SPI_SCLK = 0;
    		
    	}
    	SPI_SCLK = 1;
    	SPI_Dealy(1);
    	SPI_SCLK = 0;
    
    	SPI_DSIO = 1;
    	
    	SPI_CS = 1;
    
    	return tmp; //返回数据
    }
    static void spi_st7701s_SendData(BYTE i)
    {
    	unsigned char n;
    	 for(n = 0; n < 8; n++) { 
    	 if(i & 0x80) {
    		 SPI_DSIO = 1;
    	 } else {
    		 SPI_DSIO = 0;
    	 }
    	   
    	 i<<= 1;
    
    	 SPI_SCLK = 0;
    	 SPI_Dealy(1);
    	 SPI_SCLK = 1;
    	 SPI_Dealy(1);
      }
    }
    static void spi_st7701s_WriteCommand( BYTE i)
    {
    	
    	SPI_CS = 0;
    	
        SPI_DSIO = 0;
    
    	SPI_SCLK = 0;
    	SPI_Dealy(1);
    	SPI_SCLK = 1;
    	SPI_Dealy(1);
    
    	spi_st7701s_SendData(i);
    
        SPI_CS = 1;
    }
    static void spi_st7701s_WriteData( BYTE i)
    {
    
    	SPI_CS = 0;
    	
    	SPI_DSIO = 1;
    
    	SPI_SCLK = 0;
    	SPI_Dealy(1);
    	SPI_SCLK = 1;
    	SPI_Dealy(1);
    
    	spi_st7701s_SendData(i);
    	
    	SPI_CS = 1;
    
    }
    
    

    关于程序还有一种发送命令和数据的做法

    typedef struct _st7701s_reg {
    	BYTE comm;
    	BYTE val[20];
    	BYTE len;
    }st7701s_reg;
    
    static CONST st7701s_reg st7701s_organize[] = {
    	/*comm     val                   len*/
    	{0x11,NULL,NULL},
    	{0xFF,{0x77,0x01,0x00,0x00,0x10},5},
    	...//屏厂给的参数
    };
    
    static void Spi_WriteC_D(st7701s_reg *st7701s_reg_dat)
    {
    	#if 1
    	BYTE i,j;
    	for (i = 0; i < 36; ++i)//LEN_ARRAY(st7701s_organize, struct st7701s_reg)
    	{
    		spi_st7701s_WriteCommand(st7701s_reg_dat[i].comm);
    		if(st7701s_reg_dat[i].comm == 0x11)
    		{	delay1ms(120);}
    
    		
    		Printf(" \nWriteCommand: %bx,datalen:%bd\n", st7701s_reg_dat[i].comm,st7701s_reg_dat[i].len);
    		for (j = 0; j < st7701s_reg_dat[i].len; ++j)//LEN_ARRAY(st7701s_organize[i].val, BYTE)
    		{
    			if (st7701s_reg_dat[i].comm == st7701s_reg_dat[i].val[j])
    			{
    				if (st7701s_reg_dat[i].val[j] == 0xB9) 
    				{
    					//LOG("Now Delay 10 ms!\n");
    					delay1ms(10);
    				}
    				break;
    
    			}	
    			//if(st7701s_reg_dat[i].val[j]!=NULL)
    			spi_st7701s_WriteData(st7701s_reg_dat[i].val[j]);
    			if(st7701s_reg_dat[i].comm == 0xD0)
    			delay1ms(100);
    			Printf(" WriteData: %bx", st7701s_organize[i].val[j]);
    		}
    		//Printf(" WriteData: %bx", st7701s_reg_dat[i].val);
    	}
    	#endif
    }
    #endif
    
    

    这个是之前在网上找的例程,想贴个连接没找着,找着再说吧。我试过了,好像有点问题,虽然发送数据是一样的,但是屏显示的效果有点差异,可能是延时问题,有时间再看看这个问题。

    展开全文
  • st7701s芯片手册,datasheet,还含有相应的初始化代码,为RGB接口代码
  • ST7701S_SPEC_ V1.4.pdf

    2021-03-30 10:40:34
    原厂定期更新维护,应用问题可以提问!
  • * Resolution : 480x480 * Color format : RGB565 * LCD interface : 24-bits /* Porch : HT = 610, HBP = 60, VT=534, HFP=60, HST=10, vbp=25, VST=4, vfp=25 */ /* Line Time : 32us */ /* Frame Rate : 60hz ...
  • /* Resulation : 480x480 */ /* Inversion : 2dot */ /* Porch : vbp=15 , vfp=12 */ /* Line Time : 32us */ /* Frame Rate : 60hz */
  • ST7701规格书 ST7701_SPEC_V1.1,ST7701S是一款16.7M色系统级芯片(SOC)驱动器LSI,专为中小尺寸TFT LCD显示器而设计。
  • ST7701-STMF469.zip

    2019-09-17 13:26:49
    1.硬件芯片为ST7701S显控mipi芯片与STM32F469 2.代码中的ST7701S初始化及DSI接口初始化代码是花费了很大时间精力搞定的,有很重要的借鉴意义 3.在此基础上,完成了基于EMWIN与底层衔接代码,也是花费大量时间经历...
  • 这是我用来驱动MIPI屏的初始化参数,屏的尺寸为854*480像素,目前网上关于ST7701s驱动芯片的资料特别少,这个初始化参数亲测可用
  • 本帖含有st7701s手册,datasheet,还含有相应的初始化代码,为mipi接口代码
  • 1.uboot层 1)sprd/u-boot64/drivers/video/sprdfb/lcd 此路径下添加LCM驱动文件,如lcd_st7701_...obj-$(CONFIG_FB_LCD_ST7701S_MIPI) += lcd_st7701s_mipi.o 2)sprd\u-boot64\drivers\video\sprdfb 修改配置spr...

    1.uboot层

    1)sprd/u-boot64/drivers/video/sprdfb/lcd

    此路径下添加LCM驱动文件,如lcd_st7701_mipi.c

    修改Makefile

    obj-$(CONFIG_FB_LCD_ST7701S_MIPI) += lcd_st7701s_mipi.o

    2)sprd\u-boot64\drivers\video\sprdfb

    修改配置sprdfb_panel.c

    extern struct panel_spec lcd_mipi_spec;

    static struct panel_cfg panel_cfg[] = {

        {
            .lcd_id = 0x7701,    //此id可自定义,匹配uboot层返回的id,相同就可识别LCM
            .panel = &lcd_st7701_mipi_spec,
        },

    };

    vidinfo_t panel_info = { //此处需要适配LCM分辨率大小配置,如配置不正确会导致卡死在uboot层,黑屏,无法进入kernel

        .vl_col = 720,
        .vl_row = 1440,        
        .vl_bpix = 4,
        .cmap = colormap,

    };

    2.kernel层

    1)sprd\kernel\drivers\video\sprdfb\lcd

    此路径下添加LCM驱动文件,如lcd_st7701_mipi.c

    修改Makefile

    obj-$(CONFIG_FB_LCD_ST7701_MIPI) += lcd_st7701_mipi.o

    2)sprd\kernel\drivers\video\sprdfb

    此路径下修改Kconfig

    config FB_LCD_ST7701_MIPI
        boolean "support ST7701 mipi panel"
            depends on FB_SC8825
        default n

    3.打开uboot宏开关

    sprd\u-boot64\include\configs

    修改sp7731gea.h

    #define CONFIG_FB_LCD_ST7701_MIPI

    /*此宏需要根据实际分辨率配置,如配置有误会导致无法亮屏,看log却可以正常读ID和进入kernel*/

    //#define CONFIG_FB_LOW_RES_SIMU 
    #ifdef CONFIG_FB_LOW_RES_SIMU
    #define LCD_DISPLAY_WIDTH 720
    #define LCD_DISPLAY_HEIGHT 1440
    #endif

    4.打开kernel宏开关

    sprd\kernel\arch\arm\configs

    修改sp7731gea-dt_defconfig

    CONFIG_FB_LCD_ST7701_MIPI=y

    展开全文
  • 屏闪调试

    2019-06-03 14:42:57
    kernel / arch/arm/boot/dts/lcd/lcd_st7701s_ctc_hlt_mipi_fwvga.dtsi -boot15 / drivers/video/sprd/lcd/lcd_st7701s_ctc_hlt_mipi_fwvga.c //山屏问题 kernel / arch/arm/boot/dts/sc7731e.dtsi //关于驱动开机...

    kernel / arch/arm/boot/dts/lcd/lcd_st7701s_ctc_hlt_mipi_fwvga.dtsi

    -boot15 / drivers/video/sprd/lcd/lcd_st7701s_ctc_hlt_mipi_fwvga.c //山屏问题

    kernel / arch/arm/boot/dts/sc7731e.dtsi //关于驱动开机画面调闪问题解决:                clock-src = <384000000 96000000>;

                   <&clk_twpll_96m>,

     

    展开全文
  • LCD_init.txt

    2019-08-23 15:22:13
    ST7701S 驱动芯片的4寸屏MCU初始化程序,已测试可以用STM32H743正常初始化冠显和天显威触摸屏。SPI采用模拟,可优化延时时间提高效率。
  • /*----------------------------------------------------------... PANEL_ST7701S_WVGA = 1, PANEL_ST7701S_30TH, }; /* add for detect GPIO24 lcd_ID0 and GPIO65 lcd_ID1 */ int panel_detect_pin_id(void) { UI
    /*--------------------------------------------------------------------------------*/
    enum lcd_panel_type {
        PANEL_ST7701S_WVGA = 1,
        PANEL_ST7701S_30TH,
    };
    /*
    add for detect GPIO24 lcd_ID0 and GPIO65 lcd_ID1 
    */
    int panel_detect_pin_id(void)
    {
        UINT32  lcd_id0 = 0;
        UINT32  lcd_id1 = 0;
        EFI_STATUS status = EFI_SUCCESS;
        UINT32 idconfig,idconfig1;
        EFI_TLMM_PROTOCOL   *TLMMProtocol = NULL;
        //DEBUG((EFI_D_ERROR, "panel_detect_pin_id is start\n")); 
        
    if (EFI_SUCCESS != gBS->LocateProtocol(&gEfiTLMMProtocolGuid, NULL, (void**)&TLMMProtocol))
     {
        DEBUG((EFI_D_ERROR, "DisplayDxe: Locate TLMM protocol failed!\n"));
     }
    else
     {    
            idconfig =  EFI_GPIO_CFG( LCD_ID0_GPIO, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA );
            status = TLMMProtocol->ConfigGpio((UINT32)idconfig,TLMM_GPIO_ENABLE);
            if (status != EFI_SUCCESS)
            {
                DEBUG((EFI_D_ERROR, "Faile to Configure MSM GPIO 24 ENABLE !!\n"));
            }    
            
            idconfig1 =  EFI_GPIO_CFG( LCD_ID1_GPIO, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA );
            status = TLMMProtocol->ConfigGpio((UINT32)idconfig1,TLMM_GPIO_ENABLE);
            if (status != EFI_SUCCESS)
            {
                DEBUG((EFI_D_ERROR, "Faile to Configure MSM GPIO 65 ENABLE !!\n"));
            }    
            /*Read Value*/
                gBS->Stall(20000);//20ms
            status = TLMMProtocol->GpioIn(idconfig, &lcd_id0);
                gBS->Stall(5000); // 5 ms .
            status = TLMMProtocol->GpioIn(idconfig1, &lcd_id1);
                DEBUG((EFI_D_ERROR, "lcd_id0 = %d\t lcd_id1 = %d.\n",lcd_id0,lcd_id1));  
            }
        /*Select TP*/
        if ((lcd_id0 == GPIO_LOW_VALUE) && (lcd_id1 == GPIO_HIGH_VALUE)) {
                DEBUG((EFI_D_ERROR, "PANEL_ST7701S_WVGA\n"));   
            return PANEL_ST7701S_WVGA;
            }
        else if ((lcd_id0 == GPIO_LOW_VALUE) && (lcd_id1 == GPIO_LOW_VALUE)){
                DEBUG((EFI_D_ERROR, "PANEL_ST7701S_30TH\n"));   
            return PANEL_ST7701S_30TH;
            }
            
        return 0;
    }
    

    在这里插入图片描述

    展开全文
  • 屏幕规格书:AX040TN01.pdf,型号名称:VT40TVGR01,驱动IC:ST7701S。特性与机械规格如下: 接口为40Pin FPC,下图使用STM32F103VET6驱动接口,利用GPIO口模拟SPI和RGB驱动。 RGB接口,本想用荔枝派来驱动,...

空空如也

空空如也

1 2
收藏数 34
精华内容 13
关键字:

ST7701s