뽕구의 개발일지

[STM32] GPIO - INPUT 구조 본문

개발 일지/STM32

[STM32] GPIO - INPUT 구조

뽕구 2023. 8. 3. 03:01
728x90
반응형

 

GPIO (General Purpose Input/Output, 범용 입출력)

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

 

표준 입출력 포트 기본 구조

 

MCU 쪽으로 신호가 들어오는 경우 INPUTMCU 쪽에서 신호가 출력되는 경우 OUTPUT  이라는 개념은 매우 기본적입니다. 먼저 STM32F103의 기반이 되는 ARM Cortex-M3의 INPUT 기본 구조부터 단계별로 알아보도록 하겠습니다.

 

Cortex-M3 INPUT 기본구조

① 입출력 PIN과 입출력 PIN에서 과전압이 들어오면 다이오드쪽으로 전류가 흘러 회로를 보호해주는 "Protection diode" 보호 다이오드입니다.

 

② Floating 현상을 막기 위해 Push-Pull 저항, Push-Down저항 을 선택할 수 있는 부분입니다.

*Floating 현상은 스위치가 열려있을때 전류의 흐름을 판별할 수 없는 상태임을 의미합니다.

 

③ 상위 임계점 (upper threshold)에 도달하면 출력 1(HIGH), 하위 임계점(lower threshold) 이하면 출력 0(LOW)로 출력하는 TTL 슈미트 트리거입니다. 쉽게 생각해서 0.8V 이하면 LOW, 1.8V 이상 신호면 HIGH 를 출력합니다. 

상위 임계점과 하위 임계점 차를 두고 슈미트 트리거 히스테리시스 라고 합니다.

 

Analog 신호인 경우 "Analog Input"으로 신호가 흐르고, Digital 신호 중 SPI, I2C 같은 정의된 신호인 경우 "Alternate Function Input"로 신호가 흐릅니다.

 

⑤ Alternate Function Input Digital 신호가 아닌 일반적인 GPIO인 경우 "Input Data Register" 에 저장됩니다.

 

⑥ Input Data Register에 접근하여 저장된 GPIO 신호를 읽습니다.

 


아래는 ⑤에 해당하는 Input Data Register의 구조입니다.

STM32의 경우 32bit MCU이기 때문에 레지스터가 32bit 구조이고, INPUT의 경우 GPIOx_IDR 를 사용합니다.

(x : A~I /J/K)

GPIOx_IDR(Input Data Register) 구조

하위 비트 [0] ~ [15] 가 Input Data Register[0] ~ [15]  에 해당하고 상위 [16] ~ [31] 은 Reserved 입니다.

728x90
반응형