전공 과목 이수1👨‍💻/임베디드시스템

임베디드시스템 LCD

천숭이 2021. 12. 2. 02:10

- LCD화면 가로축 * 세로축 인 2차원평면.
- 화면 한 개의 정보들 = frame , 초당 30frame을 출력해야 눈에 보인다
- 해상도 = 가로픽셀수 * 세로픽셀수(줄)
- 픽셀수와 해상도는 비례
 
#픽셀
- LCD data 기본단위
- 색상정보 + 좌표(x,y)
- 좌측상단이 원점인 (0,0) 부터 증가하는 형태  (--> dma제어기를 거치멘 좌측하단이 원점이 된다)
- 엄청난 data를 높은 주파수로 보내야 초당 3frame출력이 가능하다.
 
# LCD controller (video controller)
- AP내 data를 lcd화면으로 내보내기 위해서 주파수를 조절해주는 장치
- LCD에 정확한 주파수로 데이터 전달이 가능
- frame단위로 data전달
- frame단위로 buffer버퍼가 존재 = ** frame buffer **
 
# frame buffer    **중요**
- 외부 메모리 사용할때 데이터메모리가 필요하다.
- 외부 메모리를 사용해야하므로 dma장치를 통해 전달된다 
- 2차원 배열로 데이터 형식을 만든다 (프레임 단위로)
 
# dma 방식    **중요**
- 내부 메모리의 크기의 여유가 없을 경우 사용. DMA 방식을 통해 LCD에 픽셀 데이터를 보낸다
- 많은 양의 데이터를 전달해야할 떄 유용하다
 
 

display data   ->   frame buffer   ->   LCD controller   - dma장치를 통해 ->   LCD화면

 
# 해상도 , color data길이 설정
lcd화면은 가로480   ,   세로272  픽셀로 구성됨

5:6:5 rgb format

초록은 64레벨 -> 사람의 눈이 초록색에 더 민감하므로 1비트를 더 할당했다.
 
# 16비트 컬러모드
- 하나의 레지스터에 두 픽셀을 담을 수 있다. -> 데이터양이 비례하게 줄어든다 
 


# Init_LCD 메소드  // lcd 초기설정
VCLK : 수직 클럭
HCLK : 수평 클럭
TFT LCD Pannel : LCD종류
16bpp Mode : 16비트 컬러모드를 사용할 것이다
 
# PutPixel (int x, int y, int color)
- (x,y)좌표에 color색으로 점을 찍는다
- 데이터는 2차원 배열이지만, frame buffer로 가려면 1차원 Data구조로 변형해야한다.
- x,y 좌표는 메모리주소이다. 메모리에 담기는 data는 컬러.
 

# DrawLine (x1,y1,x2,y2,color)
- 점과 점 사이를 보강하는 알고리즘이 필요.
 
# DrawImage
- 해당 영역에 픽셀을 메꾸는 것이 아니라 만들어진 이미지가 넣어진다.
 
# SetFullFrame
- LCD화면 전체를 채워지게 하는 함수