본문 바로가기
임베디드SW/TC275 Lite Kit for 임베디드

GPIO 제어하는 방법 1편 (Push-pull 모드, Open-drain 모드)

by 바이너리 임베디드 2021. 11. 22.

GPIO 제어하는 방법 1편 (Push-pull모드 Open-drain모드)

 

GPIO는 General Purpose Input Output이라고 하는군요.
우선 GPIO를 제어하기 위해서 GPO부터 한번 파헤쳐 보도록 하겠습니다.

그 다음편에서는 GPI를 파헤쳐 보고, 그다음에는 TC275 Lite Kit에서 어떻게 구현하는지 보도록 하겠습니다.

 

 

GPIO Data Direction을 정해주자!

물리적인 Hardware pin은 2가지 용도로 사용할 수 있습니다.

하나는 Input pin으로 쓸수 있거나 또 다른 하나는 Output pin으로 쓸수 있다는 이야기입니다.

다시 말해 Control Register를 통해 내가 원하는 Pin의 용도대로 Data Direction을 정해주어야 한다는 이야기입니다.

아 여기서 Register 이야기를 잠깐 해야겠네요.
MCU에는 User가 레펀런스 매뉴얼을 보고 값을 write할수 있는 제어 레지스터(Control Register)가 있고 User가 MCU 페리페럴들의 현재 상태를 보기위한 Read가 가능한 상태 레지스터 (Status Register)가 있다는 것을 알고 계시면 됩니다.
요정도만 알고 넘어가시죠. 나중에 더 자세히 설명할 기회가 있을것 같습니다.


아래 그림에서는 오른쪽 면에서 위에 핀을 Output Pin으로 설정하여 쓰는 경우이고 오른쪽 면 아래 핀은 Input Pin으로 설정하여 쓰는 경우입니다.

GPIO 제어하는 방법 1편 (Push-pull모드 Open-drain모드)

 

 

 

I/O타입이 Output인 경우 Mode를 선택해 보자!

 



GPIO 제어하는 방법 1편 (Push-pull모드 Open-drain모드)

 

 

I/O 타입을 Ouput Mode로 설정하게 되면 HW 핀은 Output Pin으로 사용할 수 있게 됩니다.

그리고 추가적으로 Push-pull 모드인지 Open-drain인지 설정해주어야 합니다.

어려워 보이는 용어가 등장했네요. 쫄지 말고 천천히 하나 하나 배워가 봅시다.

Data Out Buffer를 High로 설정해 주면 3.3V가 출력 되고 Low로 설정해주면 0V가 출력이 됩니다.

 

 

Push-pull Mode

 

 

GPIO 제어하는 방법 1편 (Push-pull모드 Open-drain모드)

 

위의 그림은 Push-pull 모드로 설정한 경우 MCU 내부의 모습을 나타낸 것입니다.

그리고 Data OutBuffer의 값을 0으로 설정한 경우입니다.

P-Ch의 스위치는 Off가 되고 N-Ch 스위치는 On이 되어 외부의 전류가 내부 그라운드로 흘러들어와 전압이 0V가 됩니다.

 

 

 

GPIO 제어하는 방법 1편 (Push-pull모드 Open-drain모드)

 

위의 그림은 Push-pull 모드이면 Data OutBuffer의 값을 1로 설정한 경우입니다.

이때 P-Ch은 On이 되고 N-Ch은 Off가 됩니다. 내부의 3.3V가 Output Pin에 걸리게 되어 3.3V가 출력 되게 됩니다. 

 

 

 

Open-drain 모드

 

GPIO 제어하는 방법 1편 (Push-pull모드 Open-drain모드)

Open-drain 모드인 경우 MCU 내부의 모습을 살펴보도록 합시다.

이전 Push-pull 모드에서 P-Ch 과 내부 전원이 없는 불완전한 모습을 확인 할수 있습니다.

그래서 출력을 High 또는 Low를 만들어 주기 위해서는 외부 회로의 도움이 필요하게 됩니다.

Output Buffer를 0으로 설정하게 되면 스위치가 On이 되며 Output 핀이 내부 그라운드와 연결되고 0V로 당겨지게 됩니다.

 

 

GPIO 제어하는 방법 1편 (Push-pull모드 Open-drain모드)

Output Buffer를 1로 설정하게 되면 스위치는 Off상태가 되고 외부 전원으로 3.3V가 출력되는형태가 됩니다.

 

 

 

지금까지 GPO의 설정을 알아보았습니다.

놀라운건 Output 핀을 설정하는데 외부 회로의 구성이 중요하다는것도 알게되었습니다.

그럼 다음 편에서는 GPI에 대해서 알아보도록 하겠습니다.

 

 

이 글과 관련된 질문이나 궁금한점은 그 밖에 다양한 모든 것들을 카페에서 함께 나누고 이야기해보면 좋을 것 같습니다. 아래 링크로 바로 방문해보세요. 

 

https://cafe.naver.com/binaryembedded

 

임베디드 유니버스 : 네이버 카페

임베디드 유니버스 : 임베디드의 세계로 초대합니다.

cafe.naver.com

 

 

이 컨텐츠가 도움이 되셨다면!!!

ㅇ ㅏ ㄹ ㅐ 를 꼬 오 옥!! 부탁 드립니다. 큰 힘이 됩니다.

 

댓글