■ S3C2443 지원 리스트 
▪ S3C2443의 LCD 컨트롤러는 시스템 메모리의 비디오 버퍼에서 외부의 LCD 드라이버에 LCD 이미지 데이터를 전송하는 로직으로 구성 
▪  LCD 컨트롤러 
   수평/수직 픽셀, 데이터 라인 너비, 인터페이스 타이밍, 리프레쉬 비율과 관련된 스크린 상에 요구되는 기능 지원 프로그래밍이 가능

 

 


■ OVERVIEW 
1. 2가지의 인터페이스 지원 
  (1) RGB Interface
  (2) i-80 System Interface


2. 디스플레이 컨트롤러 지원 내역 
  (1) 2 overlay Image
  (2) 다양한 컬러 포맷 
  (3) 16 단계 알파 블랜딩 
  (4) 컬러 키 
  (5) x-y 축 포지션 컨트롤 
  (6) 소프트 스크롤링 컨트롤 
  (7) 윈도우 크기 변경 등

 

 


■ LCD SUB BLOCK DISCRIPTION (ARM920T BUS INTERFACE)
- AHB (Advanced High-Performance Bus)

 

 

 

■ LCD SUB BLOCK DISCRIPTION (LCD CONTROLLER STRUCTURE)

 

 


1. VSFR
  ▪ 71개의 프로그래밍 레지스터 블록 / 2개의 256x25 Palette Memory 설정 가능


2. VDMA
  ▪ Frame Buffer에 저장 되어 있는 비디오 데이터를 VPRCS로 DMA 방식 전송 담당


3. VPRCS
  ▪ VDMA로 부터 받은 비디오 데이터를 LCD (Device)로 전송 
  ▪ 전송 전 적합한 데이터 포맷으로 변환 
  ▪ 전송 데이터 포트 : RGB_VD, VEN_VD, SYS_VD


4. VTIME
  ▪ Timing Checking 담당

 

 

 

 

■ S3C2443 – LCD Interface (RGB Interface)
* RGB Interface Signal

- SYNC 신호 제어 가능, 일반적인 R,G,B 인터페이스로서 사용자 제어 용이 
(1) RGB Data Signal
(2) Vertical / Horizontal Sync Signal
(3) Data Valid Signal
(4) Data Sync Clock Signal

 

 

 

 

 ■ S3C2443 – LCD Interface (CPU Interface)


* CPU Interface Signal (i80 – System Interface) 
-SYNC 신호 제어 불가능, 별도의 신호 셋팅 없이  Video Mux에서 모든 신호를 관리하며, 단순 Chipset 제어만 거침 
(1) Address Signal
(2) Data Signal
(3) Chip Select Signal
(4) Register / Status Indicating Signal

 

 

 

■ S3C2443 – PIN MAP (RGB Interface)

 

 

■ S3C2443 – Register Setting
* Register Option : Eboot 및 Kernel 단, Driver 단 에서 설정하게 되는 레지스터 설명

 

 

 

■ S3C2443 – Display Driver Structure & Description


 

(1) Eboot 내부 main.c – InitDisplay 함수 (Eboot Entry Point)
  * Eboot 상 LCD 구동을 위한 디스플레이 셋팅 목적 함수 
  * Eboot 단에서 관련 레지스트 셋팅이 LCD Module 과 SYNC 동작하게 되면 Eboot 단 로고 확인 가능

 

(2) Kernel 내부 Init.c – InitDisplay 함수(Kernel Entry Point)

  * Eboot 상에 존재하는 main.c와 동일 한 목적으로 작성 (디스플레이 셋팅 목적)
  * Kernel 단에서 관련 레지스트 셋팅이 LCD Module 과 SYNC 동작하게 되면 Window CE 진입 시 화면 동작 확인 가능(

 

(3) 참조 Header File 정보 
  * src/inc 디렉토리에 존재하는 display.h 헤더파일 참조 (레지스터 셋팅값의 대부분이 이 헤더파일 상에 정의 - 필수)
  * Local 헤더파일 참조하면 Error / 반드시 INC 전역 헤더파일 참조해야 LCD 레지스터 값이 적용이 됨 
    (Eboot 단 및 kernel 단 레지스트 셋팅을 동기화하기 위하여 inc 공용 헤더파일 측을 수정해야 함)
  * Eboot 단에서 레지스트 셋팅이 완료되어 Eboot LCD 동작을 확인 하여도, Kernel 단 셋팅이 틀어지면 CE상 동작 불가

 

(4) src/drivers/Display/S3C2443DISP.cpp – 드라이버 단 소스 파일 
  * Kernel 단에서 모든 동작 관련 셋팅 정의가 되며, 본 소스 파일 상에서는 GWES 기반의 동작 정의 
    (화면 회전 / 블랜더 효과 등 Application 기반의 동작 환경 설정이 가능)
  * src/inc 디렉토리에 존재하는 s3c2443_lcd.h 헤더파일 참조 
    (드라이버 단 동작 정의가 아닌 GWES 기반의 Application 동작 중 필요한 사이즈 및 기타 컬러 옵션 설정 가능)

 

 

 

-----------------------------------------------------------------------------------------------------------




S3C6410 PIP 동작구조 

 

 

S3C6410 PIP의 화면의 위치 선정

 

 

 

---------------------------------------------------------------------------------------------------


S3C6410의 Image Rotator 동작 구조

 

 S3C6410 Image Rotator 동작 원리

 

 

-----------------------------------------------------------------------------------------------------------


 

 

 

-----------------------------------------------------------------------------------------------------------

 

 

<S3C6410의 Overlay 및 Color Key 동작원리>

 

 

 

 

<S3C6410 Frame Buffer>

 

■ S3C6410의 프레임 버퍼 공간

   ◆ S3C6410에서는 기본적으로 Window 1Layer만 사용하여 화면 출력

   ◆ 각 Layer의 Size = 480 X 272 X 2(16/8)

                               = 255 Byte

   ※ 12MB 확보이유 : Post Processor 및 Rotator 등의 여러가지 출력 FrameBuffer와 공용 사용

 

 

 

  

-----------------------------------------------------------------------------------------------------------

 

■ NTSC

 - 초당 29.97 개의 비월 주사된 비디오 프레임으로 이루어짐
 - 각 프레임은 전체 신호인 525 라인 중에서 480 라인으로 구성되며 나머지는 동기 신호나 수직

    귀선 및 자막과 같은 다른 데이터의 전송을 위해 쓰인다
 
■ BT656 (ITU656)

 - 압축되지 않은 PAL 또는 NTSC 표준 화질 텔레비전을 스트리밍하기 위한 단순한 디지털 영상

    프로토콜을 정의
 - BT.656 스트림은 27 MHz 로 동작하는 픽셀 클럭 신호에 따라 동시에 8 비트를 병렬로 전송

 

■ Composite (Video)

 - 색 신호와 휘도 신호를 동시에 혼합
 - 일반적으로 노란색의 출력 단자
 - 음성선 2개와 붙어있는 것을 합쳐서 말하기도 하지만 정확히는 노란 영상선만을 의미
 - 구성 재질은 동축 RCA 케이블이며, 전송 가능한 최대 해상도는 NTSC (480i)
 - 아날로그 케이블 중에서도 화질은 최저수준
 - 서로 상이한 신호를 혼합해 표현하기 때문

 

■ S-Video (Video)

 

 - 화질 개선을 위하여 색 신호와 휘도 신호를 서로 분리
 - S-Video의 앞 굴자 S는 Separate의 약자
 - Y/C Connection이라 명칭 (Y = 휘도 정보, C = 색 정보)
 - 480i 해상도 전송 가능
 - Composite 방식에 비해 고화질

 

 


-----------------------------------------------------------------------------------------------------------



< WMB2443 Board의 NTSC와 RGB I/F 동시 출력 구조 >

 

1. S3C2443의 LCD Controller에서 640 X 480의 RGB I/F 로 출력

2. 640 X 480 Image를 TV Endoer 입력과 LCD 출력으로 분기

3. TV Encoder에서 입력된 RGB I/F 영상을 Scaling과 RGB to NTSC 처리과정 후 모니터에 출력

 

 

-----------------------------------------------------------------------------------------------------------



< S3C6410의 Post Processor를 이용한 PIP 기능 동작구조 및 원리 (Direct Mode) >

 

 

■ Preview Path를 통한 YCbCr420 Format 입력된 영상이 Preview DMA 을 통해 Camera Frame Buffer에 저장 (RGB)

 

■ Post Processor 를 사용하지 않고 LCD Window 0 Frame Buffer에 저장 (RGB565)

 

■ Display Controller에서 두 영상을 Overlay 하여 LCD로 출력

 

 

 

 

-----------------------------------------------------------------------------------------------------------


< S3C6410의 Post Processor를 이용한 PIP 기능 동작구조 및 원리 (FIFO Mode) >

 

 

■ Preview Path를 통한 YCbCr420 Format 입력된 영상이 Preview DMA 을 통해 Camera Frame Buffer에 저장 (RGB)

 

■ Post Processor에서 Source Image를 Scale 및 Video Fomat / 색 공간 변환 후 Display Controller Window 0 FIFO로 전송

 

■ Display Controller에서 두 영상을 Overlay 하여 LCD로 출력

 

 

 

 

-----------------------------------------------------------------------------------------------------------



 < S3C6410의 Post Processor를 이용한 PIP 기능 동작구조 및 원리 (DMA Mode) >

 

 

■ Preview Path를 통한 YCbCr420 Format 입력된 영상이 Preview DMA 을 통해 Camera Frame Buffer에 저장 (RGB)

 

■ Post Processor에서 Source Image Address를 Camera Frame Buffer 주소로 설정,

    Destination Image Address를 LCD Frame Buffer Window 0 Frame Buffer로 설정

 

■ WinCE의 Defalut 출력인 Window 1 Frame Buffer의 Image와 카메라의 영상이 저장된 Window 0 Frame Buffer를

    DMA를 이용하여 LCD 측으로 전송

 

■ Display Controller에서 두 영상을 Overlay 하여 LCD로 출력

 

  

-----------------------------------------------------------------------------------------------------------


■Porch 값의 의미                                                                       

- Vertical Back Porch (VBP)                  : 수직 신호 출력 대기 시간

Vertical Front Porch (VFP)                  : 수직 신호 출력 후 대기 시간

Vertical Sync Pulse Width (VSPW)      : 수직 신호 High Level 유지 시간

Horizontal Back Porch (HBP)            : 수평 신호 출력 대기 시간 

- Horizontal Front Porch (HFP)            : 수평 신호 출력 후 대기 시간

Horizontal Sync Pulse Width (HSPW)  : 수평 신호 High Level 유지 시간

 

 

  ■ Porch 값 적용 전 후의 Frame Buffer 화면                                        

- Porch 값 적용 전

 

- Porch 값 적용 후

 

-----------------------------------------------------------------------------------------------------------


■ S3C2443 CPU Interface Control Sequence                             

 

 

 

- Disable Video Oupput : 출력 정지

- Set Video Signal : Main LDI(S3C2443에서 CPU I/F 방식의 Display 듀얼 출력 지원)선택, 클럭 설정

- System Interface Control : CPU I/F의 제어 신호 동작 설정

                                        CS(Chip Select) - Active Low

                                        WR(Write) - Active Low

 

-----------------------------------------------------------------------------------------------------------


■ SPI Interface Timing                                                                           

 

- Transfer Start Bit에 의해 데이터 전송 시작을 알림

- Device ID Code에 의해 Device 확인 (Value = 0x1D)

- RS Bit 로 인해 Index Data와 Instruction Data 구분

- 16bit Data 전송

- Transfer End bit에의해 데이터 전송 종료 알림

  

-----------------------------------------------------------------------------------------------------------


■ I80 Interface Control Signal                                           



■ I80 Interface Bus Timing 분석                                       


 

- RS 신호 상태를 High에서 Low로 인가 상태에서 Register 주소 값을 전송하는 것을 알림

Low에서 High로 변화 시 Data 값을 입력 받는 Register 주소를 알림

- CS 신호 상태를 High에서 Low로 인가 상태에서 LDI을 Enable을 하여 Address을 활성화

- Write Enable를 High에서 Low로 인가 상태에서 LDI에 Write 할 것이라는 것을 알림

- Write Data 출력 (High = ‘1’, Low = ‘0’)


-----------------------------------------------------------------------------------------------------------



■ S3C2443의 Display Controller의 PAD                          

 

 

 

       - VIDSEL 값이 '1'이고 VIDOUT이 '10'일 경우 VCLK PAD에서는 CPU(I80) Interface의 WE(Write Enable) 신호 출력


       - VIDSEL 값이 '1'이고 VIDOUT이 '00'일 경우 VCLK PAD에서는 RGB Interface의 VCLK 신호 출력


       - SYS_CS0와 SYS_CS1은 I80 Interface에서는 듀얼 출력이 가능하기 때문에 CS(Chip Select)가 2개 존재


       - 이하 VLINE, VFRAM, VM, LEND, VD 동일

 

 

-----------------------------------------------------------------------------------------------------------


■ RGB와 CPU(I80) I/F 구성 비교                                 

 

 

- S3C2410 Display Controller의 I80 Interface 미지원으로 인한 LCD Module을 Memory Controller에 연결

     * LDI의 Register를 이용하여 LCD 초기화

     * Virtual Frame Buffer의 내용을 LCD 모듈 내 SRAM 측으로 전송

 

 

- S3C2443 Display Controller의 I80 Interface를 지원하기 때문에 Display Controller에 연결

     * Virtual Frame Buffer에 화면 구성

     * SDRAM의 Frame Buffer의 내용을 DMA을 통해 Display Controller 측으로 전송

     * Display Controller에서 LCD 모듈 측으로 데이터 전송 

-----------------------------------------------------------------------------------------------------------





■ LCD 인터페이스 종류                                                    
    - RGB 인터페이스
    - CPU 인터페이스 (I80, M68)
    - SPI 인터페이스
    - MDDI 인터페이스
    - MIPI 인터페이스

 

■ LCD 인터페이스 별 제어신호                                            
    - RGB 인터페이스
        * VSYNC (Vertical Sync)
        * HSYNC (Horizontal Sync)
        * ENABLE
        * DOTCLK (Clock)
        * 드라이버 IC 제어를 위한 Serial 인터페이스 사용

 

    - CPU 인터페이스
        * WR (Write) / RD (Read)
        * RS (Command / Data)
        * CS (Chip Select)
        * 드라이버 IC 내부 RAM 사용

 

    - SPI 인터페이스
        * SDI / SDO / SCL 등을 이용하여 데이터 전송

 

    - MDDI 인터페이스
        * 신호선을 감소한 Serial Link Type 인터페이스

 

■ RGB 인터페이스 상세 설명                                              
    - 동영상을 많이 사용하는 TFT-LCD에 주로 적용
    - CPU 인터페이스와는 달리 Display RAM이 필요 없음
    - VSYNC Enable 구간 앞/뒤에 Porch 값과 같은 Non-Display 영역 설정
    - 한개의 HSYNC 발생 시 여러개의 Clock을 가짐
    - Clock 수를 카운트하여 Enable 구간 설정 및 Enable 구간 Active 시 Data 표현
    - VSYNC : VFP, VBP, VSW는 HSYNC가 기준이 됨
    - HSYNC : HFP, HBP, HSW는 Dot Clock 기준이 됨
    - VSYNC, HSYNC, Dot Clock SYNC를 통하애 한 Frame 주파수가 결정 됨
    - 위와 같은 설정이 맞지 않을 시 LCD 화면 상 플리커 현상 발생 (화면 밀림)

 

■ CPU 인터페이스 상세 설명                                              
    - MPU 인터페이스 명칭
    - Intel 80 계열 혹은 Motorola 68 계열 제어신호에 따라 Data 전송 방식
    - RS 신호에 따라 Command와 Data가 분리되어 전송
    - CS : Chip Select 신호로서 Low일 때 Chip이 동작
    - WR : Write 신호로서 Low->High 상태일때 Data를 Display RAM에 기록
    - RS : Read 신호로서 Data를 읽어옴
    - Command 기록 시 : RS = Low / WR 신호를 Address와 Command Latch

----------------------------------------------------------------------------------------------------------------



■ RGB Interface의 LCD Module의 Clock 동기화                        

  

 

        -  LCD Module DCLK Frequency는 33.26MHz
        -  S3C6410 Display Controller의 Clock 신호 관련 Register 

            CLKSEL_F : CPU에서 공급하는 Clock(HCLK)으로 133Mhz 임 (즉, 소스 Clock)
            CLKDIR  : 소스 Clock을 CLKVAL_F Register 값으로 분배하여 사용

            CLKVAL_F : 소스 Clock 분배 값을 나타내는 Register


■ Porch값의 의미                                                          

- Vertical Back Porch (VBP)                  : 수직 신호 출력 대기 시간

Vertical Front Porch (VFP)                  : 수직 신호 출력 후 대기 시간

Vertical Sync Pulse Width (VSPW)      : 수직 신호 High Level 유지 시간

Horizontal Back Porch (HBP)            : 수평 신호 출력 대기 시간 

- Horizontal Front Porch (HFP)            : 수평 신호 출력 후 대기 시간

Horizontal Sync Pulse Width (HSPW)  : 수평 신호 High Level 유지 시간



출처 : http://blog.daum.net/insopack77/268

+ Recent posts