'GPIO'에 해당되는 글 1건

  1. 2008.04.19 XScale (PXA***) 에서 GPIO 1
삽질기행/잡다정보2008. 4. 19. 12:22

GPLR (Level)
Read Only
해당 핀의 High/Low 상태 확인 (해당 비트가 1이면 High)

GPDR (Direction)
Read/Write
핀의 경로 설정. 0이면 Input, 1이면 Output.

GPSR (Set) / GPCR (Clear)
Write Only (Read도 되던가?ㅡ.ㅡ;)
GPSR - 핀에 High를 Set함(1로 만듬), GPCR의 반대 기능
GPCR - 핀을 Low로 떨어뜨림(0으로 만듬), GPSR의 반대 기능

GRER (Rising Edge) / GFER (Falling Edge)
Write Only (Read도 되던가?ㅡ.ㅡ;)
핀 레벨엣지 감시. GRER의 해당 비트를 1로 만들면 Rising을, GFER의 해당 비트를 1로 만들면 Falling을 감시한다. 검출된 결과는 GEDR의 해당 비트가 1로 됨으로 써 알 수 있다.

사용자 삽입 이미지

GEDR (Edge Detect)
Read/Write
GRER/GFER에서 지정한 핀에서 Edge가 확인하면 해당 비트가 1로 바뀐다.
해당 핀의 비트에 1을 주면 Edge가 검출되었다고 1로 세팅되었던 비트가 0으로 clear된다.

GAFR (Alternate Function)
Write Only
이놈만 한 핀당 2비트다.
회로 설계에 따라 어찌할지 정해야한다.
(초짜 SW쟁이라 잘 모르겠다 -_-; 그냥 HW팀에서 해달라는대로 해줬다.)

00 : General Purpose I/O
01 : alternate function 1
10 : alternate function 2
11 : alternate function 3


---------------------------------------------
example.

GPIO핀 하나에 LED를 물렸다.
이 LED를 켜려면?

GPDR의 해당 비트는 1로 되어있어야한다.
그리고 해당 GPSR에 1을 준다.
끄려면?
GPDR의 해당 비트는 1로 되어있어야한다.
그리고 해당 GPCR에 0을 준다.

장치로부터 Level Edge 인터럽트를 받고자 하며, Rising과 Falling 둘다 필요한데 상황에 따라 처리할 내용이 다르다. 구분은 어떻게?
일단 GRER과 GFER을 모두 세팅해놓는다.
GEDR 감시로 인터럽트 발생을 확인한다.
Edge가 발생되면 GPLR로 핀레벨을 확인하여 확인된 Edge가 Rising인지 Falling인지 알 수 있다.

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

오늘의 잡템.

사용자 삽입 이미지

급조한거지만 비트를 한 눈으로 못읽는 나같은 이들을 위해 만든(사실을 나를 위해-_-;)
2가지 기능을 가진 잡템 -_-;

(GPLR을 예로 들면 GPLR0은 0~31, GPLR1은 32~63을 담당한다.)
핀번호 넣고 gen을 눌러주면 된다.

현재 세팅하는 값을 알기 위한 기능으로 Reg2GPIO -_-;;
GPLR2에서 읽힌 값이 0x80000000 이었다면 이게 몇번 핀들을 의미하는지 알기 위한 기능 ㅡ.ㅡ;;

invalid-file

GPIO Bit 계산기


나말고 다른 사람에게 쓸모가 있을지는 모르겠다 -_-;

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

아래는 내가 쓰려고 대충 만든것보다 좋아뵈는거 있어서 퍼왔다. ㅎㅎ




(1)해당 비트에 마우스를 가져다가 클릭해 보세요. 값이 변화를 보일 것입니다.
(2)직접 값을 입력하고 싶을 때는 HEX 창이나 DEC창에 값을 입력 한 이후 TEST 버튼을 눌러보세요.
(3)해당 값의 반전(NOT) 을 취하고 싶을 경우 해당 버튼을 누르세요
(4)해당 값을 원하는 수만큼 쉬프트 시키고 싶을 경우 쉬프트 할 비트수를 입력하고 좌/우 화살표(<<, >>)을 눌러 보세요.
(5)두개의 이진값을 &(AND), |(OR), ^(XOR) 합니다.
(6)To Result 버튼은 연산의 결과를 (1)번의 비트표시창으로 연동시켜 줍니다. 눌러보세요. 1번 윈도우의 비트값이 변화를 보일 것입니다.
(7)어드레스 베이스 값에 원하는 오프셋값을 더하고 빼는 것을 도와 줍니다.
(8)연산의 바로 직전 값을 확인 할 수 있도록 해 줍니다.
(9)Mapping Bits 버튼은 비트 값을 파일로 만들어서 INPUT 시킬 수 있는 기능 인데 사용법을 모르겠습니다.

http://www.hongikcom.com/zb/view.php?id=technote&page=2&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=28

Posted by freezn