atmega128 register (by jsm)

121
ATmega128 Architecture Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 1 Pin Configurations Func1 Func2 Func3 PIN Num VCC 21 52 Digital Supply Voltage (+5V) GND 22 53 63 Ground RESET 20 CPU Reset PEN 1 Programming Enable XTAL-1 24 Oscillator Input XTAL-2 23 Oscillator Output AVCC 64 AnalogSupplyVoltage(A/DConverter및 PORTF의 전원) AREF 62 Analog Reference Voltage (A/D Converter의 기준전압) PORTA PA0 AD0 51 8bit양방향병렬포트(내부적으로Pull-UP:20KΩ~50KΩ) PA1 AD1 50 DDRn (입출력 설정) PA2 AD2 49 PORTn (데이터 출력) PA3 AD3 48 PINn (데이터 입력) PA4 AD4 47 외부데이타 메모리 액세스 (데이터 버스 및 어드레스 버스가 시분할다중화) PA5 AD5 46 시분할다중화시 어드레스 버스는 ALE 신호에 의하여 분리 PA6 AD6 45 PA7 AD7 44 PORTB PB0 SS 10 SPI Slave Select Input (SPI 채널의 Slave선택 입력 선호) PB1 SCK 11 SPI Serial Clock (SPI 채널의 Master 및 Slave의 클럭 입력 신호) PB2 MOSI 12 SPI Master Output / Slave Input (SPI 채널의 Master 출력신호 / Slave 입력신호) PB3 MISO 13 SPI Master Input / Slave Output (SPI 채널의 Master 입력신호 / Slave 출력신호) PB4 OC0 14 Timer/Counter 0,1,2,3 Output Compare Match and PWM Output PB5 OC1A 15 Timer/Counter 0,1,2,3 Output Compare Match and PWM Output PB6 0C1B 16 Timer/Counter 0,1,2,3 Output Compare Match and PWM Output PB7 OC2 OC1C 17 Timer/Counter 0,1,2,3 Output Compare Match and PWM Output PORTC PC0 A8 35 INT0~INT7☞ExternalInterrupt(외부인터럽트요청신호) PC1 A9 36 PDI☞ProgrammingDataInput(MasterOutput/SlaveInput) PC2 A10 37 ATmega128에 ISP 프로그램으로 보내는 데이터 신호 (ISP 케이블의 MOSI단자에 연결) PC3 A11 38 PDO ☞ Programming Data Output (Master Input / Slave Output) PC4 A12 39 ISP 프로그램에서 ATmega128에 보내는 데이터 신호 (ISP 케이블의 MISO단자에 연결) PC5 A13 40 AIN0☞AnalogComparatorPositiveInput(아날로그비교기플러스극성입력신호) PC6 A14 41 AIN0☞AnalogComparatorNagativeInput(아날로그비교기마이너스극성입력신호) PC7 A15 42 PORTD PD0 SCL INT0 25 TWI Seerial Clock (TWI 채널의 클럭 입출력 신호) PD1 SDA INT1 26 TWI Seerial Data (TWI 채널의 데이타 입출력 신호) PD2 RxD1 INT2 27 USART1 Receive Data (직렬통신포트 USART1의 수신 데이터 신호) PD3 TxD1 INT3 28 USART1 Transmit Data (직렬통신포트 USART1의 송신 데이터 신호) PD4 ICP1 29 Timer/Counter 1 Input Capture Pin (타이머/카운터 1의 캡쳐모드시 트리거 신호) PD5 XCK1 30 USART1 External Clock Input/Output (USART1이 동기모드일때 송수신 클럭 신호) PD6 T1 31 Timer/Counter1ClockInput(타이머/카운터1의클럭입력신호) PD7 T2 32 Timer/Counter2ClockInput(타이머/카운터2의클럭입력신호) PORTE PE0 RxD0 PDI 2 USART0 Receive Data (직렬통신포트 USART0의 수신 데이터 신호) PE1 TxD0 PDO 3 USART0 Transmit Data (직렬통신포트 USART1의 송신 데이터 신호) PE2 XCK0 AIN0 4 USART0 External Clock Input/Output (USART0이 동기모드일때 송수신 클럭 신호) PE3 OC3A AIN1 5 Timer/Counter 0,1,2,3 Output Compare Match and PWM Output PE4 OC3B INT4 6 Timer/Counter 0,1,2,3 Output Compare Match and PWM Output PE5 OC3C INT5 7 Timer/Counter 0,1,2,3 Output Compare Match and PWM Output PE6 T3 INT6 8 Timer/Counter3ClockInput(타이머/카운터3의클럭입력신호) PE7 ICP3 INT7 9 Timer/Counter 3 Input Capture Pin (타이머/카운터 3의 캡쳐모드시 트리거 신호) PORTF PF0 ADC0 61 ADC0~ADC7☞ADCInputChannel(8채널10비트A/D컨버터아날로그입력신호) PF1 ADC1 60 PF2 ADC2 59 PF3 ADC3 58 PF4 TCK ADC4 57 JTAG Test Clock (JTAG ICE가 ATmega128에 보내는 클럭 신호) PF5 TMS ADC5 56 JATG Test Mode Select (JTAG IC가 Atmega에 보내는 모드 선택 선택 신호) PF6 TDO ADC6 55 JTAG Test Data Output (ATmega128이 JTAG ICE에 보내는 데이터 신호) PF7 TDI ADC7 54 JATG Test Data Input (JTAG ICE가 ATmega128에 보내는 데이터 신호) PORTG PG0 WR 33 Write Strobe (CPU가 외부데이터 메모리에 데이터를 쓰고 있다는 신호) PG1 RD 34 Read Strobe (CPU가 외부데이터 메모리에 데이터를 읽고 있다는 신호) PG2 ALE 43 Address Lantch Enable (AD0~AD7에 외부메모리 액세스를 위한 하위 어드레스 출력 신호) PG3 TOSC2 18 Timer/Counter0RTCOscillator PG4 TOSC1 19 (타이머/카운터 0의 RTC기능 사용시 클럭발생 수정발진자 접속단자)

Upload: others

Post on 01-Jan-2022

25 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ATmega128 Register (By JSM)

ATmega128 Architecture

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 1

Pin Configurations

Func1 Func2 Func3 PIN NumVCC     21 52   Digital Supply Voltage (+5V)GND     22 53 63 Ground

RESET     20     CPU ResetPEN     1     Programming Enable

XTAL-1     24     Oscillator InputXTAL-2     23     Oscillator OutputAVCC     64     AnalogSupplyVoltage(A/DConverter및 PORTF의 전원)AREF     62     Analog Reference Voltage (A/D Converter의 기준전압)

PORTA PA0 AD0   51     8bit양방향병렬포트(내부적으로Pull-UP:20KΩ~50KΩ)PA1 AD1   50     DDRn (입출력 설정)PA2 AD2   49     PORTn (데이터 출력)PA3 AD3   48     PINn (데이터 입력)PA4 AD4   47     외부데이타 메모리 액세스 (데이터 버스 및 어드레스 버스가 시분할다중화)PA5 AD5   46     시분할다중화시 어드레스 버스는 ALE 신호에 의하여 분리PA6 AD6   45      PA7 AD7   44    

PORTB PB0 SS   10     SPI Slave Select Input (SPI 채널의 Slave선택 입력 선호)PB1 SCK   11     SPI Serial Clock (SPI 채널의 Master 및 Slave의 클럭 입력 신호)PB2 MOSI   12     SPI Master Output / Slave Input (SPI 채널의 Master 출력신호 / Slave 입력신호)PB3 MISO   13     SPI Master Input / Slave Output (SPI 채널의 Master 입력신호 / Slave 출력신호)PB4 OC0   14     Timer/Counter 0,1,2,3 Output Compare Match and PWM OutputPB5 OC1A   15     Timer/Counter 0,1,2,3 Output Compare Match and PWM OutputPB6 0C1B   16     Timer/Counter 0,1,2,3 Output Compare Match and PWM OutputPB7 OC2 OC1C 17     Timer/Counter 0,1,2,3 Output Compare Match and PWM Output

PORTC PC0 A8   35     INT0~INT7ExternalInterrupt(외부인터럽트요청신호)PC1 A9   36     PDIProgrammingDataInput(MasterOutput/SlaveInput) PC2 A10   37     ATmega128에 ISP 프로그램으로 보내는 데이터 신호 (ISP 케이블의 MOSI단자에 연결)PC3 A11   38     PDO Programming Data Output (Master Input / Slave Output)PC4 A12   39     ISP 프로그램에서 ATmega128에 보내는 데이터 신호 (ISP 케이블의 MISO단자에 연결)PC5 A13   40     AIN0AnalogComparatorPositiveInput(아날로그비교기플러스극성입력신호)PC6 A14   41     AIN0AnalogComparatorNagativeInput(아날로그비교기마이너스극성입력신호)PC7 A15   42    

PORTD PD0 SCL INT0 25     TWI Seerial Clock (TWI 채널의 클럭 입출력 신호)PD1 SDA INT1 26     TWI Seerial Data (TWI 채널의 데이타 입출력 신호)PD2 RxD1 INT2 27     USART1 Receive Data (직렬통신포트 USART1의 수신 데이터 신호)PD3 TxD1 INT3 28     USART1 Transmit Data (직렬통신포트 USART1의 송신 데이터 신호)PD4 ICP1   29     Timer/Counter 1 Input Capture Pin (타이머/카운터 1의 캡쳐모드시 트리거 신호)PD5 XCK1   30     USART1 External Clock Input/Output (USART1이 동기모드일때 송수신 클럭 신호)PD6 T1   31     Timer/Counter1ClockInput(타이머/카운터1의클럭입력신호) PD7 T2   32     Timer/Counter2ClockInput(타이머/카운터2의클럭입력신호)

 PORTE PE0 RxD0 PDI 2     USART0 Receive Data (직렬통신포트 USART0의 수신 데이터 신호)

PE1 TxD0 PDO 3     USART0 Transmit Data (직렬통신포트 USART1의 송신 데이터 신호)PE2 XCK0 AIN0 4     USART0 External Clock Input/Output (USART0이 동기모드일때 송수신 클럭 신호)PE3 OC3A AIN1 5     Timer/Counter 0,1,2,3 Output Compare Match and PWM OutputPE4 OC3B INT4 6     Timer/Counter 0,1,2,3 Output Compare Match and PWM OutputPE5 OC3C INT5 7     Timer/Counter 0,1,2,3 Output Compare Match and PWM OutputPE6 T3 INT6 8     Timer/Counter3ClockInput(타이머/카운터3의클럭입력신호) PE7 ICP3 INT7 9     Timer/Counter 3 Input Capture Pin (타이머/카운터 3의 캡쳐모드시 트리거 신호)

 PORTF PF0   ADC0 61     ADC0~ADC7ADCInputChannel(8채널10비트A/D컨버터아날로그입력신호)

PF1   ADC1 60    PF2   ADC2 59    PF3   ADC3 58    PF4 TCK ADC4 57     JTAG Test Clock (JTAG ICE가 ATmega128에 보내는 클럭 신호)PF5 TMS ADC5 56     JATG Test Mode Select (JTAG IC가 Atmega에 보내는 모드 선택 선택 신호)PF6 TDO ADC6 55     JTAG Test Data Output (ATmega128이 JTAG ICE에 보내는 데이터 신호)PF7 TDI ADC7 54     JATG Test Data Input (JTAG ICE가 ATmega128에 보내는 데이터 신호)

PORTG PG0 WR   33     Write Strobe (CPU가 외부데이터 메모리에 데이터를 쓰고 있다는 신호)PG1 RD   34     Read Strobe (CPU가 외부데이터 메모리에 데이터를 읽고 있다는 신호)PG2 ALE   43     Address Lantch Enable (AD0~AD7에 외부메모리 액세스를 위한 하위 어드레스 출력 신호)PG3 TOSC2   18     Timer/Counter0RTCOscillator PG4 TOSC1   19     (타이머/카운터 0의 RTC기능 사용시 클럭발생 수정발진자 접속단자)

Page 2: ATmega128 Register (By JSM)

ATmega128 Architecture

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 2

Block Diagram and Architectural

Page 3: ATmega128 Register (By JSM)

ATmega128 Architecture

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 3

Execution Timing

(ALU - Arithmetic Logic Unit)

Page 4: ATmega128 Register (By JSM)

Fuse Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 4

Extend Fuse Byte

Bit 7 6 5 4 3 2 1 0  

M103C WDTON EFB

Default Value 1 1 1 1 1 1 0 1  

Unprogramed Unprogramed Unprogramed Unprogramed Unprogramed Unprogramed programed Unprogramed  

BIT NAME FUNCTION

7

6

5

4

3

2

1 M103C ATmega103 compatibility mode 0 ATmega103 호환 모드 사용 1 ATmega103 호환 모드 사용 불가능

0 WDTON Watchdog Timer always on 0 워치독 타이머 동작 허용 1 워치독 타이머 동작 금지

Page 5: ATmega128 Register (By JSM)

Fuse Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 5

Fuse High Byte

Bit 7 6 5 4 3 2 1 0  

OCDEN JTAGEN SPIEN CKOPT EESAVE BOOTSZ1 BOOTSZ0 BOOTRST FHB

Default Value 1 0 0 1 1 0 0 1  

Unprogramed programed programed Unprogramed Unprogramed programed programed programed  

BIT NAME FUNCTION

7 OCDN Enable OCD 0 On-Chip Debug 사용 가능 1 On-Chip Debug 사용 불가능

6 JTAGEN Enable JTAG 0 JTAG 사용 가능 1 JTAG 사용 불가능

5 SPIEN Enable Serial Program and Data Downloading 0 SPI 이용 직렬프로그래밍 가능 1 SPI 이용 직렬프로그래밍 불가능

4 CKOPT Oscillator Options 0 오실레이터 옵션 1 오실레이터 옵션

3 EESAVEEEPROM memory is preserved

through the Chip Erase0 Chip Erase시 EEPROM 삭제 금지 1 Chip Erase시 EEPROM 삭제

2 BOOTSZ1Select Boot Size Boot Size 선택

1 BOOTSZ0

0 BOOTRST Select Reset Vector 0 Boot Reset Vector 사용 가능 1 Boot Reset Vector 사용 불가능

BOOTSZ1 BOOTSZ0 Boot Size (Word) Pages Application Section Boot Loader Section

1 1 512 4 0x0000 ~ 0xFDFF 0xFE00 ~ 0xFFFF

1 0 1024 8 0x0000 ~ 0xFBFF 0xFC00 ~ 0xFFFF

0 1 2048 16 0x0000 ~ 0xF7FF 0xF800 ~ 0xFFFF

0 0 4096 32 0x0000 ~ 0xEFFF 0xF000 ~ 0xFFFF

Page 6: ATmega128 Register (By JSM)

Fuse Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 6

Fuse Low Byte

Bit 7 6 5 4 3 2 1 0  

BODLEVEL BODEN SUT1 SUT0 CKSEL3 CKSEL2 CKSEL1 CKSEL0 FLB

Default Value 1 1 1 0 0 0 0 1  

Unprogramed Unprogramed Unprogramed programed programed programed programed Unprogramed  

BIT NAME FUNCTION

7 BODLEVEL Brown out detector trigger level 0 Brown out detection level at VCC=4.0 1 Brown out detection level at VCC=2.6

6 BODEN Brown out detector enable 0 Brown out 사용 가능 1 Brown out 사용 불가능

5 SUT1Select start-up time 기동 시간 선택

4 SUT0

3 CKSEL3

Select Clock source 클럭 소스 선택2 CKSEL2

1 CKSEL1

0 CKSEL0

Page 7: ATmega128 Register (By JSM)

Fuse Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 7

System Clock Select

CKSEL3 CKSEL2 CKSEL1 CKSEL0 클럭 소스

1111 ~ 1010 ① External Crystal / Ceramic Resonator

1 0 0 1 ② External Low-frequency Crystal

1 0 0 0

③ External RC Oscillator

8.0 ~ 12.0 Mhz

0 1 1 1 3.0 ~ 8.0 Mhz

0 1 1 0 0.9 ~ 3.0 Mhz

0 1 0 1 0.1 ~ 0.9 Mhz

0 1 0 0

④ Calibrated Internal RC Oscillator

8.0 Mhz

0 0 1 1 4.0 Mhz

0 0 1 0 2.0 Mhz

0 0 0 1 1.0 Mhz

0 0 0 0 ⑤ External Clock

Page 8: ATmega128 Register (By JSM)

Fuse Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 8

① External Crystal / Ceramic Resonator

클락 소스 선택

CKOPT CKSEL3 CKSEL2 CKSEL1Frequency Range

(MHz)

Recommended Range for Capacitors

C1 and C2 for Use with Crystals (pF)

1 1 0 1 0.4 ~ 0.9 세라믹 레조네이터에서만 사용

1 1 1 0 0.9 ~ 3.0

12 ~ 22

1 1 1 1 3.0 ~ 8.0

0 1 0 1

1.0 ~ 16.00 1 1 0

0 1 1 1

기동 시간 선택

CKSEL0 SUT1 SUT0 기동 시간 (Clock) 리셋시 추가 시간 (ms) 사용 권장 분야

0 0 0 258 4.1

세라믹 레조네이터

fast rising power

0 0 1 258 65 slowly rising power

0 1 0 1024 BOD

0 1 1 1024 4.1 fast rising power

1 0 0 1024 65 slowly rising power

1 0 1 16348

크리스탈

BOD

1 1 0 16348 4.1 fast rising power

1 1 1 16348 65 slowly rising power

Page 9: ATmega128 Register (By JSM)

Fuse Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 9

② External Low-frequency Crystal

클락 소스 선택

CKSEL3 CKSEL2 CKSEL1 CKSEL0Frequency Range

(MHz)클럭 소스

1 0 0 1 - External Low-frequency Crystal

기동 시간 선택

SUT1 SUT0 기동 시간 (Clock) 리셋시 추가 시간 (ms) 사용 권장 분야

0 0 1024 4.1 fast rising power

0 1 1024 65 slowly rising power

1 0 32768 65 BOD

1 1 Reserved

Page 10: ATmega128 Register (By JSM)

Fuse Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 10

③ External RC Oscillator

클락 소스 선택

CKSEL3 CKSEL2 CKSEL1 CKSEL0Frequency Range

(MHz)클럭 소스

1 0 0 0 8.0 ~ 12.0

External RC Oscillator0 1 1 1 3.0 ~ 8.0

0 1 1 0 0.9 ~ 3.0

0 1 0 1 0.1 ~ 0.9

기동 시간 선택

SUT1 SUT0 기동 시간 (Clock) 리셋시 추가 시간 (ms) 사용 권장 분야

0 0 18 - BOD

0 1 18 4.1 fast rising power

1 0 18 65 slowly rising power

1 1 6 4.1 fast rising power / BOD

Page 11: ATmega128 Register (By JSM)

Fuse Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 11

④ Calibrated Internal RCscillator

클락 소스 선택

CKSEL3 CKSEL2 CKSEL1 CKSEL0Frequency Range

(MHz)클럭 소스

0 1 0 0 8.0

External RC Oscillator0 0 1 1 4.0

0 0 1 0 2.0

0 0 0 1 1.0

기동 시간 선택

SUT1 SUT0 기동 시간 (Clock) 리셋시 추가 시간 (ms) 사용 권장 분야

0 0 6 - BOD

0 1 6 4.1 fast rising power

1 0 6 65 slowly rising power

1 1 Reserved

내부 RC 오실레이터 사용시 주파수 조정 범위

OSCCAL 최저 주파수 (공칭 주파수의 %값) 최고 주파수 (공칭 주파수의 %값)

0x00 50 100

0x7F 75 150

0xFF 100 200

Page 12: ATmega128 Register (By JSM)

Fuse Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 12

⑤ External Clock

클락 소스 선택

CKSEL3 CKSEL2 CKSEL1 CKSEL0Frequency Range

(MHz)클럭 소스

0 0 0 0 - External Clock

기동 시간 선택

SUT1 SUT0 기동 시간 (Clock) 리셋시 추가 시간 (ms) 사용 권장 분야

0 0 6 - BOD

0 1 6 4.1 fast rising power

1 0 6 65 slowly rising power

1 1 Reserved

Page 13: ATmega128 Register (By JSM)

Memory Lock Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 13

Boot Loader

Page 14: ATmega128 Register (By JSM)

Memory Lock Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 14

BLBSET (Boot Lock Bit SET)

Bit 7 6 5 4 3 2 1 0  

 BLB12 BLB11 BLB02 BLB01 LB2 BL1 BLBSET

Default Value 1 1 1 1 1 1 1 1  

Unprogramed Unprogramed Unprogramed Unprogramed Unprogramed Unprogramed Unprogramed Unprogramed

BIT NAME FUNCTION

7

6

5 BLB12 BLB1 MODE

(Boot Loader Protection Mode)부트로더 섹션 액세스 보호 설정 모드

4 BLB11

3 BLB02 BLB0 MODE

(Application Protection Mode)응용 프로그램 섹션 엑세스 보호 설정 모드

2 BLB01

1 LB2 LB MODE

(Memory Protection Mode)외부 플래시 메모리 보호 설정 모드

0 LB1

Page 15: ATmega128 Register (By JSM)

Memory Lock Bit

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 15

LB MODE외부 플래시 메모리 보호 설정 모드

MODE BL2 LB1

1 1 1 메모리 락 기능 없음 (데이터 읽기는 가능)

2 1 0 모든 프로그래밍 금지 (FLASH, EEPROM, Fuse Bit 프로그래밍 금지)

3 0 0 모든 프로그래밍, Verity 금지 (FLASH, EEPROM, Fuse Bit 프로그래밍, Verity 금지)

BLB0 MODE응용 프로그램 섹션 엑세스 보호 설정 모드

MODE BL02 LB01

1 1 1 응용 프로그램 섹션 액세스 락 기능 없음 (SPM /(E)LPM 명령을 사용 가능)

2 1 0 응용 프로그램 섹션 라이트 금지 (SPM 명령 사용 불가능)

3 0 0응용 프로그램 섹션 라이트 / 리드 금지 ((E)LPM /SPM 명령 사용 불가능)

응용 프로그램 섹션 실행 중 모든 인터럽트는 금지됨

4 0 1응용 프로그램 섹션 리드 금지 ((E)LPM 명령 사용 불가능)

응용 프로그램 섹션 실행 중 모든 인터럽트는 금지됨

BLB1 MODE부트로더 섹션 액세스 보호 설정 모드

MODE BL02 LB01

1 1 1 부트로더 섹션 액세스 락 기능 없음 (SPM /(E)LPM 명령을 사용 가능)

2 1 0 부트로더 섹션 라이트 금지 (SPM 명령 사용 불가능)

3 0 0부트로더 섹션 라이트 / 리드 금지 ((E)LPM /SPM 명령 사용 불가능)

부트로더 섹션 실행 중 모든 인터럽트는 금지됨

4 0 1부트로더 섹션 리드 금지 ((E)LPM 명령 사용 불가능)

부트로더 섹션 실행 중 모든 인터럽트는 금지됨

Page 16: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 16

SREG (Status Register)

Bit 7 6 5 4 3 2 1 0  

0x3F I T H S V N Z C SREG

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 I Global Interrupt Enable 0 전체 인터럽트 허용 1 전체 인터럽트 불가

6 T Bit Copy Storage BLD 및 BST 명령을 이용하여 T비트와 다른 비트 사이의 복사가 가능

5 H Half Carry Flag 산술 연산 중 가산에서 Half Carry / 감산에서 Half Borrow 발생 (BCD연산시 사용)

4 S Sign Bit S = N ⊕ V (부호 없는(있는) 정수의 대소 판단 사용)

3 V Two’'s Complement Overflow Flag 2의 보수 연산에서 Overflow 발생

2 N Negative Flag 산술연산 및 논리연산 결과가 1일 때 2의 보수 표현법을 이용 연산결과 음수 발생

1 Z Zero Flag 산술연산 및 논리연산 결과가 0일 때 발생

0 C Carry Flag 산술연산 및 논리연산 결과 가산에서 Carry / 감산에서 Borrow 발생

Page 17: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 17

SP (Stack Pointer)

Bit 7 6 5 4 3 2 1 0  

0x3E SP15 SP14 SP13 SP12 SP11 SP10 SP9 SP8 SPH

0x3D SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0 SPL

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

  R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

  0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

SPH SPL Reserved Bits

서부루틴 호출 또는 인터럽트 발생시 복귀주소(Return Address)값 저장

어셈블리 프로그램에서 임시데이터 저장

Last-in / First-out 방식

6

5

4

3

2

1

0

Page 18: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 18

RAMPZ (RAM Page Z Select Register)

Bit 7 6 5 4 3 2 1 0  

0x3B               RAMPZ0 RAMPZ

Read/Write R R R R R R R R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

6

5

4

3

2

1

0 RAMPZ0 Extended RAM Page Z Select 내부 플래시 프로그램 메모리 영역의 2개의 페이지 중 1개를 선택 (64K 단위)

RAMPZ0 Select Program Memory Address

0 Lower 64K bytes Access &0000 ~ $7FFF

1 Higher 64K bytes Access %8000 ~ $FFFF

Page 19: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 19

System Reset

외부 전압 참조 특성

Symbol Parameter Min Typ Max Units

Bandgap reference voltage 1.15 1.23 1.40 V

Bandgap reference start-up time 40 70 us

Bandgap reference current consumption 10 uA

Symbol Parameter Condition Min Typ Max Units

Power-on Reset Threshold Voltage (rising) 1.4 2.3 V

Power-on Reset Threshold Voltage (falling) 1.3 2.3 V

RESET Pin Threshold Voltage 0.2 Vcc 0.85Vcc V

Pulse width on RESET Pin 15 us

Brown-out Reset Threshold VoltageBODLEVEL = 1 2.4 2.6 2.9 V

BODLEVEL = 0 3.7 4.0 4.5 V

Minimum low voltage period for Brown-out Detection BODLEVEL = 1 2 us

BODLEVEL = 0 2 us

Brown-out Detector hysteresis 100 mV

Page 20: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 20

System Reset

MCUCSR (MCU Control and Status Register)

Bit 7 6 5 4 3 2 1 0  

0x34 JTD     JTRF WDRF BORF EXTRF PORF MCUCSR

Read/Write R/W R R R/W R/W R/W R/W R/W  

Initial Value 0 0 0 See Bit Description  

BIT NAME FUNCTION

7 JPD

6

5

4 JTRF JTAG Reset Flag 1 JTAG 시스템에 의한 MCU Reset

3 WDRF Watchdog Reset Flag 1 Watchdog 시스템에 의한 MCU Reset

2 BORF Brown-out Reset Flag 1 Brown-out 시스템에 의한 MCU Reset ( 이하일 때 Reset)

1 EXYRF External Reset Flag 1 RESET 핀에 의한 MCU Reset

0 PORF Power-On Reset Flag 1 ( 이하일 때 Reset)

Page 21: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 21

External Memory

MCUCR (MCU Control Register)

Bit 7 6 5 4 3 2 1 0  

0x34 SRE SRW10 SE SM1 SM0 SM2 IVSEL IVCE MCUCR

Read/Write R/W R R R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 SRE External SRAM/XMEM Enable 1 외부 메모리 엑세스 활성 0 기본 병렬 I/O 포트로 동작

6 SRW10 Wait-state Select Bit 외부 메모리 엑세스시 상위 섹터 웨이트 사이클 수 설정

5 SE Sleep Enable

4

SM Sleep Mode Select Bits 2, 1, and 03

2

1 IVSEL Interrupt Vector Select

0 IVCE Interrupt Vector Change Enable

Page 22: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 22

External Memory

XMCRA (External Memory Control Register A)

Bit 7 6 5 4 3 2 1 0  

0x4D   SRL2 SRL1 SRL0 SRW01 SRW00 SRW11   XMCRA

Read/Write R R/W R/W R/W R/W R/W R/W R  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

6

SRL XRAM Wait-State Setor Limits 외부 메모리 엑세스 섹터별 웨이트 사이클 설정5

4

3SRW0

XRAM Wait-state Select Bits

,Upper Sector외부 메모리 엑세스시 하위 섹터 웨이트 사이클 수 설정

2

1 SRW11 XRAM Wait-State Select, SRW11 bit 외부 메모리 엑세스시 상위 섹터 웨이트 사이클 수 설정

0

Page 23: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 23

External Memory

웨이트 사이클 섹터 선택

SRL2 SRL1 SRL0섹터 영역

Lower Sector Upper Sector

0 0 0 None 0x1100 ~ 0xFFFF

0 0 1 0x1100 ~ 0x1FFF 0x2000 ~ 0xFFFF

0 1 0 0x1100 ~ 0x3FFF 0x4000 ~ 0xFFFF

0 1 1 0x1100 ~ 0x5FFF 0x6000 ~ 0xFFFF

1 0 0 0x1100 ~ 0x7FFF 0x8000 ~ 0xFFFF

1 0 1 0x1100 ~ 0x9FFF 0xA000 ~ 0xFFFF

1 1 0 0x1100 ~ 0xBFFF 0xC000 ~ 0xFFFF

1 1 1 0x1100 ~ 0xDFFF 0xE000 ~ 0xFFFF

Page 24: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 24

External Memory

웨이트 사이클 선택

SRWn1 SRWn0 웨이트 사이클 수

0 0 웨이트 사이클 없음

0 1 리드 / 라이트 신호에 1개의 웨이트 사이클

1 0 리드 / 라이트 신호에 2개의 웨이트 사이클

1 1리드 / 라이트 신호에 2개의 웨이트 사이클

+ 어드레스 출력 전 1개의 웨이트 사이클

n = Sector Number (0=Lower Sector, 1=Upper Sector)

Page 25: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 25

External Memory

XMCRB(External Memory Control RegisterB)

Bit 7 6 5 4 3 2 1 0  

0x4C XMBK         XMM2 XMM1 XMM0 XMCRB

Read/Write R/W R R R R R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 XMBK External Memory Bus-keeper Enable 1 버스 키퍼 기능 설정 (SRE=0일 때 유효)

6

BUS Keeper

AD7~AD0 신호가 3-State로 되는 동안 이를 이전의 값으로 출력

5

4

3

2

XMM External Memory High Mask 포트 C와 어드레스 버스 상위 바이트 한계 설정1

0

Page 26: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 26

External Memory

포트 C와 어드레스 버스 상위 바이트 한계 설정

XMM2 XMM1 XMM0 어드레스 버스 포트 C

0 0 0 7 A15 ~ A8 -

0 0 1 6 A14 ~ A8 PC7

0 1 0 5 A13 ~ A8 PC7 ~ PC6

0 1 1 4 A12 ~ A8 PC7 ~ PC5

1 0 0 3 A11 ~ A8 PC7 ~ PC4

1 0 1 2 A10 ~ A8 PC7 ~ PC3

1 1 0 1 A9 ~ A8 PC7 ~ PC2

1 1 1 0 - PC7 ~ PC0

Page 27: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 27

OSCCAL (Oscillator Calibration Register)

Bit 7 6 5 4 3 2 1 0  

0x4F CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSCCAL

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value Device Specific Calibration Value  

BIT NAME FUNCTION

7

CAL Oscillator Calibration Value 오실레이터 보정 값 설정

6

5

4

3

2

1

0

Page 28: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 28

XDIV (XTAL Divide Control Register)

Bit 7 6 5 4 3 2 1 0  

0x3C XDIVEN XDIV6 XDIV5 XDIV4 XDIV3 XDIV2 XDIV1 XDIV0 XDIV

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 XDIVEN XTAL Divide Enable 0 소스 클럭의 분주비 사용 가능 1 소스 클럭의 분주비 사용 불가능

6

XDIV XTAL Divide Select Bits

: 분주비 설정 값

설정 범위 : 0 ~ 127

5

4

3

2

1

0

Page 29: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 29

sleep mode

MCUCR (MCU Control Register)

Bit 7 6 5 4 3 2 1 0  

0x34 SRE SRW10 SE SM1 SM0 SM2 IVSEL IVCE MCUCR

Read/Write R/W R R R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 SRE External SRAM/XMEM Enable

6 SRW10 Wait-state Select Bit

5 SE Sleep Enable 1 슬립 모드 활성 0 슬립 모드 차단

4

SM Sleep Mode Select Bits 2, 1, and 0 슬립 모드 선택3

2

1 IVSEL Interrupt Vector Select

0 IVCE Interrupt Vector Change Enable

Page 30: ATmega128 Register (By JSM)

CPU and System Control

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 30

sleep mode

SM2 SM1 SM0 슬립 모드차단 되지 않는 클럭 오실레이터 슬립모드 해제 방법

메인

클럭

타이머0

클럭

INT

7~0TWI Timer0

SPM/

EEPROMADC

다른

I/O

0 0 0 Idle 0 0 1 ADC Noise Reduction 0 1 0 Power-down 0 1 1 Power-save

1 0 0 -

1 0 1 -

1 1 0 1) Standby 1 1 1 1) Extended Standby

1) 외부 크리스탈 또는 레조네이트 사용시 유효

2) ASSR 레지스터의 AS0=1 일 때 유효

3) INT7~4는 레벨 트리거 모드일 때 유효

Page 31: ATmega128 Register (By JSM)

EEPROM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 31

General Purpose Register

8bit 단위 32개의 범용 레지스터

사칙 연산 수행

데이터 메모리의 16bit 어드레스를 간접 지정

Z-Register는 LPM/ELPM/SPM 명령시 프로그램 메모리 영역의 상수를 엑세스

Page 32: ATmega128 Register (By JSM)

EEPROM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 32

SRAM Data Memory Map

Memory Configurations

ConfigurationInternal SRAM

Data Memory

External SRAM

Data Memory

Normal mode 4096 up to 64K

ATmega103 Compatibility mode 4000

Page 33: ATmega128 Register (By JSM)

EEPROM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 33

EEAR (EEPROM Address Register)

Bit 7 6 5 4 3 2 1 0  

0x1F         EEAR11 EEAR10 EEAR9 EEAR8 EEARH

0x1E EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 EEARL

Read/Write R R R R R/W R/W R/W R/W  

  R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 X X X X  

  X X X X X X X X  

BIT NAME FUNCTION

7

EEARL

EEPROM Address Register High Byte

EEPROM Address Register Low ByteEEPROM의 주소 레지스터

6

5

4

3EEARH

2

1

0

Page 34: ATmega128 Register (By JSM)

EEPROM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 34

EEDR (EEPROM Data Register)

Bit 7 6 5 4 3 2 1 0  

0x1D MSB             LSB EEDR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7MSB

LSB

EEPROM Data EEPROM의 데이터 레지스터

6

5

4

3

2

1

0

Page 35: ATmega128 Register (By JSM)

EEPROM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 35

EECR (EEPROM Control Register)

Bit 7 6 5 4 3 2 1 0  0x1C         EERIE EEMWE EEWE EERE EECR

Read/Write R R R R R/W R/W R/W R/W  Initial Value 0 0 0 0 0 0 X 0  

BIT NAME FUNCTION

7

6

5

4

3 EERIE EEPROM Ready Interrupt Enable 1 EEWE 비트가 클리어 될 때 EEPROM Ready 인터럽트 발생

2 EEMWE EEPROM Master Write Enable 1 EEPROM 라이트 가능 0 EEPROM 라이트 완료

1 EEWE EEPROM Write Enable 1 EEPROM 라이트 가능 0 EEPROM 라이트 완료

0 EERE EEPROM Read Enable 1 EEPROM 리드 가능 0 EEPROM 리드 완료

EEPROM 쓰기 과정 EEPROM 읽기 과정

① 이전의 라이트 동작이 완료(EEWE=0) 될 때 까지 대기

② SPMCSR 레지스터의 SPMEN=0 될 때 까지 대기

③ 라이트할 EEPROM의 어드레스를 EEAR에 저장

④ 라이트할 EEPROM의 데이타를 EEDR에 저장

⑤ EECR의 EEMWE=1, EEWE=0으로 설정

⑥ 4사이틀 이내에 EEWE=1로 설정

① 이전의 라이트 동작이 완료(EEWE=0) 될 때 까지 대기

② 리드할 EEPROM의 어드레스를 EEAR에 저장

③ EECR의 EERE=1로 설정

④ 리드할 EEPROM의 데이터를 EEDR로부터 읽음

Page 36: ATmega128 Register (By JSM)

MISC (Miscellaneous)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 36

SFIOR (Special Function IO Register)

Bit 7 6 5 4 3 2 1 0  

0x20 TSM       ACME PUD PSR0 PSR321 SFIOR

Read/Write R/W R R R R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 TSM Timer/Counter Synchronization Mode

6

5

4

3 ACME Analog Comparator Multiplexer Enable

2 PUD Pull-up disable

1 PSR0 Prescaler Reset Timer/Counter0

0 PSR321 Prescaler Reset Timer/Counter3, 2, 1

Page 37: ATmega128 Register (By JSM)

Watchdog Timer

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 37

WDTCR (Watchdog Timer Control Register)

Bit 7 6 5 4 3 2 1 0  

0x21       WDCE WDE WDP2 WDP1 WDPO WDTCR

Read/Write R R R R R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

6

5

4 WDCE Watchdog Change Enable 0 워치독 타이머 변경 불가능 1 워치독 타이머 변경 가능

3 WDE Watchdog Enable 0 워치독 타이머 사용 불가능 1 워치독 타이머 사용 가능

2

WDP Timer Prescaler 워치독 타이머 프리스케일러 설정1

0

Page 38: ATmega128 Register (By JSM)

I/O Ports

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 38

Watchdog Timer Prescale Select

워치독 타이머 프리스케일러 설정

WDP

2

WDP

1

WDP

0워치독 분주비

타임 아웃

(VCC = 3.0V) (VCC = 5.0V)

0 0 0 16K (16,384) 14.8 ms 14.0 ms

0 0 1 32K (32,768) 29.6 ms 28.1 ms

0 1 0 64K (65,536) 59.1 ms 56.2 ms

0 1 1 128K (131,072) 0.12 s 0.11 s

1 0 0 256K (262,144) 0.24 s 0.22 s

1 0 1 512K (524,288) 0.47 s 0.45 s

1 1 0 1024K (1,048,576) 0.95 s 0.9 s

1 1 1 2048K (2,097,152) 1.9 s 1.8 s

워치독 타이머 설정, 변경, 해제 방법

M103C WDTON 안전레벨워치독

초기상태

워치독

해제방법

워치독 타임아웃

변경 방법

1 1 1 금지 지정된 처리 순서 지정된 처리 순서

1 0 2 허용 해제 불가능 지정된 처리 순서

0 1 0 금지 지정된 처리 순서 항상 가능

0 0 2 허용 해제 불가능 지정된 처리 순서

Page 39: ATmega128 Register (By JSM)

I/O Ports

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 39

I/O Port

Page 40: ATmega128 Register (By JSM)

I/O Ports

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 40

SFIOR (Special Function IO Register)

Bit 7 6 5 4 3 2 1 0  

0x20 TSM       ACME PUD PSR0 PSR321 SFIOR

Read/Write R/W R R R R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 TSM Timer/Counter Synchronization Mode

6

5

4

3 ACME Analog Comparator Multiplexer Enable

2 PUD Pull-up disable 0 내부 풀업 저항 사용 허용 1 내부 풀업 저항 사용 금지

1 PSR0 Prescaler Reset Timer/Counter0

0 PSR321 Prescaler Reset Timer/Counter3, 2, 1

DDxn PORTxn PUD I/O 풀업저항 비고

0 0 - 입력 No 3 State (하이 임피던스)

0 1 0 입력 Yes 내부에서 풀업

0 1 1 입력 No 3 State (하이 임피던스)

1 0 - 출력 No L 출력 (Sink)

1 1 - 출력 No H 출력 (Source)

Page 41: ATmega128 Register (By JSM)

I/O Ports

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 41

PORTn (Port n Data Register) - (n=A, B, C, D, E, F), (G = 5bit)

Bit 7 6 5 4 3 2 1 0  

  PORTn7 PORTn6 PORTn5 PORTn4 PORTn3 PORTn2 PORTn1 PORTn0 PORTn

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

PORT Data Register 데이터 출력 설정

6

5

4

3

2

1

0

8bit양방향병렬포트(내부적으로Pull-UP:20KΩ~50KΩ)

DDRn (입출력 설정)

PORTn (데이터 출력)

PINn (데이터 입력)

외부데이타 메모리 액세스 (데이터 버스 및 어드레스 버스가 시분할다중화)

시분할다중화시 어드레스 버스는 ALE 신호에 의하여 분리

Page 42: ATmega128 Register (By JSM)

I/O Ports

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 42

DDRn (Port n Direction Register) - (n=A, B, C, D, E, F) (G = 5bit)

Bit 7 6 5 4 3 2 1 0  

  DDRn7 DDRn6 DDRn5 DDRn4 DDRn3 DDRn2 DDRn1 DDRn0 DDRn

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

DDR Direction Register 데이터 입/출력 방향 설정

6

5

4

3

2

1

0

Page 43: ATmega128 Register (By JSM)

I/O Ports

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 43

PINn (Port n Input Pins Address) - (n=A, B, C, D, E, F) (G = 5bit)

Bit 7 6 5 4 3 2 1 0  

  PINn7 PINn6 PINn5 PINn4 PINn3 PINn2 PINn1 PINn0 PINn

Read/Write R R R R R R R R  

Initial Value N/A N/A N/A N/A N/A N/A N/A N/A  

BIT NAME FUNCTION

7

PIN Input Pins 핀 입력 설정

6

5

4

3

2

1

0

Page 44: ATmega128 Register (By JSM)

I/O Ports

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 44

I/O Alternate Port Functions

Func1 Func2 Func3 PIN Num

PORTA PA0 AD0   51   External Memory Interface address and data bit 0PA1 AD1   50   External Memory Interface address and data bit 1PA2 AD2   49   External Memory Interface address and data bit 2PA3 AD3   48   External Memory Interface address and data bit 3PA4 AD4   47   External Memory Interface address and data bit 4PA5 AD5   46   External Memory Interface address and data bit 5PA6 AD6   45   External Memory Interface address and data bit 6PA7 AD7   44   External Memory Interface address and data bit 7

PORTB PB0 SS   10   SPI Slave Select Input (SPI 채널의 Slave선택 입력 선호)PB1 SCK   11   SPI Serial Clock (SPI 채널의 Master 및 Slave의 클럭 입력 신호)PB2 MOSI   12   SPI Master Output / Slave Input (SPI 채널의 Master 출력신호 / Slave 입력신호)PB3 MISO   13   SPI Master Input / Slave Output (SPI 채널의 Master 입력신호 / Slave 출력신호)PB4 OC0   14   Timer/Counter 0 Output Compare Match and PWM OutputPB5 OC1A   15   Timer/Counter 1 Output Compare Match and PWM Output APB6 0C1B   16   Timer/Counter 1 Output Compare Match and PWM Output B

PB7 OC2 OC1C 17   Timer/Counter 2 Output Compare Match and PWM OutputTimer/Counter 1 Output Compare Match and PWM Output C

PORTC PC0 A8   35   External Memory Interface address bit 8PC1 A9   36   External Memory Interface address bit 9PC2 A10   37   External Memory Interface address bit 10PC3 A11   38   External Memory Interface address bit 11PC4 A12   39   External Memory Interface address bit 12PC5 A13   40   External Memory Interface address bit 13PC6 A14   41   External Memory Interface address bit 14PC7 A15   42   External Memory Interface address bit 15

PORTD PD0 SCL INT0 25   TWI Seerial Clock (TWI 채널의 클럭 입출력 신호)PD1 SDA INT1 26   TWI Seerial Data (TWI 채널의 데이타 입출력 신호)PD2 RxD1 INT2 27   USART1 Receive Data (직렬통신포트 USART1의 수신 데이터 신호)PD3 TxD1 INT3 28   USART1 Transmit Data (직렬통신포트 USART1의 송신 데이터 신호)PD4 ICP1   29   Timer/Counter 1 Input Capture Pin (타이머/카운터 1의 캡쳐모드시 트리거 신호)PD5 XCK1   30   USART1 External Clock Input/Output (USART1이 동기모드일때 송수신 클럭 신호)PD6 T1   31   Timer/Counter1 Clock Input (타이머/카운터1의 클럭입력신호) PD7 T2   32   Timer/Counter2 Clock Input (타이머/카운터2의 클럭 입력신호)

 

PORTE PE0 RxD0 PDI 2   USART0 Receive Data (직렬통신포트 USART0의 수신 데이터 신호)Program Data Input

PE1 TxD0 PDO 3   USART0 Transmit Data (직렬통신포트 USART1의 송신 데이터 신호)Program Data Output

PE2 XCK0 AIN0 4   USART0 External Clock Input/Output (USART0이 동기모드일때 송수신 클럭 신호)Analog Comparator 0 Negative Input

PE3 OC3A AIN1 5   Timer/Counter 3 Output Compare Match and PWM Output AAnalog Comparator 1 Negative Input

PE4 OC3B INT4 6   Timer/Counter 3 Output Compare Match and PWM Output BPE5 OC3C INT5 7   Timer/Counter 3 Output Compare Match and PWM Output CPE6 T3 INT6 8   Timer/Counter 3 Clock Input (타이머/카운터3의클럭입력신호) PE7 ICP3 INT7 9   Timer/Counter 3 Input Capture Pin (타이머/카운터 3의 캡쳐모드시 트리거 신호)

 PORTF PF0   ADC0 61   ADC0 ~ ADC7 ADC Input Channel (8채널10비트A/D컨버터아날로그입력신호)

PF1   ADC1 60   INT0 ~ INT7 External Interrupt 0 ~ 7 InputPF2   ADC2 59   PF3   ADC3 58   PF4 TCK ADC4 57   JTAG Test Clock (JTAG ICE가 ATmega128에 보내는 클럭 신호)PF5 TMS ADC5 56   JATG Test Mode Select (JTAG IC가 Atmega에 보내는 모드 선택 선택 신호)PF6 TDO ADC6 55   JTAG Test Data Output (ATmega128이 JTAG ICE에 보내는 데이터 신호)PF7 TDI ADC7 54   JATG Test Data Input (JTAG ICE가 ATmega128에 보내는 데이터 신호)

PORTG PG0 WR   33   Write Strobe (CPU가 외부데이터 메모리에 데이터를 쓰고 있다는 신호)PG1 RD   34   Read Strobe (CPU가 외부데이터 메모리에 데이터를 읽고 있다는 신호)PG2 ALE   43   Address Lantch Enable (AD0~AD7에 외부메모리 액세스를 위한 하위 어드레스 출력 신호)PG3 TOSC2   18   Timer/Counter0 RTC Oscillator InputPG4 TOSC1   19   (타이머/카운터 0의 RTC기능 사용시 클럭발생 수정발진자 접속단자)

Page 45: ATmega128 Register (By JSM)

Interrupts

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 45

Interrupt Vector

MCUCR (MCU Control Register)

Bit 7 6 5 4 3 2 1 0  

0x34 SRE SRW10 SE SM1 SM0 SM2 IVSEL IVCE MCUCR

Read/Write R/W R R R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 SRE External SRAM/XMEM Enable

6 SRW10 Wait-state Select Bit

5 SE Sleep Enable

4

SM Sleep Mode Select Bits 2, 1, and 03

2

1 IVSEL Interrupt Vector Select 인터럽트 벡터 설정

0 IVCE Interrupt Vector Change Enable 0 인터럽트 벡터 바꿈 차단 1 인터럽트 벡터 바꿈 허용

Page 46: ATmega128 Register (By JSM)

Interrupts

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 46

Interrupt Vector

Vector

No.

Program

Address(2) Source Interrupt Definition

1 $0000(1) RESET External Pin, Power-on Reset, Brown-out

Reset, Watchdog Reset, and JTAG AVR Reset

2 $0002 INT0 External Interrupt Request 0

3 $0004 INT1 External Interrupt Request 1

4 $0006 INT2 External Interrupt Request 2

5 $0008 INT3 External Interrupt Request 3

6 $000A INT4 External Interrupt Request 4

7 $000C INT5 External Interrupt Request 5

8 $000E INT6 External Interrupt Request 6

9 $0010 INT7 External Interrupt Request 7

10 $0012 TIMER2 COMP Timer/Counter2 Compare Match

11 $0014 TIMER2 OVF Timer/Counter2 Overflow

12 $0016 TIMER1 CAPT Timer/Counter1 Capture Event

13 $0018 TIMER1 COMPA Timer/Counter1 Compare Match A

14 $001A TIMER1 COMPB Timer/Counter1 Compare Match B

15 $001C TIMER1 OVF Timer/Counter1 Overflow

16 $001E TIMER0 COMP Timer/Counter0 Compare Match

17 $0020 TIMER0 OVF Timer/Counter0 Overflow

18 $0022 SPI, STC SPI Serial Transfer Complete

19 $0024 USART0, RX USART0, Rx Complete

20 $0026 USART0, UDRE USART0 Data Register Empty

21 $0028 USART0, TX USART0, Tx Complete

22 $002A ADC ADC Conversion Complete

23 $002C EE READY EEPROM Ready

24 $002E ANALOG COMP Analog Comparator

25 $0030(3) TIMER1 COMPC Timer/Countre1 Compare Match C

26 $0032(3) TIMER3 CAPT Timer/Counter3 Capture Event

27 $0034(3) TIMER3 COMPA Timer/Counter3 Compare Match A

28 $0036(3) TIMER3 COMPB Timer/Counter3 Compare Match B

29 $0038(3) TIMER3 COMPC Timer/Counter3 Compare Match C

30 $003A(3) TIMER3 OVF Timer/Counter3 Overflow

31 $003C(3) USART1, RX USART1, Rx Complete

32 $003E(3) USART1, UDRE USART1 Data Register Empty

33 $0040(3) USART1, TX USART1, Tx Complete

34 $0042(3) TWI Two-wire Serial Interface

35 $0044(3) SPM READY Store Program Memory Ready

리셋 및 인터럽트 벡터의 위치 설정

BOOTRST IVSEL Reset Address Interrupt Vectors Start Address

1 0 0x0000 0x0002

1 1 0x0000 Boot Reset Address + 0x0002

0 0 Boot Reset Address 0x0002

0 1 Boot Reset Address Boot Reset Address + 0x0002

(BOOTRST in Fuse High Byte)

인터럽트 처리 과정

① 인터럽트 요청 신호의 검출

② 인터럽트 우선순위 제어 및 허용 여부 판단

③ 입터럽트 처리 루틴의 시작 번지 확인

④ 복귀 주소 및 레지스터를 저장

⑤ 인터럽트 서비스 루틴을 실행

⑥ 인터럽트 서비스 루틴을 종료하고 원래의 프로그램으로 복귀

Page 47: ATmega128 Register (By JSM)

External Interrupts

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 47

EICRA (External Interrupt Control Register A)

Bit 7 6 5 4 3 2 1 0  

0x4A ISC31 ISC30 ISC21 ISC20 ISC11 ISC10 ISC01 ISC00 EICRA

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7ISC3 External Interrupt 3 Sense Control 외부 인터럽트 INT3의 트리거 방식 설정

6

5ISC2 External Interrupt 2 Sense Control 외부 인터럽트 INT2의 트리거 방식 설정

4

3ISC1 External Interrupt 1 Sense Control 외부 인터럽트 INT1의 트리거 방식 설정

2

1ISC0 External Interrupt 0 Sense Control 외부 인터럽트 INT0의 트리거 방식 설정

0

ISOn1 ISOn0 인터럽트 트리거 방식

0 0 INTn 핀의 L레벨 신호(Low Level) 입력이 입터럽트를 트리거

0 1 -

1 0 INTn 핀의 하강 에지 (Falling Edge) 입력이 입터럽트를 트리거

1 1 INTn 핀의 상승 에지 (Rising Edge) 입력이 입터럽트를 트리거

(n = 0, 1, 2, 3)

Page 48: ATmega128 Register (By JSM)

External Interrupts

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 48

EICRB (External Interrupt Control Register B)

Bit 7 6 5 4 3 2 1 0  

0x3A ISC71 ISC70 ISC61 ISC60 ISC51 ISC50 ISC41 ISC40 EICRB

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7ISC7 External Interrupt 7 Sense Control 외부 인터럽트 INT7의 트리거 방식 설정

6

5ISC6 External Interrupt 6 Sense Control 외부 인터럽트 INT6의 트리거 방식 설정

4

3ISC5 External Interrupt 5 Sense Control 외부 인터럽트 INT5의 트리거 방식 설정

2

1ISC4 External Interrupt 4 Sense Control 외부 인터럽트 INT4의 트리거 방식 설정

0

ISOn1 ISOn0 인터럽트 트리거 방식

0 0 INTn 핀의 L레벨 신호(Low Level) 입력이 입터럽트를 트리거

0 1 INTn 핀의 하강 에지 (Falling Edge) 또는 상승 에지 (Rising Edge) 입력이 입터럽트를 트리거

1 0 INTn 핀의 하강 에지 (Falling Edge) 입력이 입터럽트를 트리거

1 1 INTn 핀의 상승 에지 (Rising Edge) 입력이 입터럽트를 트리거

(n = 4, 5, 6, 7)

Page 49: ATmega128 Register (By JSM)

External Interrupts

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 49

EIMSK (External Interrupt Mask Register)

Bit 7 6 5 4 3 2 1 0  

0x39 INT7 INT6 INT5 INT4 INT3 INT2 INT1 INT0 EIMSK

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

INT External Interrupt Mask Register 1 각각의 인터럽트 허용 0 각각의 인터럽트 금지

6

5

4

3

2

1

0

Page 50: ATmega128 Register (By JSM)

External Interrupts

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 50

EIFR (External Interrupt Flag Register)

Bit 7 6 5 4 3 2 1 0  

0x38 INTF7 INTF6 INTF5 INTF4 INTF3 INTF2 INTF1 INTF0 EIFR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

INTF External Interrupt Flag Register 각각의 인터럽트 발생

6

5

4

3

2

1

0

Page 51: ATmega128 Register (By JSM)

Timer/Counter

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 51

Timer / Counter Summary

Timer / Counter 0 1 2 3

기본 구조 8 bit 16 bit 8 bit 16 bit

타이머 입력

타이머 프리스케일러 1, 8, 32, 64, 128, 256, 1024 1, 8, 64, 256, 1024 1, 8, 64, 256, 1024 1, 8, 64, 256, 1024

카운터 입력Timer / Counter Oscillator

T1 T2 T3TOSC1

관련 레지스터

TCCR0

TCNT0

OCR0

ASSR

SFIOR, TIMSK, TIFR

TCCR1A, TCCR1B, TCCR1C

TCNT1H, TCNT1L

OCR1AH/L, OCR1BH/L, OCR1CH/L

ICR1H/L

SFIOR, TIMSK, TIFR

ETIMSK, ETIFR

TCCR2

TCNT2

OCR2

SFIOR, TIMSK, TIFR

TCCR3A, TCCR3B, TCCR3C

TCNT3H, TCNT3L

OCR3AH/L, OCR3BH/L, OCR3CH/L

ICR3H/L

SFIOR, TIMSK, TIFR

ETIMSK, ETIFR

동작 모드

Normal CTC Normal CTC Normal CTC Normal CTC

Fast PWM Fast PWM Fast PWM Fast PWM

Phase Correct PWM Phase Correct PWM Phase Correct PWM Phase Correct PWM

- Phase and Frequency Correct PWN - Phase and Frequency Correct PWN

입력 신호 TOSC1, TOSC2T1

ICP1T2

T3

ICP3

출력 신호 OC0 OC1A, OC1B, OC1C OC2 OC3A, OC3B, OC3C

입터 럽트

Overflow Overflow Overflow Overflow

Output Compare Match Output Compare Match A/B/C Output Compare Match Output Compare Match A/B/C

Input Capture Input Capture

기타

RTC기능

타이머 및 카운터 모두

프리스케일러 사용

캡쳐 기능 캡쳐 기능

Page 52: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 52

8bit Timer/Counter0

Page 53: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 53

8bit Timer/Counter0

Page 54: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 54

TCCR0 (Timer/Counter 0 Control Register)

Bit 7 6 5 4 3 2 1 0  

0x33 FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00 TCCR0

Read/Write W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 FOC0 Force Output Compare 1 강제로 OC0 단자에 출력 비교가 매치된 신호 출력 (PWM 아닌 경우에 유효)

6 WGM00 Waveform Generation Mode 타이머/카운터 동작 모드 설정

5COM0 Compare Match Output Mode OC0 핀기능 설정

4

3 WGM01 Waveform Generation Mode 타이머/카운터 동작 모드 설정

2

CS0 Clock Select 클럭의 분주비 설정1

0

Page 55: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 55

8bit 타이머/카운터0 동작 모드 설정

모드 WGM01 WGM00 동작 모드 TOP OCR0 업데이트 시점 TOV0 플랙의 셋트 시점

0 0 0 Normal 0xFF 설정 즉시 MAX

1 0 1 Phase Correct PWM 0xFF TOP BOTTOM

2 1 0 CTC OCR0 설정 즉시 MAX

3 1 1 Fast PWM 0xFF TOP MAX

C

T

C

· ·

P

C

P

W

M

F

P

W

M

·

·

Page 56: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 56

OC0 핀 기능 설정

COM01 COM00 OC0 핀 기능

PWM 모드가 아닌 경우

0 0 정상적인 범용 I/O 포트로 동작 (OC0 출력 차단)

0 1 Compare Match에서 OC0 출력을 토글

1 0 Compare Match에서 OC0 출력을 0으로 클리어

1 1 Compare Match에서 OC0 출력을 1로 셋트

Fast PWM

0 0 정상적인 범용 I/O 포트로 동작 (OC0 출력 차단)

0 1 -

1 0 Compare Match에서 OC0 출력을 0으로 클리어한 후 TOP에서 OC0 출력을 1로 셋트

1 1 Compare Match에서 OC0 출력을 1로 셋트한 후 TOP에서 OC0 출력을 0으로 클리어

Phase Correct PWM

0 0 정상적인 범용 I/O 포트로 동작 (OC0 출력 차단)

0 1 -

1 0상향카운터에서는 Compare Match에서 OC0 출력을 0으로 클리어

하향카운터에서는 Compare Match에서 OC0 출력을 1로 셋트

1 1상향카운터에서는 Compare Match에서 OC0 출력을 1로 셋트

하향카운터에서는 Compare Match에서 OC0 출력을 0으로 클리어

Page 57: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 57

클럭의 프리스케일러 설정

CS02 CS01 CS00 프리스케일러

0 0 0클럭 입력 차단

(타이머/카운터0 기능 정지)

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

Page 58: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 58

TCNT0 (Timer/Counter 0 Register)

Bit 7 6 5 4 3 2 1 0  

0x32 TCNT07 TCNT06 TCNT05 TCNT04 TCNT03 TCNT02 TCNT01 TCNT00 TCNT0

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

TCNT0 Timer / Counter Register 타이머/카운터0의 8bit 카운터 값을 저장

6

5

4

3

2

1

0

Page 59: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 59

OCR0 (Output Compare 0 Register)

Bit 7 6 5 4 3 2 1 0  

0x31 OCR07 OCR06 OCR05 OCR04 OCR03 OCR02 OCR01 OCR00 OCR0

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

OCR0 Output Compare Register TCNT0 값과 비교하여 OC0 단자에 출력신호를 발생하기 위한 8bit값 저장

6

5

4

3

2

1

0

Page 60: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 60

ASSR (Asynchronous Status Register)

Bit 7 6 5 4 3 2 1 0  0x30         AS0 TCN0UB OCR0UB TCR0UB ASSR

Read/Write R R R R R/W R R R  Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

6

5

4

3 AS0 Asynchronus Timer / Counter 0 클럭 소스 = (동기 모드) 1 클럭 소스 = TOSC1 (비동기 모드)

2 TCN0UB Timer / Counter (TCNT0) Update Busy 비동기 모드일 때 TCNT0에 새로운 값이 라이트 되면 셋트

1 OCR0UBOutput Compare Register (OCR0)

Update Busy 비동기 모드일 때 OCR0에 새로운 값이 라이트 되면 셋트

0 TCR0UB Control Register (TCCR0) Update Busy 비동기 모드일 때 TCCR0에 새로운 값이 라이트 되면 셋트

Page 61: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 61

TIMSK (Timer/Counter Interrupt Mask Register)

Bit 7 6 5 4 3 2 1 0  

0x37 OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 OCIE0 TOIE0 TIMSK

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 OCIE2

6 TOIE2

5 TOIE1

4 OCIE1A

3 OCIE1B

2 TOIE1

1 OCIE0 Output compare Match Interrupt Enable 1타이머/카운터0 의 출력비교 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 TIFR의 OCF0=1 이면 인터럽트 처리

0 TCIE0 Overflow Interrupt Enable 1타이머/카운터0 의 오버플로우 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 TIFR의 TOV0=1 이면 인터럽트 처리

Page 62: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 62

TIFR (Timer/Counter Interrupt Flag Register)

Bit 7 6 5 4 3 2 1 0  

0x36 OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 OCF0 TOV0 TIFR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 OCF2

6 TOV2

5 ICF1

4 OCF1A

3 OCF1B

2 TOV1

1 OCF0 Output Compare Flag TCNT0 = OCR0 일 때 셋트 (출력 비교 인터럽트 요청)

0 TOV0 Overflow Flag오버플로우 발생시 셋트 (오버플로우 인터럽트 요청)

(PCPWM 모드시 0x00에서 계수 방향이 바뀌면 셋트)

Page 63: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 63

Timing Diagrams

TOV0=1로 되는 타이밍 OCF0=1로 되는 타이밍

프리스케일러 = 1 Normal, FPWM, PCPWM

프리스케일러 = 8 CTC

Page 64: ATmega128 Register (By JSM)

8-bit Timer/Counter 0 PWM / Asynchronous

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 64

SFIOR (Special Function IO Register)

Bit 7 6 5 4 3 2 1 0  

0x20 TSM       ACME PUD PSR0 PSR321 SFIOR

Read/Write R/W R R R R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 TSM Synchronization Mode

0 PSR0, PSR321 비트값 하드웨어적으로 클리어 / 타이머/카운터의 카운팅 시작

1PSR0, PSR321 비트값 유지 대응하는 프리스케일러 리셋신호 발생

타이머/카운터의 동작을 정지 똑같은 값으로 설정 가능

6

5

4

3 ACME

2 PUD

1 PSR0 Prescaler Reset

타이머/카운터의 프리스케일러 리셋 후 자동적으로 클리어 됨

비동기 모드일 때 이 값이 1이면 프리스케일러가 리셋 될 때 까지 유지

(만약 TSM=1이면 하드웨어 적으로 자동 클리어 되지 않는다)

0 PSR321

Page 65: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 65

8bit Timer/Counter2

Page 66: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 66

8bit Timer/Counter0

Page 67: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 67

TCCR2 (Timer/Counter 2 Control Register)

Bit 7 6 5 4 3 2 1 0  

0x25 FOC2 WGM20 COM21 COM20 WGM21 CS22 CS21 CS20 TCCR2

Read/Write W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 FOC2 Force Output Compare 1 강제로 OC0 단자에 출력 비교가 매치된 신호 출력 (PWM 아닌 경우에 유효)

6 WGM20 Waveform Generation Mode 타이머/카운터 동작 모드 설정

5COM2 Compare Match Output Mode OC0 핀기능 설정

4

3 WGM21 Waveform Generation Mode 타이머/카운터 동작 모드 설정

2

CS2 Clock Select 클럭의 분주비 설정1

0

Page 68: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 68

8bit 타이머/카운터0 동작 모드 설정

모드 WGM21 WGM20 동작 모드 TOP OCR2 업데이트 시점 TOV2 플랙의 셋트 시점

0 0 0 Normal 0xFF 설정 즉시 MAX

1 0 1 Phase Correct PWM 0xFF TOP BOTTOM

2 1 0 CTC OCR2 설정 즉시 MAX

3 1 1 Fast PWM 0xFF TOP MAX

C

T

C

· ·

P

C

P

W

M

F

P

W

M

·

·

Page 69: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 69

OC2 핀 기능 설정

COM21 COM20 OC0 핀 기능

PWM 모드가 아닌 경우

0 0 정상적인 범용 I/O 포트로 동작 (OC2 출력 차단)

0 1 Compare Match에서 OC2 출력을 토글

1 0 Compare Match에서 OC2 출력을 0으로 클리어

1 1 Compare Match에서 OC2 출력을 1로 셋트

Fast PWM

0 0 정상적인 범용 I/O 포트로 동작 (OC2 출력 차단)

0 1 -

1 0 Compare Match에서 OC2 출력을 0으로 클리어한 후 TOP에서 OC2 출력을 1로 셋트

1 1 Compare Match에서 OC2 출력을 1로 셋트한 후 TOP에서 OC2 출력을 0으로 클리어

Phase Correct PWM

0 0 정상적인 범용 I/O 포트로 동작 (OC2 출력 차단)

0 1 -

1 0상향카운터에서는 Compare Match에서 OC2 출력을 0으로 클리어

하향카운터에서는 Compare Match에서 OC2 출력을 1로 셋트

1 1상향카운터에서는 Compare Match에서 OC2 출력을 1로 셋트

하향카운터에서는 Compare Match에서 OC2 출력을 0으로 클리어

Page 70: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 70

클럭의 프리스케일러 설정

CS22 CS21 CS20 프리스케일러

0 0 0클럭 입력 차단

(타이머/카운터2 기능 정지)

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0T2 핀의 입력되는 외부 클럭

(하강 에지 동작)

1 1 1T2 핀의 입력되는 외부 클럭

(하강 에지 동작)

Page 71: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 71

TCNT2 (Timer/Counter 2 Register)

Bit 7 6 5 4 3 2 1 0  

0x24 TCNT27 TCNT26 TCNT25 TCNT24 TCNT23 TCNT22 TCNT21 TCNT20 TCNT2

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

TCNT2 Timer / Counter Register 타이머/카운터2의 8bit 카운터 값을 저장

6

5

4

3

2

1

0

Page 72: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 72

OCR2 (Output Compare 2 Register)

Bit 7 6 5 4 3 2 1 0  

0x23 OCR27 OCR26 OCR25 OCR24 OCR23 OCR22 OCR21 OCR20 OCR2

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

OCR2 Output Compare Register TCNT2 값과 비교하여 OC2 단자에 출력신호를 발생하기 위한 8bit값 저장

6

5

4

3

2

1

0

Page 73: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 73

TIFR (Timer/Counter Interrupt Flag Register)

Bit 7 6 5 4 3 2 1 0  

0x36 OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 OCF0 TOV0 TIFR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 OCF2 Output Compare Flag 2 TCNT2 = OCR2 일 때 셋트 (출력 비교 인터럽트 요청)

6 TOV2 Timer / Counter2 Overflow Flag오버플로우 발생시 셋트 (오버플로우 인터럽트 요청)

(PCPWM 모드시 0x00에서 계수 방향이 바뀌면 셋트)

5 ICF1

4 OCF1A

3 OCF1B

2 TOV1

1 OCF0

0 TOV0

Page 74: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 74

TIMSK (Timer/Counter Interrupt Mask Register)

Bit 7 6 5 4 3 2 1 0  

0x37 OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 OCIE0 TOIE0 TIMSK

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 OCIE2 Output Compare Match Interrupt Enable 1타이머/카운터0 의 출력비교 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 TIFR의 OCF2=1 이면 인터럽트 처리

6 TOIE2 Overflow Interrupt Enable 1타이머/카운터0 의 오버플로우 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 TIFR의 TOV2=1 이면 인터럽트 처리

5 TICIE1

4 OCIE1A

3 OCIE1B

2 TOIE1

1 OCIE0

0 TOIE0

Page 75: ATmega128 Register (By JSM)

8-bit Timer / Counter 2 PWM

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 75

SFIOR (Special Function IO Register)

Bit 7 6 5 4 3 2 1 0  

0x20 TSM       ACME PUD PSR0 PSR321 SFIOR

Read/Write R/W R R R R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 TSM Synchronization Mode

0 PSR0, PSR321 비트값 하드웨어적으로 클리어 / 타이머/카운터의 카운팅 시작

1PSR0, PSR321 비트값 유지 대응하는 프리스케일러 리셋신호 발생

타이머/카운터의 동작을 정지 똑같은 값으로 설정 가능

6

5

4

3 ACME

2 PUD

1 PSR0 Prescaler Reset

0 PSR321 Prescaler Reset Timer/Counter3,2,1타이머/카운터 3,2,1의 프리스케일러를 리셋 시킨 후 자동으로 클리어

(TSM=1 이면 자동으로 클리어 되지 않는다.)

Page 76: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 76

16bit Timer/Counter

Page 77: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 77

16bit Timer/Counter

Page 78: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 78

TCCRnA (Timer/Counter n Control Register A) (n=1,3)

Bit 7 6 5 4 3 2 1 0  

0x6B COMnA1 COMnA0 COMnB1 COMnB0 COMnC1 COMnC0 WGMn1 WGMn0 TCCR3A

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7COMnA Compare Output Mode 3A OCnA 핀기능 설정

6

5COMnB Compare Output Mode 3B OCnB 핀기능 설정

4

3COMnC Compare Output Mode 3C OCnC 핀기능 설정

2

1 WGMn1 Waverform Generation Mone Bit 1 타이머/카운터 동작 모드 설정

0 WGMn0 Waverform Generation Mone Bit 0 타이머/카운터 동작 모드 설정

Page 79: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 79

모드 WGMn3 WGMn2 WGMn1 WGMn0 동작 모드 TOP OCR0 업데이트 시점 TOV0 플랙의 셋트 시점

0 0 0 0 0 Normal 0xFFFF 설정 즉시 MAX

1 0 0 0 1 Phase Correct PWM (8-bit) 0x00FF TOP BOTTOM

2 0 0 1 0 Phase Correct PWM (9-bit) 0x01FF TOP BOTTOM

3 0 0 1 1 Phase Correct PWM (10-bit) 0x03FF TOP BOTTOM

4 0 1 0 0 CTC OCRnA 설정 즉시 MAX

5 0 1 0 1 Fast PWM (8-bit) 0x00FF TOP TOP

6 0 1 1 0 Fast PWM (9-bit) 0x01FF TOP TOP

7 0 1 1 1 Fast PWM (10-bit) 0x03FF TOP TOP

8 1 0 0 0 Phase and Frequency Correct PWM ICRn BOTTOM BOTTOM

9 1 0 0 1 Phase and Frequency Correct PWM OCRnA BOTTOM BOTTOM

10 1 0 1 0 Phase Correct PWM ICRn TOP BOTTOM

11 1 0 1 1 Phase Correct PWM OCRnA TOP BOTTOM

12 1 1 0 0 CTC ICRn 설정 즉시 MAX

13 1 1 0 1 - - - -

14 1 1 1 0 Fast PWM ICRn TOP TOP

15 1 1 1 1 Fast PWM OCRnA TOP TOP

16bit 타이머/카운터1,3 동작 모드 설정

Page 80: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 80

16bit 타이머/카운터1,3 동작 모드 설정

C

T

C

F

P

W

M

· ·

· ·

·

Mode 4 Mode 12

P

C

P

W

M

P

F

C

P

W

M

· ·

· ·

Page 81: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 81

OCnX 핀 기능 설정

COMnX1 COMnX0 OC0 핀 기능

PWM 모드가 아닌 경우

0 0 정상적인 범용 I/O 포트로 동작 (OCnX 출력 차단)

0 1 Compare Match에서 OCnX 출력을 토글

1 0 Compare Match에서 OCnX 출력을 0으로 클리어

1 1 Compare Match에서 OCnX 출력을 1로 셋트

Fast PWM

0 0 정상적인 범용 I/O 포트로 동작 (OCnX 출력 차단)

0 1모드 15 - Compare Match에서 OCnA 출력을 토글, OCnB, OCnC 출력 차단

기타 모드 - OCnX 차단

1 0 Compare Match에서 OCnX 출력을 0으로 클리어한 후 TOP에서 OCnX 출력을 1로 셋트

1 1 Compare Match에서 OCnX 출력을 1로 셋트한 후 TOP에서 OCnX 출력을 0으로 클리어

Phase Correct PWM

Phase and Frequency Correct

PWM

0 0 정상적인 범용 I/O 포트로 동작 (OCnX 출력 차단)

0 1모드 9,10 - Compare Match에서 OCnA 출력을 토글, OCnB, OCnC 출력 차단

기타 모드 - OCnX 차단

1 0상향카운터에서는 Compare Match에서 OCnX 출력을 0으로 클리어

하향카운터에서는 Compare Match에서 OCnX 출력을 1로 셋트

1 1상향카운터에서는 Compare Match에서 OCnX 출력을 1로 셋트

하향카운터에서는 Compare Match에서 OCnX 출력을 0으로 클리어

Page 82: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 82

TCCRnB (Timer/Counter 3 Control Register B) (n=1,3)

Bit 7 6 5 4 3 2 1 0  

0x6A ICNCn ICESn   WGMn3 WGMn2 CSn2 CSn1 CSn0 TCCR3B

Read/Write R/W R/W R R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 ICNCn Input Capture 3 Noise Canceler 1 ICPn의 입력 캡쳐 신호의 노이즈 제거 회로 작동

6 ICESn Input Capture 3 Edge Select 1 상승 에지에서 캡쳐 0 하강 에지에서 캡쳐

5

4 WGMn3 Waveform Generation Mode Bit 3 타이머/카운터 동작 모드 설정

3 WGMn2 Waveform Generation Mode Bit 2 타이머/카운터 동작 모드 설정

2

CSn Clock Select 클럭의 분주비 설정1

0

Page 83: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 83

클럭의 프리스케일러 설정

CSn2 CSn1 CSn0 프리스케일러

0 0 0클럭 입력 차단

(타이머/카운터2 기능 정지)

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0Tn 핀의 입력되는 외부 클럭

(하강 에지 동작)

1 1 1Tn 핀의 입력되는 외부 클럭

(하강 에지 동작)

Page 84: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 84

Input Capture 기능

Page 85: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 85

TCCRnC (Timer/Counter n Control Register C) (n=1, 3)

Bit 7 6 5 4 3 2 1 0  

0x6C FOC3A FOC3B FOC3C           TCCRnC

Read/Write W W W R R R R R  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 FOC3A Forece Output Compare for Channel A 1 OCnA 단자에 출력비교 매치 신호 강제 출력

6 FOC3B Forece Output Compare for Channel B 1 OCnB 단자에 출력비교 매치 신호 강제 출력

5 FOC3C Forece Output Compare for Channel C 1 OCnC 단자에 출력비교 매치 신호 강제 출력

4

3

2

1

0

Page 86: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 86

TCNTn (Timer/Counter n Register) (n=1, 3)

Bit 7 6 5 4 3 2 1 0  

0x6A TCNTn15 TCNTn14 TCNTn13 TCNTn12 TCNTn11 TCNTn10 TCNTn09 TCNTn08 TCNTnH

0x69 TCNTn7 TCNTn6 TCNTn5 TCNTn4 TCNTn3 TCNTn2 TCNTn1 TCNTn0 TCNTnL

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

  R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

  0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

TCNT3H

TCnT3L

Timer / Counter 3 Register 타이머/카운터n의 16bit 카운터 값을 저장

6

5

4

3

2

1

0

Page 87: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 87

OCRnX (Output Compare Register nX) (n=1,3 X=A,B,C)

Bit 7 6 5 4 3 2 1 0  

0x68 OCRnA15 OCRnA14 OCRnA13 OCRnA12 OCRnA11 OCRnA10 OCRnA9 OCRnA8 OCRnXH

0x67 OCRnA7 OCRnA6 OCRnA5 OCRnA4 OCRnA3 OCRnA2 OCRnA1 OCRnA0 OCRnXL

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

  R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

  0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

OCRnXH

OCRnXL

Output Compare Register A TCNTn 값과 비교하여 OCnX 단자에 출력신호를 발생하기 위한 16bit값 저장

6

5

4

3

2

1

0

Page 88: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 88

ICRn (Input Capture Register n) (n=1, 3)

Bit 7 6 5 4 3 2 1 0  

0x62 ICRn15 ICRn14 ICRn13 ICRn12 ICRn11 ICRn10 ICRn09 ICRn08 ICRnH

0x61 ICRn7 ICRn6 ICRn5 ICRn4 ICRn3 ICRn2 ICRn1 ICRn0 ICRnL

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

  R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

  0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

ICRnH

ICRnL

Input Compare Register TCNTn 값을 캡쳐한 16bit 값 저장

6

5

4

3

2

1

0

Page 89: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 89

TIMSK (Timer/Counter Interrupt Mask Register)

Bit 7 6 5 4 3 2 1 0  

0x37 OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 OCIE0 TOIE0 TIMSK

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 OCIE2

6 TOIE2

5 TCIE1Timer/Counter Interrupt1 Input Capture

Interrupt Enable1 타이머/카운터1 의 입력캡쳐 인터럽트 허용 (SIEG의 I=1일 때 가능)

4 OCIE1ATimer/Counter1 Output Compare Match

A Interrupt Enable1

타이머/카운터1A 의 출력비교 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 TIFR의 OCF1A=1 이면 인터럽트 처리

3 OCIE1BTimer/Counter1 Output Compare Match

B Interrupt Enable1

타이머/카운터1A 의 출력비교 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 TIFR의 OCF1A=1 이면 인터럽트 처리

2 TOIE1Timer/Counter1 Overflow

Interrupt Enable1

타이머/카운터0 의 오버플로우 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 TIFR의 TOV0=1 이면 인터럽트 처리

1 OCIE0 Output compare Match Interrupt Enable

0 TCIE0 Overflow Interrupt Enable

Page 90: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 90

ETIMSK (Extended Timer/Counter Interrupt Mask Register)

Bit 7 6 5 4 3 2 1 0  

0x5D     TICIE3 TICIE3A TICIE3B TOIE3 OCIE3C OCIE1C ETIMSK

Read/Write R R R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

6

5 TICIE3 Input Capture Interrupt Enable 1 타이머/카운터3 의 입력캡쳐 인터럽트 허용 (SIEG의 I=1일 때 가능)

4 TICIE3A Output Compare A Match Interrupt Enable 1타이머/카운터3A 의 출력비교 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 ETIFR의 OCF3A=1 이면 인터럽트 처리

3 TICIE3B Output Compare B Match Interrupt Enable 1타이머/카운터3B 의 출력비교 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 ETIFR의 OCF3B=1 이면 인터럽트 처리

2 TOIE3 Overflow Interrupt Enable 1타이머/카운터3 의 오버플로우 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 ETIFR의 TOV3=1 이면 인터럽트 처리

1 OCIE3C Output Compare 3C Match Interrupt Enable 1타이머/카운터3C 의 출력비교 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 ETIFR의 OCF3C=1 이면 인터럽트 처리

0 OCIE1C Output Compare 1C Match Interrupt Enable 1타이머/카운터1C 의 출력비교 인터럽트 허용

(SIEG의 I=1일 때 가능) 인터럽트 발생시 ETIFR의 OCF1A=1 이면 인터럽트 처리

Page 91: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 91

TIFR (Timer/Counter Interrupt Flag Register)

Bit 7 6 5 4 3 2 1 0  

0x36 OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 OCF0 TOV0 TIFR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 OCF2

6 TOV2

5 ICF1Timer/Counter1

Input Capture Flag

입력캡쳐 인터럽트 요청

ICR1-TOP / TCNT1=TOP 일 때 인터럽트 요청 (자동으로 클리어)

4 OCF1ATimer/Counter1

Output Compare A Match FlagTCNT1=OCR1A 일 때 출력비교 인터럽트 요청 (자동으로 클리어)

3 OCF1BTimer/Counter1

Output Compare B Match FlagTCNT1=OCR1B 일 때 출력비교 인터럽트 요청 (자동으로 클리어)

2 TOV1Timer/Counter1

Overflow Flag오버플로우 발생시 인터럽트 요청 (자동으로 클리어)

1 OCF0 Output Compare Flag

0 TOV0 Overflow Flag

Page 92: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 92

ETIFR (Extended Timer/Counter Interrupt Flag Register)

Bit 7 6 5 4 3 2 1 0  

0x5C     ICF3 OCF3A OCF3B TOV3 OCF3C OCF1C ETIFR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

6

5 ICF3Timer/Counter3

Input Capture Flag

입력캡쳐 인터럽트 요청

ICR3-TOP / TCNT3=TOP 일 때 인터럽트 요청 (자동으로 클리어)

4 OCF3ATimer/Counter3

Output Compare A Match FlagTCNT3=OCR3A 일 때 출력비교 인터럽트 요청 (자동으로 클리어)

3 OCF3BTimer/Counter3

Output Compare B Match FlagTCNT3=OCR3B 일 때 출력비교 인터럽트 요청 (자동으로 클리어)

2 TOV3Timer/Counter3

Overflow Flag오버플로우 발생시 인터럽트 요청 (자동으로 클리어)

1 OCF3CTimer/Counter3

Output Compare C Match FlagTCNT3=OCR3C 일 때 출력비교 인터럽트 요청 (자동으로 클리어)

0 OCF1CTimer/Counter1

Output Compare C Match FlagTCNT1=OCR1C 일 때 출력비교 인터럽트 요청 (자동으로 클리어)

Page 93: ATmega128 Register (By JSM)

16-bit Timer / Counter 1,3

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 93

SFIOR (Special Function IO Register)

Bit 7 6 5 4 3 2 1 0  

0x20 TSM       ACME PUD PSR0 PSR321 SFIOR

Read/Write R/W R R R R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 TSM Synchronization Mode

1

모든 타이머/카운터들을 동기화 기능

PSR0 및 PSR321 bit의 라이트값을 유지

→대응하는 프리스케일러 리셋신호 발생

(타이머.카운터의 동작을 정지시켜 이것과 똑같은 값으로 설정 가능)

0 PSR0 및 PSR321 bit가 하드웨어 적으로 클리어 된다.

6

5

4

3 ACME

2 PUD

1 PSR0

0 PSR321 Prescaler Reset for TC3, TC2 and TC1 1타이머/카운터 321 프리스케일러 리셋

(TSM=0일 때 자동으로 클리어)

Page 94: ATmega128 Register (By JSM)

Serial Peripheral Interface (SPI)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 94

SPDR (SPI Data Register)

Bit 7 6 5 4 3 2 1 0  

0x0F MSB             LSM SPDR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value X X X X X X X X Undefined

BIT NAME FUNCTION

7MSB

LSM

Data Register

SPI 통신시 송신 / 수신 데이터 저장

(송신시 단일 버퍼로 동작)

(수신시 이중 버퍼로 동작)

6

5

4

3

2

1

0

Page 95: ATmega128 Register (By JSM)

Serial Peripheral Interface (SPI)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 95

SPSR (SPI Status Register)

Bit 7 6 5 4 3 2 1 0  

0x0E SPIF WCOL           SPI2X SPSR

Read/Write R R R R R R R R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 SPIF Interrupt Flag 전송 완료시 셋트

6 WCOL Write Collision Flag 데이터 전송시 SPDR에 라이트 시작시 셋트

5

4

3

2

1

0 SPI2X Double SPI Speed Bit 1 SPI가 마스터로 동작시 Sck 클럭신호 주파수 2배로 설정

Page 96: ATmega128 Register (By JSM)

Serial Peripheral Interface (SPI)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 96

SPCR (SPI Control Register)

Bit 7 6 5 4 3 2 1 0  

0x0D SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0 SPCR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 SPIE Interrupt Enable 1 SPI 인터럽트 허용

6 SPE SPI Enable 1 SPI 동작 허용

5 DORD Data Order 1 데이터 직렬 전송시 LSB부터 전송 0 데이터 직렬 전송시 MSB부터 전송

4 MSTR Master / Slave Select 1 SPI 모듈 마스터 동작 0 SPI 모듈 슬레이브 동작

3 CPOL Clock Polarity Sck 데이터 샘플링 에지 극성 설정

2 CPHA Clock Phase Sck 데이터 샘플링 에지 위상 설정

1SPR Clock Rate Selection Sck 클럭 주파수 설정

0

Page 97: ATmega128 Register (By JSM)

Serial Peripheral Interface (SPI)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 97

SPCR (SPI Control Register)

CPOL (Sck 데이터 샘플링 에지 극성 설정)

CPOL Leading Edge Trailing Edge

0 Rising Edge Falling Edge

1 Falling Edge Rising Edge

CPHA (Sck 데이터 샘플링 에지 위상 설정)

CPHA Leading Edge Trailing Edge

0 Sample Set up

1 Set up Sample

SPR (Sck 클럭 주파수 설정)

SPI2X SPR1 SPR2 Sck 클럭 주파수

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

Page 98: ATmega128 Register (By JSM)

USARTn (n=0, 1)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 98

UDRn (USARTn I/O Data Register) - (n=0, 1)

Bit 7 6 5 4 3 2 1 0  

(0) 0x0C / (1) 0x7CRXBn7 RXBn6 RXBn5 RXBn4 RXBn3 RXBn2 RXBn1 RXBn0 UDRn (Read)

TXBn7 TXBn6 TXBn5 TXBn4 TXBn3 TXBn2 TXBn1 TXBn0 UDRn (Write)

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

RXB

n

TXB

n

USART 송수신 데어터 저장

(송신시 TXBn에 저장)

(수신시 RXBn에 저장)

6

5

4

3

2

1

0

Page 99: ATmega128 Register (By JSM)

USARTn (n=0, 1)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 99

UCSRnA (USART Control and Status Register A) - (n=0, 1)

Bit 7 6 5 4 3 2 1 0  

(0) 0x0B / (1) 0x7B RXCn TXCn UDREn FEn DORn UPEn U2Xn MPCMn UCSRnA

Read/Write R R/W R R R R R/W R/W  

Initial Value 0 0 1 0 0 0 0 0  

BIT NAME FUNCTION

7 RXCn Receive Complete 수신 완료시 셋트

6 TXCn Transmit Complete 송신 완료시 셋트

5 UDREn Data Register Empty 송신 준비 완료시 셋트

4 FEn Framing Error 수신신 프레임 에러시 셋트

3 DORn Data overRun 수신시 오버런 에러시 셋트

2 UPEn Parity Error 수신시 패리티 에러시 셋트

1 U2Xn Double the USART transmission speed 1 전송 속도를 2배로 설정 (비동기 모드에서만 유효)

0 MPCMn Multi-processor Communication Mode 1 멀티 프로세서 통신 모드 허용

Page 100: ATmega128 Register (By JSM)

USARTn (n=0, 1)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 100

UCSRnB (USART Control and Status Register B) - (n=0, 1)

Bit 7 6 5 4 3 2 1 0  

(0) 0x0A / (1) 0x7A  RXCIEn TXCIEn UDRIEn RXENn TXENn UCSZn2 RXB8n TXB8n UCSRnB

Read/Write R/W R/W R/W R/W R/W R/W R R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 RXCIEn RX Complete Interrupt Enable 1 1문자 수신시 (UCSRnA의 RXCn=1) 수신완료 인터럽트 발생 (SIEG의 I=1)

6 TXCIEn TX Complete Interrupt Enable 1 1문자 송신시 (UCSRnA의 TXCn=1) 송신완료 인터럽트 발생 (SIEG의 I=1)

5 UDRIEn Data Register Empty Interrupt Enable 1 송신준비 완료시 (UCSRnA의 UDR뚜=1) 송신준비완료 인터럽트 발생 (SIEG의 I=1)

4 RXENn Receiver Enable 1 USART 수신부 동작 허용

3 TXENn Transmitter Enable 1 USART 송신부 동작 허용

2 UCSZn2 Character Size 전송 문자 데이터 비트수 설정

1 RXB8n Receive Data bit 8 전송 문자 데이터 비트수가 9비트일 때 9번 비트(MSB)를 저장 (UDRn 보다 먼저 라이트)

0 TXB8n Transmit Data bit 8 송신 문자 데이터 비트수가 9비트일 때 9번 비트(MSB)를 저장 (UDRn 보다 먼저 라이트)

Page 101: ATmega128 Register (By JSM)

USARTn (n=0, 1)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 101

UCSRnC (USART Control and Status Register C) - (n=0, 1)

Bit 7 6 5 4 3 2 1 0  

(0) 0x75 / (1) 0x7D    UMSELn UPMn1 UPMn0 USBSn UCSZn1 UCSZn0 UCPOLn UCSRnC

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 1 1 0  

BIT NAME FUNCTION

7

6 UMSELn Mode Select 1 동기 전송 모드 설정 0 비동기 전송 모드 설정

5UPMn Parity Mode 패리티 모드 설정

4

3 USBSn Stop bit Select 1 스톱 비트 2개 설정 0 스톱 비트 1개 설정

2UCSZn Character Size 전송 문자 데이터 비트수 설정

1

0 UCPOLn Clock Polarity1

XCKn 클럭의 하강 에지에서 값 출력0

XCKn 클럭의 상승 에지에서 값 출력

XCKn 클럭의 상승 에지에서 값 검출 XCKn 클럭의 하강 에지에서 값 검출

동기 전송 모드시 가능

Page 102: ATmega128 Register (By JSM)

USARTn (n=0, 1)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 102

USART Parity Mode 설정

UPMn1 UPMn0 패리티 모드

0 0 패리티 체크 기능 사용 안함

0 1 -

1 0 짝수 패리티 모드

1 1 홀수 패리티 모드

USART Character Size 설정

UCSZn2 UCSZn1 UCSZn0 전송 데이터 길이

0 0 0 5 bit

0 0 1 6 bit

0 1 0 7 bit

0 1 1 8 bit

1 0 0 -

1 0 1 -

1 1 0 -

1 1 1 9 bit

Page 103: ATmega128 Register (By JSM)

USARTn (n=0, 1)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 103

UBRRn (USART Baud Rate Registers) - (n=0, 1)

Bit 7 6 5 4 3 2 1 0  

(0) 0x70 / (1) 0x78         UBRRn11 UBRRn10 UBRRn9 UBRRn8 UBRRnH

(0) 0x09 / (1) 0x79 UBRRn7 UBRRn6 UBRRn5 UBRRn4 UBRRn3 UBRRn2 UBRRn1 UBRRn0 UBRRnL

Read/Write R R R R R/W R/W R/W R/W  

  R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

  0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

UBRRnL

USART Baud Rate Register High Byte

USART Baud Rate Register Low Byte보레이트 값 결정

6

5

4

3 UBRRnH

2

1

0

Page 104: ATmega128 Register (By JSM)

USARTn (n=0, 1)

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 104

Baud Rate

보레이트 값 공식

동작 모드 공 식

비동기 일반 모드

(U2Xn = 0) ×

비동기 2배속 모드

(U2Xn = 1) ×

동기 마스터 모드 ×

보레이트 값에 따른 UBRRn 값

Baud Rate

(bps)

비동기 일반 모드

(U2Xn = 0)

비동기 2배속 모드

(U2Xn = 1)

UBRRn Error UBRRn Error

2400 416 -0.08% 832 +0.04%

4800 207 +0.16% 416 -0.08%

9600 103 +0.16% 207 +0.16%

14400 68 +0.64% 138 -0.08%

19200 51 +0.16% 103 +0.16%

28800 34 -0.79% 68 +0.64%

38400 25 +0.16% 51 +0.16%

57600 16 +2.12% 34 -0.79%

76800 12 +0.16% 25 +0.16%

115200 8 -3.55% 16 +2.12%

230400 3 +8.51% 8 -3.55%

250000 3 +0.00% 7 +0.00%

500000 1 +0.00% 3 +0.00%

1M 0 +0.00% 1 +0.00%

Page 105: ATmega128 Register (By JSM)

Two-wire Serial Interface

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 105

TWBR (TWI Bit Rate Register)

Bit 7 6 5 4 3 2 1 0  

0x50 TWBR7 TWBR6 TWBR5 TWBR4 TWBR3 TWBR2 TWBR1 TWBR0 TWBR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

TWBR Bit Rate Register

마스터 모드에서 전송속도에 필요한 SCL의 클럭 주파수 설정

· ·

6

5

4

3

2

1

0

Page 106: ATmega128 Register (By JSM)

Two-wire Serial Interface

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 106

TWCR (TWI Bit Control Register)

Bit 7 6 5 4 3 2 1 0  

0x54 TWINT TWEA TWSTA TWSTO TWWC TWEN   TWIE TWCR

Read/Write R/W R/W R/W R/W R R/W R R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 TWINT Interrupt Flag 현재 동작 완료 후 소프트웨어 적으로 필요한 경우 셋트 (인터럽트 요청)

6 TWEA Enable Acknowledge Bit 1

확인 신호(L)를 출력

- 슬레이브 모드에서 잔신과 일치하는 jemfptm를 수신한 경우

- TWAR 레지스터에서 TWGCE=1로 설정, 전체 호출이 검출된 경우

- 마스터 또는 슬레이브 수신 모드에서 1바이트 데이터를 수신한 경우

5 TWSTA Start Condition Bit 1 마스터로 동작시 버스가 사용 가능한 상태인지 체크한 후 START 조건을 출력

4 TWSTO Stop Condition Bit 1마스터로 동작시 STOP 조건을 출력

슬레이브로 동작시 TWI 에러 상태에서 정상적인 슬레이브 모드의 수신대기모드 진입

3 TWWC Write Condition Bit TWINT=0 인 상태에서 TWDR에 값을 라이트 할 때 셋트

2 TWEN Enable Bit 1 TWI 동작 허용 (SDA, SCL 핀 유효)

1

0 TWE Interrupt Enable 1 TWI 인터럽트 허용

Page 107: ATmega128 Register (By JSM)

Two-wire Serial Interface

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 107

TWSR (TWI Status Register)

Bit 7 6 5 4 3 2 1 0  

0x51 TWS7 TWS6 TWS5 TWS4 TWS3   TWPS1 TWPS0 TWSR

Read/Write R R R R R R R/W R/W  

Initial Value 1 1 1 1 1 0 0 0  

BIT NAME FUNCTION

7

TWS TWI Status TWI의 버스 상태 표시

6

5

4

3

2

1

TWPS TWI Prescaler

TWI 프리스케일러 설정

TWPS1 TWPS0 프리스케일러 값

0 0 1

0 1 4

1 0 16

1 1 64

0

Page 108: ATmega128 Register (By JSM)

Two-wire Serial Interface

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 108

TWDR (TWI Data Register)

Bit 7 6 5 4 3 2 1 0  

0x53 TWD7 TWD6 TWD5 TWD4 TWD3 TWD2 TWD1 TWD0 TWDR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 1 1 1 1 1 1 1 1  

BIT NAME FUNCTION

7

TWD TWI Data RegisterTWI 송신모드 : 송신 할 바이트(스레이브 어드레스, 전송 데이터)를 저장

TWI 수신모드 : 수신 된 바이트를 저장

6

5

4

3

2

1

0

Page 109: ATmega128 Register (By JSM)

Two-wire Serial Interface

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 109

TWAR (TWI (Slave) Address Register)

Bit 7 6 5 4 3 2 1 0  

0x52 TWA6 TWA5 TWA4 TWA3 TWA2 TWA1 TWA0 TWGCE TWAR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 1 1 1 1 1 1 1 0  

BIT NAME FUNCTION

7

TWA (Slave) Address Register Bit 7 슬레이브 어드레스 설정

6

5

4

3

2

1

0 TWGCE General Call Recognition Enable Bit마스터가 7비트를 0000000를 전송하여 전체호출을 할 경우 슬레이브가 이를 검출하도록

허용

Page 110: ATmega128 Register (By JSM)

Analog Comparetor

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 110

SFIOR (Special Function IO Register)

Bit 7 6 5 4 3 2 1 0  

0x20 TSM       ACME PUD PSR0 PSR321 SFIOR

Read/Write R/W R R R R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 TSM

6

5

4

3 ACME Multiplexer Enable1 ADC0~7의 신호가 음극성 입력으로 사용 (ADC 동작정지-ADCSRA의 ADEN=0)

0 AIN1의 신호가 음극성 입력으로 사용

2 PUD

1 PSR0

0 PSR321

Page 111: ATmega128 Register (By JSM)

Analog Comparetor

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 111

아날로그 비교기 음극성 입력 선택

ACME ADEN MUX2 MUX1 MUX0 음극성 입력

0 X X X X AIN1

1 1 X X X AIN1

1 0 0 0 0 ADC0

1 0 0 0 1 ADC1

1 0 0 1 0 ADC2

1 0 0 1 1 ADC3

1 0 1 0 0 ADC4

1 0 1 0 1 ADC5

1 0 1 1 0 ADC6

1 0 1 1 1 ADC7

아날로그 비교기 인터럽트 모드 선택

ACIS1 ACIS0 아날로그 인터럽트 모드

0 0 출력의 하강/상승 에지에서 인터럽트 발생

0 1 -

1 0 출력의 하강 에지에서 입터럽트 발생

1 1 출력의 상승 에지에서 입터럽트 발생

Page 112: ATmega128 Register (By JSM)

Analog Comparetor

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 112

ACSR (Analog Comparator Control and Status Register)

Bit 7 6 5 4 3 2 1 0  

0x08 ACD ACBG ACO ACI ACIE ACIC ACIS1 ACIS0 ACSR

Read/Write R/W R/W R R/W R/W R/W R/W R/W  

Initial Value 0 0 N/A 0 0 0 0 0  

BIT NAME FUNCTION

7 ACD Disable 1 아날로그 비교기의 동작 금지

6 ACBG Bandgap Select 1양극성 입력에 내부 기준전압 선택

(기준전압 = 1.23V) 0 양극성 입력에 AIN0 전압 선택

5 ACO Output 아날로그 비교기의 출력 값

4 ACI Interrupt Flag 아날로그 비교기 인터럽트 플래그 (ACIS에 의해 결정)

3 ACIE Interrupt Enable 1 아날로그 비교기 인터럽트 허용

2 ACIC Input Capture Enable 1 아날로그 비교기의 출력을 타이머/카운터1의 입력 캡쳐 트리거 신호로 설정

1

ACIS Interrupt Moe Select Bit 1 아날로그 인터럽트 모드 선택

0

Page 113: ATmega128 Register (By JSM)

Analog to Digital Converter

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 113

`

ADMUX (ADC Multiplexer Selection Register)

Bit 7 6 5 4 3 2 1 0  

0x07 REFS1 REFS0 ADLAR MUX4 MUX3 MUX2 MUX1 MUX0 ADMUX

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7REFS Reference Selection ADC의 기준 전압 선택

6

5 ADLAR Left Adjust Result 1 ADC의 데이터 레지스터에 좌측 끝에 맞추어 저장

4

MUX Analog Channel and gain Selection ADC 입력 채널 선택

3

2

1

0

Page 114: ATmega128 Register (By JSM)

Analog to Digital Converter

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 114

ADC 기준 전압 선택

REFS1 REFS0 기준 전압

0 0 외부의 AREF 입력 전압 사용

0 1 외부의 AVCC 입력 전압 사용

1 0 -

1 1 내부의 기준전압 (V=2.56V) 사용

ADC 채널 입력 선택

MUX4 MUX3 MUX2 MUX1 MUX0차 동 입 력

단극성

입력+단자 -단자 이득

0 0 0 0 0 ADC0

0 0 0 0 1 ADC1

0 0 0 1 0 ADC2

0 0 0 1 1 ADC3

0 0 1 0 0 ADC4

0 0 1 0 1 ADC5

0 0 1 1 0 ADC6

0 0 1 1 1 ADC7

0 1 0 0 0 ADC0 ADC0 10x

0 1 0 0 1 ADC1 ADC0 10x

0 1 0 1 0 ADC0 ADC0 200x

0 1 0 1 1 ADC1 ADC0 200x

0 1 1 0 0 ADC2 ADC2 10x

0 1 1 0 1 ADC3 ADC2 10x

0 1 1 1 0 ADC2 ADC2 200x

0 1 1 1 1 ADC3 ADC2 200x

1 0 0 0 0 ADC0 ADC1 1x

1 0 0 0 1 ADC1 ADC1 1x

1 0 0 1 0 ADC2 ADC1 1x

1 0 0 1 1 ADC3 ADC1 1x

1 0 1 0 0 ADC4 ADC1 1x

1 0 1 0 1 ADC5 ADC1 1x

1 0 1 1 0 ADC6 ADC1 1x

1 0 1 1 1 ADC7 ADC1 1x

1 1 0 0 0 ADC0 ADC2 1x

1 1 0 0 1 ADC1 ADC2 1x

1 1 0 1 0 ADC2 ADC2 1x

1 1 0 1 1 ADC3 ADC2 1x

1 1 1 0 0 ADC4 ADC2 1x

1 1 1 0 1 ADC5 ADC2 1x

1 1 1 1 0 1.23V

1 1 1 1 1 0V

Page 115: ATmega128 Register (By JSM)

Analog to Digital Converter

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 115

ADCSRA (ADC Control and Status Register A)

Bit 7 6 5 4 3 2 1 0  

0x06 ADEN ADSC ADFR ADIF ADIE ADPS2 ADPS1 ADPS0 ADCSRA

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 ADEN ADC Enable 1 ADC 동작 허용 설정

6 ADSC ADC Start Conversion 1 ADC 변환 시작 설정

5 ADFR ADC Free Running Select 1 ADC 프리런닝 모드 설정

4 ADIF ADC Interrupt Flag ADC 변환 완료 입터럽트 요청

3 ADIE ADC Interrupt Enable 1 ADC 변환 완료 인터럽트 허용

2

ADPS ADC Data Register ADC 클럭의 분주비 설정1

0

Page 116: ATmega128 Register (By JSM)

Analog to Digital Converter

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 116

ADC 클럭의 분주비 선택

ADPS2 ADPS1 ADPS0 분주비

0 0 0 2

0 0 1 2

0 1 0 4

0 1 1 8

1 0 0 16

1 0 1 32

1 1 0 64

1 1 1 128

Page 117: ATmega128 Register (By JSM)

Analog to Digital Converter

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 117

ADC (The ADC Data Register) - (ADLAR = 0)

Bit 7 6 5 4 3 2 1 0  

0x05             ADC9 ADC8 ADCH

0x04 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0 ADCL

Read/Write R R R R R R R R  

  R R R R R R R R  

Initial Value 0 0 0 0 0 0 0 0  

  0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

ADC

L

The ADC Data Register High Bit

The ADC Data Register Low BitADC 변환 결과 저장

6

5

4

3

2

1 ADC

H0

Page 118: ATmega128 Register (By JSM)

Analog to Digital Converter

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 118

ADC (The ADC Data Register) - (ADLAR = 1)

Bit 7 6 5 4 3 2 1 0  

0x05 ADC9 ADC8 ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADCH

0x04 ADC1 ADC0             ADCL

Read/Write R R R R R R R R  

  R R R R R R R R  

Initial Value 0 0 0 0 0 0 0 0  

  0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7

ADC

H

ADC

L

The ADC Data Register High Bit

The ADC Data Register Low BitADC 변환 결과 저장

6

5

4

3

2

1

0

Page 119: ATmega128 Register (By JSM)

Jtag Interface

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 119

OCDR (On-chip Debug Register)

Bit 7 6 5 4 3 2 1 0  

0x22 MSB/IDRD             LSB OCDR

Read/Write R/W R/W R/W R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7MSB

/IDRD

LSB

On Chip Debug Register 디버그 파일 저장

6

5

4

3

2

1

0

Page 120: ATmega128 Register (By JSM)

Jtag Interface

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 120

MCUCSR (MCU Control and Status Register)

Bit 7 6 5 4 3 2 1 0  

0x34 JTD     JTRF WDRF BORF EXTRF PORF MCUCSR

Read/Write R/W R R R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 See Bit Description  

BIT NAME FUNCTION

7 JTD JTAG Interrupt Disable 1 JTAG 인터럽트 금지 0 JTAG 인터럽트 허용

6

5

4 JTRF JTAG Reset Flag JTAG 리셋 플래그

3 WDRF

2 BORE

1 EXTRE

0 PORE

Page 121: ATmega128 Register (By JSM)

Boot Loader Support

Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 121

SPMCSR (Store Program Memory Control and Status Register)

Bit 7 6 5 4 3 2 1 0  

0x48 SPMIE RWWSB   RWWSRE BLBSET PGWRT PGERS SPMEN SPMCSR

Read/Write R/W R R R/W R/W R/W R/W R/W  

Initial Value 0 0 0 0 0 0 0 0  

BIT NAME FUNCTION

7 SPMIE SPM Interrupt Enable SPM 인터럽트 허용

6 RWWSB Read While Write Section Busy Read While Write Section Busy 플래그

5

4 RWWSRE Read While Write Section Read Enable 1 Read While Write Section Read 허용

3 BLBSET Boot Lock Bit Set 1 부트 락 비트 설정

2 PGWRT Page Write 1 페이지 쓰기

1 PGERSP Page Erase 1 페이지 지우기

0 SPMEN Store Program Memory Enable 1 저장 프로그램 메모리 허용