1. LCD Interface 기본지식
LCD Interface는 크게 보면 3가지 종류로 나누어 볼수 있을 것 같다.
- CPU Interface (Intel 8080 / Motorola 68K)로 연결되던 GRAM 기반의 Serial Interface
- RGB Interface 임베디드에서 흔히 볼수 있는 것으로 Parrarel Inteterface
- Serial Interface로 SPI Interface를 자주 이용하는 것으로 Serial Interface
- 출처
LCD interface 정리 한번 정리하고자 하는데, 쉽게 설명한 사이트이며, 오랜전에도 봤지만, 가능 낫은 것으로 생각되며, 추후 없어질지 몰라 다시 정리한다.
1.1 CPU/MPU Interface
Intel 8080 과 Motorola 68K기반으로 CPU or MPU Interface라고 한다고 하며, 나의 경우 거의 다루어보지 못했다.
WR(Write), RD(Read),RS(Command/Data),CS(Chip Select) 등 구성되며, Driver IC에 별도의 RAM이 존재하여 Frame Buffer가 필요없는 것으로 보인다.
쉽게 생각하면, GPU기반으로 생각을 하면될 것 같다.
CS는 Low 가 일 때 Driver IC가 동작가능하며, 이 맞추어 WR/RD 신호에 따라 Parrarel DB가 Write or Read가 되어진다.
RS(Data/Command)신호에 따라 Data 역시 Instruction 과 Data로 구분되어 전송이 되어진다.
이 LCD Driver IC를 보면, Serial Mode와 같이 지원하며, 아래와 같이 80은 Intel의 8080을 의미하며, 각 Data Bus의 길이를 설정한다.
글을 이해하면서 옮겨 적는데, DB(Data Bus)0~17은 CPU/MPU에서 나오는 Data Bus이며, IB의 경우 LCD로 들어가는 신호라고 한다.
이때 생각해봐야 할것이 IB가 16 or 8Bit 밖에 지원이 안되는 것으로 보이며, 이에 맞게 HW Pin도 수정해서 해야 하는 것으로 보인다.
상위모드 중 80-system 16bit Interface
상위사이트의 글과 그림이 좀 달라서 내 생각에는 상위 모드에서 16bit로 설정했을 경우
상위사이트의 글과 그림이 좀 달라서 내 생각에는 상위 모드에서 16bit로 설정했을 경우
상위모드 중 80-system 18bit Interface
IB가 16 or 8Bit 만 지원해서 마지막 2bit가 빠지는 것으로 보이며, 설명은 Instruction 길이이며, Data 길이는 실제 Datasheet를 봐야 할 것 같다.
상위모드 중 80-system 8bit Interface
16bit와 비교하여, 두번에 나누어 Instruction 전송이 되는 구조
추후에 CPU/MPU Interface를 만나게 될 경우, 이때 제대로 한번 정리하고자 한다.
- Motorola 68K Series
- Intel 8080 Series
1.2 RGB Interface
내가 LCD Interface 중 가장 많이 만들어본 Interface이며, LCD Driver를 Porting 할때 거의 이것으로 사용을 했다.
이 경우 주로 Frame Buffer Driver가 별도로 필요로 하며, 특히 TI의 Davinci Series의 경우 거의 이 방식으로 사용을 했다.
더불어 여기에 LVDS로 Converter도 가능해서 이 방식이 가장 많이 사용했던 것으로 기억한다.
기본적으로 Data Line은 Parrarel 16bit 와 Hsync/Vsync / Enable이런식로 나온다.
- 실제 Pannel의 그림영역
VSync 후 Height 크기만큼 Hsync 와 Width Data를 나누어서 보내는 방식인데, Porch라는 것을 두어 실제 표시될 영역을 수정이 가능하다.
이것은 LCD만에 해당되는 것이 아니며, NTSC/PAL도 거의 비슷하다.
- VSync 와 Hsync 와 Porch
아래의 Timing은 1 Frame의 기본 Timing 이며 상위 그림에서 보여진 실제 Data는 Porch로 조절한다.
- LCD Timing 설정에 관련된 용어
아래의 용여들은 SoC에서 직접 Register에서 설정하여 맞추는 것이며, 각각의 SoC마다 다를 것이다.
1.3 Serial Interface
Serial Interface라고 했는데, 다양하지만, 크게 두가지로 나누어질 것 같다.
- 저속 Serial Interface: SPI
- 고속 Serial interface: 고속 Serial Interface로 주로 USB 처럼 Differertial 를 사용함.
나의 경우는 MCU에서는 SPI Interface 사용을 해봤으며, 고속 Serial Interface인 MIPI 와 LVDS, DDI (MDDI/PDDI) 가 존재하지만,
MIPI 와 LVDS만 경험이 있지, DDI인 MDDI/PDDI 관련부분은 경험이 없다.
LCD Serial Interface
- 저속 Serial Interface SPI
MCY에서 사용했던 기억이 있으며, Frame Buffer역시 필요가 없으며, SPI가 지원이 되는 것으로 보이면, 각각에 LCD 마다 맞추어 줘야하는 것으로 기억한다.
- 일반적인 SPI 통신
SPI는 I2C와 달리 Open Drain 기반의 Bus방식이 아닌 GPIO기반으로 만들어진 Serial 통신이라고 생각하면 되겠다.
SPI도 다중의 Device를 붙히는것도 가능하지만, 이때 CS의 각각의 Device마다 별도로 있어야 한다.
LCD에서 SPI는 8/9/16/17/24bit가 존재한다고 하는데, 거의 RGB 값에 의존적일 것이라고 생각한다.
- SPI 4-Wires
SDC라는 것이 별도로 존재하며, Register 와 Data 영역을 구분하는 역할로 사용한다고 한다.
- SPI 3 wires
- 고속 Serial Interface들
MIPI/LVDS/ MDDI/PDDI가 될 것 같으며, LVDS의 경우 RGB에서 직접 연결해서 사용했던걸로 기억하며, MIPI의 경우는
지인에게 Spec을 받아 만들어 본 경험이 있지만, MIPI는 각 LCD Panel의 Datasheet를 자세히 본걸로 기억한다.
MDDI/PDDI의 경험이 없어 상위 링크에서 그림만 가져온다.
2. LCD 에 관련된 정보
LCD에 관련된 기본용어