관련정보
RELATED INFORMATION
연락처
CONTACT US
-
0086-411-84619565
E-mail:info@good-display.com
Add:랴오닝성 대련시 간정자구 중화서로 18호
처음부터 전자종이 디스플레이에 손을 대십시오-왕초보의 배우기-01
안녕하세요 여러분! 최근 새로 팀을 이룬 ShiningMan은 전자종이 디스플레이를 처음부터 플레이하는 과정을 안내하는 교육 프로젝트를 진행하고 있습니다!
이 첫 번째 게시물의 본문으로 바로 이동합시다!!!
먼저 전자종이 디스플레이가 무엇인지 알아야 합니다.
1. 기본원리
전자종이에 사용되는 기술은 '마이크로캡슐 전기영동 디스플레이' 기술이다.
기본 원리는 액체에 떠 있는 대전된 나노 입자가 전기장의 작용에 따라 이동한다는 것입니다. 전자 잉크는 플라스틱 층에 코팅됩니다.
구동 IC에 의해 제어되는 박막 트랜지스터(TFT) 회로로 코팅하여 픽셀 패턴을 형성합니다.
1)흑백 전자종이 디스플레이
전자잉크는 머리카락 굵기 정도의 수백만 개의 마이크로캡슐로 구성되어 있습니다. 각 마이크로캡슐에는 전기 영동 입자가 포함되어 있습니다.
-- 음전하를 띤 흰색 입자와 양전하를 띤 검은색 입자 -- 투명한 액체에 부유합니다.
양성 및 음성 인력의 원리를 사용하여 전기장이 켜지면 블록에 해당하는 검은색 또는 흰색 입자가
마이크로 캡슐의 상단으로 이동하면 사용자는 블록에서 흰색 또는 검은색을 볼 수 있습니다.
2)3색 전자종이 디스플레이
전자 선반 라벨(ESL) 애플리케이션에 특히 적합한 3색 전자 잉크 시스템.
3색 전자 잉크 시스템의 작동 원리는 2색 시스템과 유사합니다.
서로 다른 색의 입자를 상층으로 이동시키기 위해 서로 다른 전압을 인가하여 서로 다른 색을 보게 된다.
3색 시스템은 마이크로컵 기술의 틀 아래 개발되었습니다.
3)전자종이 구조
1) 전자종이 다이어프램
사람의 눈이 실제로 보는 패턴을 표시하는 역할을 하는 전자종이 디스플레이 모듈의 핵심 소재입니다.
2) 밑판
전자종이 디스플레이의 화소전극(하부전극)으로 전자종이의 각 화소의 흑백변화를 제어하는데 사용된다.
PCB, FPC, TFT 유리, PET 등을 포함하여 선택할 수 있는 다양한 유형의 베이스 플레이트가 있습니다.
실제 적용 시 특정 요구에 따라 다양한 바닥판을 선택할 수 있습니다. 전자 종이 다이어프램은 라미네이션에 의해 베이스 플레이트에 부착될 수 있다.
3) 드라이버 칩
작동 타이밍 및 상태를 제어하는 데 사용되는 제어 명령 및 신호에 따라 해당 로직 레벨 및 타이밍을 생성할 수 있습니다.
백플레인의 각 픽셀(또는 세그먼트 코드)의 데이터를 전송하고 전자 종이가 원하는 패턴을 표시할 수 있도록 합니다.
4) 투명 보호 필름
수증기 투과성이 강한 폴리머 플라스틱 필름. 라미네이터를 사용하여 e-paper 다이어프램과 바닥 판에 단단히 부착하면 효과적으로
수증기가 전자 종이 다이어프램에 침입하는 것을 방지하고 습기로 인한 전자 종이 손상을 방지합니다.
5) 가장자리 접착제
투명 보호 필름의 주변 가장자리에 고르게 도포되는 특수 화학 접착제가 수증기를 차단하는 역할을 합니다.
투명 보호 필름 주변에서 수증기가 스며들어 전자 종이 다이어프램이 손상되는 것을 방지할 수 있습니다.
2. 다음으로 개발 보드 준비하기(처음에는 Good Display의 데모 키트를 적극 권장합니다.)
STM32、ESP8266、ESP32、ArduinoUNO( https://www.good-display.cn/product/71/)
먼저 배선을 고려할 것입니다. 여기서는 예를 들어 STM32를 사용한 다이어그램입니다.
이렇게 연결했는데 VCC 전원과 GND 접지는 고정이고 그 외는 용도에 따라 자유롭게 정의할 수 있고,
프로그램이 귀하의 정의에 따라 정의되는 한 문제가 없습니다.
3. 핵심은 이 핀들이 연결된 이유를 이해하는 것입니다. 그들은 각각 무엇을 나타냅니까?
ㅏ. 우선, 많은 전력과 접지가 필요하지 않습니다. MCU가 작동하려면 전원 공급 장치가 있어야 합니다.
비. 우리는 전자 종이와 모든 마스터 컨트롤이 SPI 통신 프로토콜을 사용한다는 것을 분명히 해야 합니다(병렬 포트 화면은 여기에서 논의하지 않음).
DIN은 MOSI(마스터 디바이스(단일 칩 마이크로컴퓨터) 출력, 슬레이브 디바이스(전자 종이) 입력을 나타내는 것으로 이해하기 쉽고,
단일 칩 마이크로컴퓨터는 콘텐츠 디스플레이를 전자 종이로 전송해야 함)
CLK는 시계를 나타냅니다(데이터 전송의 양 당사자가 동일한 주파수 대역에서 수행하는 데 동의해야 함).
씨. CS는 칩 선택, 액티브 로우를 나타냅니다.
디. DC는 데이터/명령 읽기 및 쓰기 선택을 나타내는 데이터 핀, 높은 수준은 데이터, 낮은 수준은 명령
이자형. RST는 전자 종이의 리셋 핀입니다. 전자 종이가 화면을 다시 업데이트할 때 계속하기 전에 숨을 쉬기 위해 전원을 꺼야 한다는 것을 이해할 수 있습니다.
에프. BUSY는 이름에서 알 수 있듯이 사용 중이며 전자 종이가 사용 중인지 유휴 상태인지 감지하는 데 사용됩니다. Busy 상태에 있으면 MCU는 전자 종이에 대해 어떠한 작업도 수행할 수 없습니다.
이제 코드:
1. 코드에 배선을 구현해야 합니다.
void EPD_GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE, ENABLE);
//CS-->PD8 SCK-->PD9 SDO--->PD10
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10; //Port con
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOD, &GPIO_InitStructure);
// D/C--->PE15 RES-->PE14
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14|GPIO_Pin_15; //Port configuration
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
GPIO_Init(GPIOE, &GPIO_InitStructure);
// BUSY--->PE13
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
2. 각 하드웨어 인터페이스에 대한 코드 가져오기
ㅏ. SPI
SPI 타이밍 다이어그램
void SPI_Write(unsigned char value)
{
unsigned char i;
for(i=0; i<8; i++)
{
EPD_W21_CLK_0;
if(value & 0x80)
EPD_W21_MOSI_1;
else
EPD_W21_MOSI_0;
value = (value << 1);
EPD_W21_CLK_1;
}
}
이 코드는 SPI 통신 프로토콜을 통해 쓰기 데이터를 구현한 것으로 한번에 한 바이트씩 쓰기 때문에 8비트이므로 for 루프를 사용한다.
위의 타이밍 다이어그램에 따르면 8번을 순환하는데 여기서 값 & 0x80은 최상위 비트가 1인지 0인지를 판단하는 것이고,
1이면 MOSI=1, 0이면 MOSI=0을 의미한다. SPI 쓰기 데이터는 최상위 비트부터 시작하지만 데이터는 최하위 비트에 저장되기 때문에,
따라서 왼쪽으로 1비트 이동해야 합니다. 즉, value = (value << 1)이므로 8번 반복하여 바이트를 얻습니다.
b: CS 및 DC
CS 및 DC는 데이터 쓰기 및 명령 쓰기에 사용됩니다(타이밍 다이어그램에서 CS가 낮을 때 데이터 또는 명령 쓰기 시작;
DC=0일 때 쓰기 명령, DC=1일 때 데이터 쓰기. 종료 후 CS는 하이레벨로 복귀합니다.)
void EPD_W21_WriteCMD(unsigned char command)//command write
{
EPD_W21_CS_0;
EPD_W21_DC_0; // command write
SPI_Write(command);
EPD_W21_CS_1;
}
void EPD_W21_WriteDATA(unsigned char data)//data write
{
EPD_W21_CS_0;
EPD_W21_DC_1; // data write
SPI_Write(data);
EPD_W21_CS_1;
}
c: RST는 초기화에 사용되며, 0과 1은 레벨을 나타냅니다.
EPD_W21_RST_0; // Module reset
delay_xms(10);//At least 10ms delay
EPD_W21_RST_1;
delay_xms(10); //At least 10ms delay
d: BUSY에서 레벨 얻기,busy=1은 BUSY 상태이고 while(1)을 반복합니다. busy=0, IDLE 상태, 다음 라인으로 진행합니다.
void Epaper_READBUSY(void)
{
while(1)
{ //=1 BUSY
if(isEPD_W21_BUSY==0) break;;
}
}
SaleSmartly 또는 이메일을 통해 메시지를 보내 주셔서 감사합니다! 더 나은 서비스를 제공하기 위해 귀하의 의견을 듣고 싶습니다.
다음에는 빠른 업데이트, 부분 업데이트, 전체 화면 업데이트에 대해 자세히 포스팅하도록 하겠습니다!!!
더 많은 정보:
GITHUB Library-Good Display E-paper(STM32/Arduino/ESP32/ESP8266)
Encyclopedia of E-paper display!!! Your wonderful FAQ provider!
Contact us if you don't find the contents you need! And we will make sure they get published ASAP!!!
Prepare for your IMG easily via online tool ImageToArray!!!
QR코드를 스캔하여 휴대폰으로 보기
권장제품
온라인 메시지
佳显电子
연락처
제품 문의 info@good-display.com
기술 지원 service@good-display.com
불만 제안 complaint@good-display.com
©2021-2024 DALIAN GOOD DISPLAY CO., LTD. All Rights Reserved. 辽ICP备08000578号-1 power by:300.cn Dalian