강좌 & 팁
글 수 2,412
2011.12.19 13:57:56 (*.159.57.82)
43498
타겟보드를 이용하여 디바이스 드라이버를 배워보자!(9)
안녕하세요 이우영 입니다.
오늘은 회로도를 찾았습니다.
그럼 회로도를 보면서 우리가 사용할 GPIO 핀을 찾아 보겠습니다.
1. EZ-S3C6410 인터럽트 핀 찾기
EZ-S3C6410 보드는 아래 그림과 같이 많은 주변장치와 핀들로 구성 되어 있습니다.
우리는 이 많은 핀들 중 그림에 표시한 부분에서 사용하도록 하겠습니다.
위에 두부분은 H1과 H2로 회로도에 나오는 부분입니다.
그럼 회로도에서 찾아 볼까요?
우선 H1의 모습입니다.
H1에서는 GPIO를 찾아 볼수가 없습니다.
그럼 H2를 볼까요?
H2에는 그림에 표시한 부분에 GPIO 핀들이 연결되어 있습니다. 보시면 GPA도 보이고 주로 GPE,GPH가 보입니다.
그럼 우리는 GPH 그룹을 이용해서 인터럽트를 사용하도록 하겠습니다.
(GPH0 ~ GPH5 6개의 핀중 골라서 사용합시다.)
그럼 GPH에 대한 데이터 시트를 확인해 보겠습니다.
보시는거와 같이 인터럽트로 사용가능한 GPIO입니다.
그럼 레지스터의 주소를 확인해 보겠습니다.
GPH는 10의 핀이 있고 각 핀은 4비트 씩 사용하기 때문에 GPHCON이 2개로 구성되어 있습니다.
우리는 0~5번 핀 중 하나를 사용할 것이기 때문에 GPHCON0만 살펴 보겠습니다.
각 핀들은 기본 0000 값으로 되어있습니다. 인터럽트로 사용하기 위해서는 핀의 설정값이 0111로 변경 해줘야 합니다.
(값은 비트로 표현되어 있습니다. 주의하세요!)
GPHCON0의 주소는 0x7F0080E0 입니다.
우리는 나중에 아래처럼 정의해서 사용할 것입니다.
#define REG_GPHCON0 0x7F0080E0
위와 같이 data와 저항도 정의 합니다.
#define REG_GPHDAT 0x7F0080E8
#define REG_GPHPUD 0x7F0080Ec
초기 핀 설정은 아래와 같은 방법으로 할것입니다.
(소스코드를 보시면서 확실히 익혀주세요 지금은 이렇구나~ 하고 넘어 값시다 ㅎㅎ)
REG_GPHCON0 = 설정값 ;
오늘은 급히 여기서 마무리 하도록 하겠습니다.
다음시간을 기다려 주세요 ㅎㅎ.
빠른만남을 원하시면 http://ms-osek.org/ 여기로 찾아오세요~