
http://blog.naver.com/zzangisaac/30020824847
GPIO란..
General Purpose Input/Output 의 줄임말.
어떤 목적을 위해서 Input으로도 Output으로도 쓸 수 있고,
Chip 자체의 기능으로도 쓸 수 있는 Chip의 하나하나의 PIN.
CPU보시면 PIN많죠? 그게 대부분 GPIO로 보면 됩니다.
자 정리합니다.
모든 용어는 CPU의 입장에서입니다.
Alternative Function
- CPU는 여러가지 Peri를 가지고 있습니다. UART Controller라던가, Audio Controller라던가.. 내부에 그런게 많죠.
UART를 기본으로 설명합니다. UART는 완전 기본적으로 RX와 TX의 두개의 Line이 필요합니다.
Serial 통신의 기본은 데이터를 주고받는거죠. 이게 그냥 주고받기만 해서 되는게 아니라
하드웨어적으로 경로가 있어야 하죠. 그리고 그 경로는 CPU 내부에 UART Controller와 이어져 있어야
Serial 통신을 할 수 있습니다.
CPU는 외부에 나와있는 특정 핀을 정의하여 ALTFN으로 할 경우 내부 장치와 연결되도록 결정해놓습니다.
예를들어 GPIO 0번그룹의 13번이 TX핀이고 14번이 RX핀이라면 이 두개의 핀을 ALTFN으로 세팅하면
Uart Controller와 연결되어 Serial의 회선으로 사용되게 됩니다.
참고로 Datasheet이 있다면 하나하나의 Controller Chapter를 보면
해당 Controller에서 사용하는 GPIO PIN정보를 볼 수 있습니다.
GPIO IN
- CPU로 어떤 입력이 필요할 때 GPIO IN으로 설정합니다.
버튼을 예로 들어봅시다. 보드의 버튼을 누르면 이것저것 시스템이 잘 반응합니다.
그게 하드웨어적으로는 해당 버튼이 눌리면 GPIO를 통해서 CPU로 나 눌렸어요~!! 를 알려주기 때문에 가능한거죠
CPU로의 입력. 이게 GPIO IN입니다.
GPIO OUT
- CPU가 어떤 신호를 내보내려고 할 떄 특정 핀을 사용하게 되고 그 핀은 GPIO OUT으로 설정되게 됩니다.
또 버튼을 예로 들어봅시다. 버튼이 눌리면 보드에 LED가 켜진다고 해보면.
버튼이 눌림 -> 이것은 GPIOIN으로 CPU에 알려주게 됨 -> CPU는 GPIOOUT으로 연결된 LED에 신호를 보냄 -> LED가 켜짐.
쉽게 쓰려 했으나..
쉬운지는 모르겠삼!!