atmega128 register (by jsm)
TRANSCRIPT
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기능 사용시 클럭발생 수정발진자 접속단자)
ATmega128 Architecture
Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 2
Block Diagram and Architectural
ATmega128 Architecture
Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 3
Execution Timing
(ALU - Arithmetic Logic Unit)
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 워치독 타이머 동작 금지
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
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
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
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
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
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
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
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
Memory Lock Bit
Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 13
Boot Loader
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
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 명령 사용 불가능)
부트로더 섹션 실행 중 모든 인터럽트는 금지됨
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 발생
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
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
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
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)
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
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
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
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)
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
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
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
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
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
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는 레벨 트리거 모드일 때 유효
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 명령시 프로그램 메모리 영역의 상수를 엑세스
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
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
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
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로부터 읽음
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
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
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 허용 해제 불가능 지정된 처리 순서
I/O Ports
Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 39
I/O Port
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)
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 신호에 의하여 분리
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
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
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기능 사용시 클럭발생 수정발진자 접속단자)
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 인터럽트 벡터 바꿈 허용
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)
인터럽트 처리 과정
① 인터럽트 요청 신호의 검출
② 인터럽트 우선순위 제어 및 허용 여부 판단
③ 입터럽트 처리 루틴의 시작 번지 확인
④ 복귀 주소 및 레지스터를 저장
⑤ 인터럽트 서비스 루틴을 실행
⑥ 인터럽트 서비스 루틴을 종료하고 원래의 프로그램으로 복귀
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)
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)
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
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
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기능
타이머 및 카운터 모두
프리스케일러 사용
캡쳐 기능 캡쳐 기능
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
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
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
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
·
·
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으로 클리어
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
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
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
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에 새로운 값이 라이트 되면 셋트
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 이면 인터럽트 처리
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에서 계수 방향이 바뀌면 셋트)
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
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
8-bit Timer / Counter 2 PWM
Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 65
8bit Timer/Counter2
8-bit Timer / Counter 2 PWM
Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 66
8bit Timer/Counter0
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
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
·
·
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으로 클리어
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 핀의 입력되는 외부 클럭
(하강 에지 동작)
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
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
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
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
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 이면 자동으로 클리어 되지 않는다.)
16-bit Timer / Counter 1,3
Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 76
16bit Timer/Counter
16-bit Timer / Counter 1,3
Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 77
16bit Timer/Counter
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 타이머/카운터 동작 모드 설정
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 동작 모드 설정
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
· ·
· ·
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으로 클리어
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
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 핀의 입력되는 외부 클럭
(하강 에지 동작)
16-bit Timer / Counter 1,3
Jo Sang Min DanKook Univ. E.E. Electron - www.cyworl.com/xenon78 ATmega128 REGISTER 84
Input Capture 기능
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
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
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
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
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
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 이면 인터럽트 처리
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
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 일 때 출력비교 인터럽트 요청 (자동으로 클리어)
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일 때 자동으로 클리어)
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
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배로 설정
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
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
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
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 멀티 프로세서 통신 모드 허용
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 보다 먼저 라이트)
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 클럭의 하강 에지에서 값 검출
동기 전송 모드시 가능
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
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
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%
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
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 인터럽트 허용
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
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
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를 전송하여 전체호출을 할 경우 슬레이브가 이를 검출하도록
허용
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
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 출력의 상승 에지에서 입터럽트 발생
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
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
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
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
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
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
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
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
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
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 저장 프로그램 메모리 허용