SSD1683墨水屏驱动 调试小记

背景

项目中使用了一款墨水屏,4.2寸的,400*300,主控IC是SSD1683,本来是3色屏,打算只用黑白。
使用内波可以实现全刷,刷得非常干净,但时间很长。在网上搜了一个外波,刷新较快,清晰度也还可以。并且有配套的局刷波形。

但外波有个缺点,和屏幕有关,虽然都是SSD1683的主控,尺寸也一样,不同批次生产的屏,工艺可能略有差异,就导致了我新买的屏,刷新效果没有之前的好,显得有一点淡。

于是深入手册,看能不能调节一下外波的参数,驱动电压啥的,提升新屏的显示效果。

调节电压的几个关键CMD

注意,仅仅针对SSD1683这个IC的,其他IC不通用。

0x03 VGH

Gate Driving voltage Control
Set Gate driving voltage
VGH setting from 10V to 20V
默认:00h
在这里插入图片描述

0x04 VSH1 \ VSH2 \ VSL

Source Driving voltage Control
默认:
VSH1 = 41h,即15V
VSH2 = A8h,即5V
VSL = 32h,即-15V
在这里插入图片描述

0x2C VCOM

Write VCOM register
默认:
VSH1 = 00h,即0V?
在这里插入图片描述

其他涉及的CMD

0x3C

在这里插入图片描述

0x3F

在这里插入图片描述

0x21

在这里插入图片描述

0x22

载入波形
在这里插入图片描述
在这里插入图片描述

0x20

update 0x22后的数据,使之生效
在这里插入图片描述

0x18

温度传感器选择
在这里插入图片描述

0x01

驱动输出控制
在这里插入图片描述

0x10

进入睡眠模式
在这里插入图片描述

0x11

数据 扫描设置,对数据地址设置有影响,以及对图片取模等也有影响
在这里插入图片描述

0x12

软复位
在这里插入图片描述

0x44

X 地址起始位
在这里插入图片描述

0x45

Y 地址起始位
在这里插入图片描述

0x24

写数据缓存区
在这里插入图片描述

0x26

写数据缓存区
在这里插入图片描述

初始化代码片段

初始化代码片段

void EPD_init()
{
  EPD_Reset();
  
  EPD_WriteCMD(0x01);  // 驱动输出控制      drive output control
  EPD_WriteData(0x2B); //  Y 的低字节
  EPD_WriteData(0x01); //  Y 的高字节
  EPD_WriteData(0x00);

  EPD_WriteCMD(0x11);  //  数据 扫描设置   对数据地址设置有影响  以及对图片取模等也有影响    data  entry  mode
  EPD_WriteData(0x01); //  X模式 x加 y 减     X-mode  x+ y-

  EPD_WriteCMD(0x44); // X 地址起始位  设置与扫描方式 有关
  EPD_WriteData(0x00);
  EPD_WriteData(0x31);

  EPD_WriteCMD(0x45); // Y 地址起始位  设置与扫描方式 有关
  EPD_WriteData(0x2B);
  EPD_WriteData(0x01);
  EPD_WriteData(0x00);
  EPD_WriteData(0x00);

  EPD_WriteCMD(0x3C); // Border  设置  黑白一般设置为跟随白波形即 0x01        Border setting
  EPD_WriteData(0x01);

  EPD_WriteCMD(0x18);  // Temperature Sensor Selection
  EPD_WriteData(0x80); //80h Internal temperature sensor
}

void EPD_init_Fast(){
  EPD_init();

  EPD_Write((uint8_t *)LUTDefault_full_GDEY042Z98, sizeof(LUTDefault_full_GDEY042Z98));

  // EPD_WriteCMD(0x3F);
  // EPD_WriteData(*(LUTDefault_full_GDEY042Z98 + 227 + 1));

  EPD_WriteCMD(0x03); //门电压   gate voltage
  EPD_WriteData(*(LUTDefault_full_GDEY042Z98 + 228 + 1));
  ESP_LOGI(TAG, "Fast -> gate voltage 0x03 -> 0x%02x",*(LUTDefault_full_GDEY042Z98 + 228 + 1));

  EPD_WriteCMD(0x04); //源电压   source voltage
  EPD_WriteData(*(LUTDefault_full_GDEY042Z98 + 229 + 1));
  EPD_WriteData(*(LUTDefault_full_GDEY042Z98 + 230 + 1));
  EPD_WriteData(*(LUTDefault_full_GDEY042Z98 + 231 + 1));
  ESP_LOGI(TAG, "Fast -> source voltage 0x04 -> 0x%02x,0x%02x,0x%02x",*(LUTDefault_full_GDEY042Z98 + 229 + 1),
            *(LUTDefault_full_GDEY042Z98 + 230 + 1),*(LUTDefault_full_GDEY042Z98 + 231 + 1));

  EPD_WriteCMD(0x2C); /// vcom
  EPD_WriteData(*(LUTDefault_full_GDEY042Z98 + 232 + 1));
  ESP_LOGI(TAG, "Fast -> vcom 0x2C -> 0x%02x",*(LUTDefault_full_GDEY042Z98 + 232 + 1));

  EPD_WriteCMD(0x22);
  EPD_WriteData(0xC0);
  // EPD_WriteData(0xB1);
  EPD_WriteCMD(0x20);
}

void EPD_init_Part(){
  EPD_init();

  EPD_WriteCMD(0x21);
  EPD_WriteData(0x00);
  EPD_WriteData(0x00);

  EPD_Write((uint8_t *)LUTDefault_part_GDEY042Z98, sizeof(LUTDefault_part_GDEY042Z98));

  EPD_WriteCMD(0x3F);
  EPD_WriteData(*(LUTDefault_part_GDEY042Z98 + 227 + 1));

  EPD_WriteCMD(0x03); //门电压   gate voltage
  EPD_WriteData(*(LUTDefault_part_GDEY042Z98 + 228 + 1));
  ESP_LOGI(TAG, "Part -> gate voltage 0x03 -> 0x%02x",*(LUTDefault_part_GDEY042Z98 + 228 + 1));

  EPD_WriteCMD(0x04); //源电压   source voltage
  EPD_WriteData(*(LUTDefault_part_GDEY042Z98 + 229 + 1));
  EPD_WriteData(*(LUTDefault_part_GDEY042Z98 + 230 + 1));
  EPD_WriteData(*(LUTDefault_part_GDEY042Z98 + 231 + 1));
  ESP_LOGI(TAG, "Part -> source voltage 0x04 -> 0x%02x,0x%02x,0x%02x",*(LUTDefault_part_GDEY042Z98 + 229 + 1),
            *(LUTDefault_part_GDEY042Z98 + 230 + 1),*(LUTDefault_part_GDEY042Z98 + 231 + 1));

  EPD_WriteCMD(0x2C); /// vcom
  EPD_WriteData(*(LUTDefault_part_GDEY042Z98 + 232 + 1));
  ESP_LOGI(TAG, "Part -> vcom 0x2C -> 0x%02x",*(LUTDefault_part_GDEY042Z98 + 232 + 1));

  EPD_WriteCMD(0x22);
  EPD_WriteData(0xC0);
  // EPD_WriteData(0xB9);
  EPD_WriteCMD(0x20);

  EPD_ReadBusy();
}

波形文件

// epd_lut.h
#ifndef EPD_LUT_H
#define EPD_LUT_H

static const unsigned char EPD_4IN2_lut_vcom0[] = {
    0x00, 0x08, 0x08, 0x00, 0x00, 0x02,	
	0x00, 0x0F, 0x0F, 0x00, 0x00, 0x01,	
	0x00, 0x08, 0x08, 0x00, 0x00, 0x02,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 					
	};
static const unsigned char EPD_4IN2_lut_ww[] = {
	0x50, 0x08, 0x08, 0x00, 0x00, 0x02,	
	0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,	
	0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	};
static const unsigned char EPD_4IN2_lut_bw[] = {
	0x50, 0x08, 0x08, 0x00, 0x00, 0x02,	
	0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,	
	0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	};
static const unsigned char EPD_4IN2_lut_wb[] = {
	0xA0, 0x08, 0x08, 0x00, 0x00, 0x02,	
	0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,	
	0x50, 0x08, 0x08, 0x00, 0x00, 0x02,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	};
static const unsigned char EPD_4IN2_lut_bb[] = {
	0x20, 0x08, 0x08, 0x00, 0x00, 0x02,	
	0x90, 0x0F, 0x0F, 0x00, 0x00, 0x01,	
	0x10, 0x08, 0x08, 0x00, 0x00, 0x02,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00,	
	};

/******************************partial screen update LUT*********************************/
const unsigned char EPD_4IN2_Partial_lut_vcom1[] ={
    0x00, 0x01, 0x20, 0x01, 0x00, 0x01, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

const unsigned char EPD_4IN2_Partial_lut_ww1[] ={
    0x00, 0x01, 0x20, 0x01, 0x00, 0x01, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

const unsigned char EPD_4IN2_Partial_lut_bw1[] ={
    0x20, 0x01, 0x20, 0x01, 0x00, 0x01, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
};

const unsigned char EPD_4IN2_Partial_lut_wb1[] ={
    0x10, 0x01, 0x20, 0x01, 0x00, 0x01, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
};

const unsigned char EPD_4IN2_Partial_lut_bb1[] ={
    0x00, 0x01,0x20, 0x01, 0x00, 0x01, 
    0x00, 0x00,0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00,0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00,0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00,0x00, 0x00, 0x00, 0x00, 
    0x00, 0x00,0x00, 0x00, 0x00, 0x00,
    0x00, 0x00,0x00, 0x00, 0x00, 0x00, 
};


/******************************gray*********************************/
//0~3 gray
const unsigned char EPD_4IN2_4Gray_lut_vcom[] =
{
    0x00 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
    0x60 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
    0x00 ,0x14 ,0x00 ,0x00 ,0x00 ,0x01,
    0x00 ,0x13 ,0x0A ,0x01 ,0x00 ,0x01,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00
				
};
//R21
const unsigned char EPD_4IN2_4Gray_lut_ww[] ={
    0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
    0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
    0x10 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
    0xA0 ,0x13 ,0x01 ,0x00 ,0x00 ,0x01,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
};
//R22H	r
const unsigned char EPD_4IN2_4Gray_lut_bw[] ={
    0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
    0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
    0x00 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
    0x99 ,0x0C ,0x01 ,0x03 ,0x04 ,0x01,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
};
//R23H	w
const unsigned char EPD_4IN2_4Gray_lut_wb[] ={
    0x40 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
    0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
    0x00 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
    0x99 ,0x0B ,0x04 ,0x04 ,0x01 ,0x01,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
};
//R24H	b
const unsigned char EPD_4IN2_4Gray_lut_bb[] ={
    0x80 ,0x0A ,0x00 ,0x00 ,0x00 ,0x01,
    0x90 ,0x14 ,0x14 ,0x00 ,0x00 ,0x01,
    0x20 ,0x14 ,0x0A ,0x00 ,0x00 ,0x01,
    0x50 ,0x13 ,0x01 ,0x00 ,0x00 ,0x01,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
    0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00,
};

const uint8_t LUTDefault_full_GDEY042Z98[] = {
  0x32,
//VCOM						
0x01,	0x23,	0x23,	0x05,	0x3C,	0x02,	0x03,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
//RED						
0x01,	0x63,	0xA3,	0x85,	0xFC,	0x02,	0x03,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
//WHITE						
0x01,	0x63,	0xA3,	0x05,	0x3C,	0x02,	0x03,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
//BLACK						
0x01,	0xA3,	0x63,	0x05,	0x3C,	0x02,	0x03,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
										
//Voltage	 full					
0x03,	0x00,	0x00,	0x22,	0x00,	0x41,	0xA8,
0x32,	0x78,	
};


const uint8_t LUTDefault_part_GDEY042Z98[] = {
  0x32,
  //VCOM						
  //0x01,	0x0F,	0x00,	0x00,	0x00,	0x01,	0x00,
  0x01, 0x19, 0x00, 0x00, 0x00, 0x01, 0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
						
  //WW						
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
						
  //BW						
  0x01,	0x5E,	0x00,	0x00,	0x00,	0x01,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
						
  //WB						
  0x01,	0x9E,	0x00,	0x00,	0x00,	0x01,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
						
  //BB						
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
						
  //Reserve						
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
  0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
						
  //Voltage		part				
  0x02,	0x00,	0x00,	0x22,	0x00,	0x41,	0xA8,
  0x32,	0x78,									
 };

const uint8_t LUT_gray_GDEY042Z98[] = {
0x32,
//VCOM						
0x01,	0x01,	0x00,	0x00,	0x00,	0x01,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
//RED						
0x01,	0x01,	0x00,	0x00,	0x00,	0x01,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
//WHITE						
0x01,	0x01,	0x00,	0x00,	0x00,	0x01,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
//BLACK						
0x01,	0x41,	0x00,	0x00,	0x00,	0x01,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
						
0x02,	0x00,	0x00,	0x22,	0x17,	0x4B,	0xA8,
0x32,	0x48,					
};

const uint8_t LUT_gray_red_GDEY042Z98[] = {
0x32,
//VCOM						
0x01,	0x09,	0x00,	0x00,	0x00,	0x01,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
//RED						
0x01,	0x09,	0x00,	0x00,	0x00,	0x01,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
//WHITE						
0x01,	0x09,	0x00,	0x00,	0x00,	0x01,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
//BLACK						
0x01,	0xC9,	0x00,	0x00,	0x00,	0x01,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
0x00,	0x00,	0x00,	0x00,	0x00,	0x00,	0x00,
						
0x03,	0x00,	0x00,	0x22,	0x17,	0x4B,	0xA8,
0x32,	0x48,					
};

#endif

后记

虽然一通探索后,使用控制变量的方式进行多参数实验,只是发现调节VCOM到最大后,显示效果变好了一些,但还是远达不到内波的显示效果。
但由于本人知识局限,并未觉得这是最佳调节,欢迎各位大佬指点,关于墨水屏,VGH、VSH1、VSH2、VSL、VCOM这几个参数,应该如何来调整。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值