카테고리 없음

avr_study(2020/09/27)_gpio

박재완 2020. 9. 27. 19:37
728x90
반응형

여러 일이 있어서 avrstudy를 중도 하차 하게 되어서 새롭게 진행하도록 하기로 했다. 그래도 최대한 atmelstudio7을 유지하면서 작업 하고자 한다. 뭐 가끔 기기는 128 328을 좀 옮겨다니면서 사용하게 될거 같지만 뭐 큰문제 없는 범위내에서 움직이면서 기재하는 걸로 결정하였다.

그래서 우선 적으로 필요한 사전 정보나 지식이 있어야 한다는 것을 알게 되었고 그래서 avr을 사용하기 전에 알아두면 좋은 지식들을 조금 정리 하면서 기재 해나가보려고 한다.

 

우선 그 첫번째가 gpio 

다용도 입출력(general-purpose input/output, GPIO) 이다. 생각보다 avr arm 등 프로세서가 달리든 단순 레지스트리로 움직이는 mcu에서도 다양하게 사용하며, 이런쪽으로 공부를 하거나 취미로라도 배운다면 많이 등장하는 친구이다.

즉 gpio는 입력이나 출력을 포함한 동작이 런타임 시에 사용자에 의해 제어될 수 있는, 집적회로나 전기 회로 기판의 디지털 신호 핀이다.

GPIO는 특정한 목적이 미리 정의되지 않으며 기본적으로는 사용되지 않는다. GPIO는 어셈블리 레벨의 회로망 설계자(집적 회로 GPIO의 경우에는 회로 기판 설계자, 기판 레벨 GPIO의 경우에는 시스템 통합자, S/I)에 의해 구현되어 있으며 사용 시에는 GPIO의 목적과 동작이 정의된다.

이걸 크게 나눠보자면 집적회로 gpio나 기판레벨의 gpio 2가지가 있겠다.

집적회로의 gpio

집적회로의 gpio는 이번 avr study를 진행하는데 있어서 필요한 gpio등을 포함한다. avr raspberry pi arduino등이 이런것에 해당한다. 하지만 라즈베리파이는 조금 다른 영역에 들어갈수도 있다.

정리해서 보자면 사용자가 코드 편집기나 코드상의 코드들을 이용하여 자유롭게 레지스트리나 기존 명령어 코드 라이브러와 함께 사용하여 gpio pin을 정의하고 사용하는 핀으로 생각하면 매우 간단하게 정의된다.

기판레벨 gpio

ic레벨단에서 구현될수 없는 경우를 의미한다. 즉 예를 들자면 이더넷을 이용하기 위한 고속 연산과 쉬프터 연산을 지원하는 핀 또는 고전력 고전압을 전달 또는 인가 해줄 수 있는 gpio 등이 이에 해당 되는데 보통 pwm, 또는 dac 포트등이 ic내에도 없는데도 gpio로 구현되는 경우가 이런 경우로 볼 수 있다.

그래서 기판 레벨 gpio는 주로 기존 gpio에 보조형태로 쓰이는 것으로 생각하면 간단하다. 큰예로는 nvidia 시리즈 개발 보드들을 생각하면 간단하다. 기본적으로 연산에 특화된 npu 또는 gpu 를 사용하고 있기 때문에 io핀을 쉽사리 만들수 없다. 특히 연산에 치중된 경우의 목적을 둔경우라면 io를 제어하기위한 여유가 없다, 그래서 간단한 통신이나 커널 레벨에서 서로 gpio를 제어할수 있도록 보조 장치로 구현된 경우가 이런 경우라고 생각하면 편하다.

728x90
반응형