Download presentation
Presentation is loading. Please wait.
1
ATMega128 I/O Ports KyungHee Univ.
2
6개의 8비트 양방향 병렬 I/O 포트(PORTA~F) 1개의 5비트 양방향 병렬 I/O 포트(PORTG)
ATMega128 I/O Ports 6개의 8비트 양방향 병렬 I/O 포트(PORTA~F) 1개의 5비트 양방향 병렬 I/O 포트(PORTG) 각 PORT별 3개 I/O 레지스터 영역 DDR(Data Direct Register) : 입출력 방향 결정 PORT(Data Register) : 데이터 출력 PORT PIN(Port Input Pins Register) : 포트의 입력 핀 Rg DDR, PORT : 읽기/쓰기 가능, PIN : 읽기만 가능 KyungHee Univ.
3
Read-Modified-Write Cycle 지원
ATMega128 I/O Ports의 특징 특징 최대 40mA 구동 전류 LED 1개 구동 가능 선택 가능한 Pull Up 저항 내장 20K – 100K Ohm Vcc, GND 사이에 입력단 보호 Diode 내장 Read-Modified-Write Cycle 지원 다른 pin의 영향을 주지 않고 한 port 핀의 방향을 바꿀 수 있음 SBI : Set Bit in I/O Register 과 sbi PORTD, PD0 CBI : Clear Bit in I/O Register instruction 사용 cbi PORTD, PD0 KyungHee Univ.
4
ATMega128 I/O Ports 모든 Port는 다음과 같은 특성을 갖는다.
Bit-selectable pull-up resistors Bit-selectable tri-state outputs Schmitt trigger input Synchronized to the system clock : 입력신호의 안정성에 기여(Pin Read Operation 시 1.5Cycle 이전에 Pin 신호가 안정화 되어야 함) 같은 port에 write한 다음 바로 read 시 nop instruction 필요(1.5Cycle Delay) : __no_operation(); Symmetrical DC drive capability KyungHee Univ.
5
AVR port architecture pull-up resistor Tri_State port pin
schmitt trigger buffer analog switch port pin DDRx PORTx PINx Tri_State KyungHee Univ.
6
I/O Port input structure
ATMega128 I/O Ports I/O Port input structure Protection diodes Programmable pull-up resistor port pin pull-up resistor KyungHee Univ.
7
IO Port Register Port A-G 동일
8
SFIOR: Special Function IO Reg.
PUD PUD Set 0 : Pull-Up Enable PUD Set 1 : Pull-Up Diable DDxn = 0, PORTxn = 1로 설정되어도 이 bit가 우선함
9
Port A 부가 기능 외부 memory 확장 하위 8bit address와 8bit data ALE 신호
10
Port B 부가 기능 Timer/Counter Output SPI Bus Interface
11
Port C 부가 기능 외부 memory 확장 상위 8bit address
12
Port D 부가 기능 Timer/Counter Input USART Interface External Interrupt
TWI Serial Interface
13
Port E 부가 기능 External Interrupt Timer/Counter Input and Output
Analog Comparator UART Interface
14
Port F 부가 기능 ADC Input JTAG interface
15
Port G 부가 기능 RTC Oscillator External memory interface ALE/RD/WR
16
ATMega128 I/O Ports Port 이용 프로그램 작성시 고려 할 점
Input pins 1.5 clock cycle delay를 갖는다. Read Operation을 실행하기 1.5 clock cycle 전에 Input Pin의 상태가 안정 되어야 한다. I/O 관련 프로그램을 Transportable, Readable, More bug free 하게 작성 하기 위한 AVR ASM 프로그램 예 PORTF의 PF0,PF1를 Output Port로 정의 하는 경우 ldi r16, 0x03 sts DDRF, r16 과 같이 코딩 하는 것 보다 아래 와 같이 코딩 하는 것이 보다 적정 하다. .equ AC0 = r16 ldi AC0, ( 1<< PF0 ) | ( 1 << PF1) sts DDRF, AC0
17
AVR I/O port programming
Program Files\Atmel\Atmel Toolchain \AvrAssembler\Native\ \include \m128def.inc File에 Port 사용에 관련된 정의가 있다. 예 /*Data Register, Port B */ .equ PORTB = 0x18 …… /*Port B Data Register – PORTB */ .equ PB7 = 7 .equ PB6 = 6 .equ PB5 = 5 .equ PB4 = 4 .equ PB3 = 3 .equ PB2 = 2 .equ PB1 = 1 .equ PB0 = 0
18
AVR I/O port programming
m128def.inc에서 .equ(or .def) 문을 이용하여 정의한 Symbol은 아래와 같이 이해하기 쉬운 프로그램 작성을 가능하게 한다. 예 .equ AC0 = r16 ldi AC0, (1<<PB0)|(1<<PB1) sts DDRB, AC0 ldi AC0, (1<<PB1) sts PORTB, AC0
19
AVR I/O port programming
I/O Port Bit Operation 예 PORTA – PORTD(I/O Rg space)의 1 Bit를 Clear or Set 하는 경우 ; PORTB의 PB3를 Clear 하는 경우 cbi PORTB, PB3 ; PORTB의 PB3를 Set 하는 경우 sbi PORTB, PB3 PORTF(Data space)를 Clear or Set 하는 경우; ; PORTF의 PF0를 Clear 하는 경우 lds AC0, PORTF andi AC0, ~(1<<PF0) sts PORTF, AC0 ; PORTF의 PF0를 Set 하는 경우 ori AC0, (1<<PF0)
20
AVR I/O port programming
AND, OR, XOR 논리 연산을 이용한 Bit Operation 일반적인 Bit Operation( I/O Rg space) 예 ;Clear bit 0 and 1 in AC0, PORTB andi AC0, ~((1<<PB0)|(1<<PB1)) out PORTB, AC0 ;Set bits 7 and 2 ori AC0, (1<<PB7)|(1<<PB2) ;Toggle bit 5 eor AC0, (1<<PB5) ; Toggle
21
AVR I/O port programming
AND, OR, XOR 논리 연산을 이용한 Bit Operation 일반적인 Bit Operation( Data space) 예 ;Clear bit 0 and 1 lds AC0, PORTF andi AC0, ~((1<<PF0)|(1<<PF1)) sts PORTF, AC0 ;Set bits 7 and 2 ori AC0, (1<<PF7)|(1<<PF2) ;Toggle bit 5 eor AC0, (1<<PF5) ; Toggle
22
AVR I/O port programming
Mask를 사용 하여 개별 Bit 값을 알 수 있다. 예 ;Port D 의 PD0 bit 가 1 인가를 Test 한다. in AC0, PORTD andi AC0, (1<<PD0) BRNE NEXT1 … NEXT1: ;Port D 의 PD0 bit 가 0 인가를 Test 한다. BREQ NEXT1
23
AVR I/O port interfacing
Pull-up 기능은 Switch를 외부 저항 없이 Input Port에 Interface 할 수 있게 한다. 그러나 Leakage current 가 증가 할 우려가 있다. 외부 조건(정전기, 부하에 의한 고전압 발생 등)에 대한 I/O Port protection에 대한 고려가 필요 함. LED Drive Circuits 적절한 Current Limit Resistors의 선택이 필요함. Motor or relay drive circuits Inductive에 의한 고전압을 제거 하는 Diode 필요 5V to 3.3V or 3.3V to 5V interfacing Voltage thresholds 가 같은 logic families Chip을 사용 하거나, Interface Chip : 74LVC244, TXB0108 등 이용
Similar presentations