본문 바로가기

Hacked Brain/embeddedland.net

S3C2800번역본 리모트 제어

13  리모트 제어 신호 수신기

 

 

개괄

 

 

S3C2800 8개의 리모트 제어 신호들을 8비트 해상도로 캡처하고 저장할 수 있다. 리모트 제어 신호 수신기는 리모트 제어 신호의 상승 에지, 하강 에지 또는 상승/하강 에지를 검출할 수 있고, 펄스 에지의 폭을 캡처할 수 있다. 리모트 제어 신호의 최소 펄스 폭이 (1/32768)*5초보다는 커야만 한다; 그렇지 않으면, 리모트 제어 신호 수신기는 펄스 폭을 캡처하지 못할 수 있다.  그림 13-1은 수신기 블록내의 구성요소를 보여준다.

 

 

 

 

그림 13-1. 리모트 제어 신호 수신기 블록 구성도

 


리모트 제어 신호 수신기 블록 동작

 

리모트 제어 신호가 IRIN 핀에 입력되면, 현재의 8비트 카운터 값이 신호의 에지(상승 또는 하강)일 때에 FIFO에 써지고, 카운터는 0으로 클리어된 후, 신호의 다음 에지가 검출될 때까지 카운트를 다시 시작한다. 카운터 값 캡처 과정의 타이밍 정보는 그림 13-2를 참조하기 바란다.

 

S3C2800 리모트 제어 신호 수신기 블록은 8개의 8비트 FIFO를 가지고 있다 : FIFO full 상태 flag (RRCR[5])는 모든 FIFO full이 되면 1 set 될 것이다. FIFO가 가득차면, 리모트 제어 신호가 검출되어도 FIFO는 덮어쓰이지 않을 것이다. 따라서, 입력되는 리모트 제어 신호를 잃어버리지 않기 위해서, 사용자는 FIFO가 계속적으로 full이 되지 않도록 적절히 FIFO 데이터를 읽어내는 것이 권장된다.

 

주의 : FIFO의 첫번째 캡처 카운터 데이터는 아무런 의미가 없는데, 첫번째 데이터는 리모트 제어 신호 입력의 첫번째 에지 때에 FIFO에 쓰여진 것이 때문이다. 따라서, 리모트 수신기 블록을 프로그램할 때는 주의를 기울여야만 한다.

 

 

노이즈 필터

 

S3C2800 리모트 제어 신호 수신기 블록은 내부의 5단계 노이즈 필터를 가지고 있다. 이것은 32768 Hz로 동작하고, 노이즈에 의한 에러를 방지한다. 따라서, 리모트 제어 신호의 최소 펄스 폭은 노이즈 필터의 필터링 펄스의 최소 펄스 폭보다 커야만 한다. 노이즈 필터의 필터링 펄스 폭은 ((1/32768)*5 )sec (= 152.6 us) 이다.

 

 

8-비트 COUNTER 샘플링 클럭

 

8비트 카운터 샘플링 클럭은 RRCR 레지스터의 비트 [3:2]에 의해 선택될 수 있다. 이 클럭은, 리모트 신호의 펄스 폭을 고려하여, 에러가 최소화되고, 카운터의 overflow가 발생하지 않는 것으로 설정되어야 한다. 만약 리모트 제어 신호의 펄스 폭이 작고, 샘플링 타임이 너무 크게 설정되면, 에러는 증가할 것이다; 반면에, 펄스 폭이 크고, 샘플링 타임이 너무 작게 설정되면, overflow가 발생한다.

 

그림 13-2. 리모트 제어 신호 수신기 동작 타이밍

 


리모트 제어 신호 수신기 특수 기능 레지스터들

 

 

리모트 제어 신호 수신기 특수 기능 레지스터 (RRCR)

 

레지스터

주소

읽기/쓰기

설명

리셋 값

RRCR

0x1011 0000

읽기/쓰기

Remote 신호 수신기 제어 레지스터

0x0000 0010

 

 

RRCR

비트

설명

초기 상태

Counter overflow 상태 flag

[8]

Counter overflow 상태 flag

0 = Not overflow   1 = Overflow

0

FIFO full (8)-단계 검출 인터럽트

[7]

FIFO full (8)-단계 검출 인터럽트 Enable

0 = FIFO full 인터럽트 Disable

1 = FIFO full 인터럽트 Enable

0

Remote 제어 신호 receive 인터럽트

[6]

Remote 신호 receive 인터럽트 Enable

0 = 인터럽트 Disable

1 = 인터럽트 Enable

0

FIFO full 상태

flag

[5]

FIFO full (8) 상태 flag (읽기 전용)

0 = Not full        1 = Full

0

FIFO empty 상태

flag

[4]

FIFO empty 상태 flag (읽기 전용)

0 = Not empty     1 = Empty

1

Counter 클럭 선택

[3:2]

8비트 counter 클럭 선택

00 = 32,768 Hz/1   01 = 32,768 Hz/2

10 = 32,768 Hz/4   11 = 32,768 Hz/8

00

Polarity 제어 flag

[1:0]

리모콘 입력 인터럽트 Polarity 제어 flag

0x = 상승(rising) 에지 모드

10 : 하강(falling) 에지 모드

11 : 상승 & 하강 에지 모드

00

 

주의 : 모든 FIFO full 이면, 그 다음 입력 데이터는 FIFO 내에 들어가지 않는다.

 

 

 

FIFO 데이터 레지스터 (FIFOD)

 

레지스터

주소

읽기/쓰기

설명

리셋 값

FIFOD

0x1011 0004

읽기/쓰기

Remote 신호 수신기 제어

레지스터

미정

 

 

FIFOD

비트

설명

초기 상태

FIFO 데이터

[7:0]

FIFO 데이터(8비트)

미정

 

2007/11/02 - [임베디드/ARM] - S3C2800번역본 UART
2007/11/02 - [임베디드/ARM] - S3C2800번역본 IIC
2007/11/02 - [임베디드/ARM] - S3C2800번역본 WATCHDOG