이 블로그는 임베디드 컴퓨터를 이용한 장치(시스템) 개발과 원격제어에 필요한 지식을 공유 하기 위한 블로그 입니다.
실제 개발과 프로그램 예를 위하여 Microchip 사의 ATmega128를 사용한 보드와 Arduino Mega 보드(ATmega2560), Raspberry Pi, Raspberry Pi Pico, WiFi 모듈을 사용 합니다.

Programmable I/O Port와 Input/Output Operation

Microprocessor I/O Operation         Programmable I/O Port와 Input/Output Operation

Microprocessor Address Bus Data Bus Control Bus ROM RAM clk Input Port Address Do Di OE OE Output Port Address Di Do CP Control Port Address Di Do CP LOW HIGH Tri-State Gate Enable I/O Pin Memory Programmable I/O Port Microprocessor Input/Output Operation Input Operation: 컴퓨터 외부의 Digital Data를 컴퓨터 내부 로 전달 하기 위한 Input Port(Register)로 부터 Microprocessor 내의 Register로 가져 오는 동작. Output Operation: Microprocessor 내에 있는 Register에 저장된 Data를 컴퓨터 외부로 Data를 전달 하기 위한 Output Port(Register)로 전달 하는 동작. Programmable I/O Port: Control Register을 사용 하여 하나의 Pin을 Input또는 Output Port로 사용 할 수 있도록 설정(Program) 한다. I/O Pin을 사용 하기 전에 먼저 Control Rg에 필요한 설정을 하여야 한다. I/O Pin을 동일한 설정으로 계속 사용하는 경우 Control Rg 설정은 한번만 필요 하다. Input Operation: Address에서 지정된 번지의 Input Port(Rg) 내용(Data)을 uP 내의 Rg(Data)로 가져 온다. Microprocessor 내의 Rg(Data) <- Input Port(Rg(Data)) I/O Port 설정: I/O Port를 사용 하기 전에 Control Register을 사용 하여 Pin을 Input Pin으로 설정 한다. Operation Sequence: Step 0: Control Port(DDR Rg) 설정: DDR Rg <- 0 (해당 Pin을 Input Pin으로 설정) Step 1: Input Port(Rg) <- Input Interface Circuit <- Physical Device Step 2: Address -> Input Port(Data) -> Control Signal(RD) -> Data Bus(Data) -> Rg(Data) (일반적으로 Input Operation은 Step 2 동작을 의미 한다.) Output Operation: uP의 Rg 내용(Data)을 Address에서 지정한 Output Port(Rg)에 저장 한다. Output Port(Rg) <- Microprocessor 내의 Rg(Data) I/O Port 설정: I/O Port를 사용 하기 전에 Control Register을 사용 하여 Pin을 Output Pin으로 설정 한다. Operation Sequence: Step 0: Control Port(DDR Rg) 설정: DDR Rg <- 1 (해당 Pin을 Output Pin으로 설정) Step 1: Address -> uP Rg(Data) -> Data Bus(Data) ->Control Signal(WR) -> Output Port(Data) (일반적으로 Output Operation은 Step 1 동작을 의미 한다.) Step 2: Output Port(Rg) -> Output Interface Circuit -> Physical Device (Output Enable 신호(OE)를 Low로 하면 Output Port의 내용이 언제나 Interface Circuit에 전달 된다.) address data control