2982 views|2 replies

3

Posts

0

Resources
The OP
 

Recently, I encountered some problems when using MSP430F149 to drive GDEW027W3 electronic paper [Copy link]

1. If the partial refresh is not delayed, it will not be refreshed. 2. After adding a delay, the whole screen will flash when the partial refresh is done (for the partial refresh of 32, only the refreshed part will change, and other places will not change). 3. The color displayed when the 430 driver is driven is opposite to the color displayed when the 32 driver is driven (this screen is black and white, and the images displayed by 32 and 430 are black and white reversed). 4. The ghosting left by the full screen refresh is more serious than that of 32 (the refresh is not clean enough). The following is the main program ( The delay in the middle of partial refresh is added by myself. If it is less than this delay, it will not be refreshed. int main(void) { WDTCTL = WDTPW + WDTHOLD; // System clock setting InitOSC(); // IO parameter setting //SPI_IO_Init(); Eink_Clk_IO_INIT; Eink_MOSI_IO_INIT; Eink_DC_IO_INIT; Eink_CS_IO_INIT; Eink_BUSY_Input; Eink_RST_IO_INIT; Eink_BS_IO_INIT; Eink_Init(); EPD_W21_WriteCMD(0x01); //POWER SETTING EPD_W21_WriteDATA (0x03); EPD_W21_WriteDATA (0x00); EPD_W21_WriteDATA (0x2b); EPD_W21_WriteDATA (0x2b); EPD_W21_WriteCMD(0x06); //boost settings EPD_W21_WriteDATA (0x07); //A EPD_W21_WriteDATA (0x07); //B EPD_W21_WriteDATA (0x17); //C EPD_W21_WriteCMD(0x16); EPD_W21_WriteDATA(0x00); EPD_W21_WriteCMD(0x04); lcd_chkstatus(); EPD_W21_WriteCMD(0x00); //panel setting EPD_W21_WriteDATA(0xbf); //KW-BF KWR-AF BWROTP 0f EPD_W21_WriteCMD(0x30); //PLL setting EPD_W21_WriteDATA (0x3a); //90 50HZ 3A 100HZ 29 150Hz 39 200HZ 31 171HZ EPD_W21_WriteCMD(0x61); //resolution setting establish resolution [ /color]EPD_W21_WriteDATA (0x00); EPD_W21_WriteDATA (0xb0); //176 EPD_W21_WriteDATA (0x01); EPD_W21_WriteDATA (0x08); //264 EPD_W21_WriteCMD(0x82); //vcom_DC setting [backcolor= transparent] EPD_W21_WriteDATA (0x28); //0x28:-2.0V,0x12:-0.9V delay_ms(2); /******full screen for level update**** ************************************/ EPD_W21_WriteCMD(0X50); //VCOM AND DATA INTERVAL SETTING [ /color]EPD_W21_WriteDATA(0x47); lut(); pic_display(); EPD_W21_WriteCMD(0x12); //DISPLAY REFRESH refresh delay_ms(1500); lcd_chkstatus(); /******full screen for vertical update***** ************************************/ //Update full screen vertically [backcolor=transparent ] EPD_W21_WriteCMD(0X50); //VCOM AND DATA INTERVAL SETTING Command and data interval setting EPD_W21_WriteDATA(0x47); [backcolor=transparent ] lut(); //display clear screen pic_display_white(); EPD_W21_WriteCMD(0x12); //DISPLAY REFRESH delay_ms(1000); [color= #008000] lcd_chkstatus(); //display pic2 pic_display1(); pic_display_white(); EPD_W21_WriteCMD(0x12); //DISPLAY REFRESH delay_ms(1000); lcd_chkstatus(); ////////////////// /////////partial for vertical////////////////////// EPD_W21_WriteCMD(0x30); //PLL setting EPD_W21_WriteDATA (0x29); //90 50HZ 3A 100HZ 29 150Hz 39 200HZ 31 171HZ EPD_W21_WriteCMD(0X50); EPD_W21_WriteDATA(0x97); lut1(); partial_display(0,0,176,264,partial_full00, partial_full01); / /partial full display delay_ms(3000); partial_display(0,0,32,64, partial00, partial01); //partial display 0 1 delay_ms(1500); partial_display(0,0,32,64, partial01, partial02); //partial display 1 2 //////////////(x,y) ----Y---- delay_ms(1500); partial_display(0,0, 32,64, partial02, partial03); //partial display 2 3 / / / X| delay_ms(1500); partial_display(0,0,32,64, partial03, partial04); //partial display 3 4 /W / / | delay_ms(1500);
partial_display(0,0,32,64, partial04, partial05); //partial display 4 5 ///// L /// /// | delay_ms(1500);
[/ backcolor]
partial_display(0,0,32,64, partial05, partial06); //partial display 5 6 delay_ms(1500);
partial_display(0,0,32,64, partial06,partial07); //partial display 6 7 delay_ms(1500);
[color =#008000]
partial_display(0,0,32,64, partial07, partial08); //partial display 7 8 delay_ms(1500);
[/ backcolor]
partial_display(0,0,32,64, partial08, partial09); //partial display 8 9 /******* *************************************************** *********/ while(1); } If you have found it useful, I'd be grateful if you could help me solve it.
This post is from Microcontroller MCU

Latest reply

For delay, you need to look at the official chip manual requirements. For different MCUs, the output is driven by high and low levels. You only need to write the interface.  Details Published on 2018-5-3 10:53
 

564

Posts

0

Resources
2
 
Dalian Jiaxian?
This post is from Microcontroller MCU
 
 

1059

Posts

1

Resources
3
 
For delay, you need to look at the official chip manual requirements. For different MCUs, the output is driven by high and low levels. You only need to write the interface.
This post is from Microcontroller MCU
 
 
 

Just looking around
Find a datasheet?

EEWorld Datasheet Technical Support

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号
快速回复 返回顶部 Return list