목차
1. ATmega128 제원
2. ATmega128 I/O Port
3. ATmega128 Interrupt
4. ATmega128 Timer
5. ATmega128 A/D Converter
6. ATmega128 Addressing Mode
7. security & configuration
2. ATmega128 I/O Port
3. ATmega128 Interrupt
4. ATmega128 Timer
5. ATmega128 A/D Converter
6. ATmega128 Addressing Mode
7. security & configuration
본문내용
택 (BODEN, BODLEVEL)
- Boot 메모리 사이즈, 리셋 Vector 선택 (BOOTSZ1, BOOTSZ0, BOOTRST)
- 삭제 명령에서 내부 EEPROM 삭제 여부 선택(EESAVE)
- 이전 모델과의 호환 모드 선택 (M103C)
2, fuse bit 사용
- fuse bit의 해당 기능을 사용 하려면 반드시 “0” 으로 설정해야 한다. (Active Low)
- PonyProg에서 fuse bit 설정 화면 -
① Memory Lock Bit
-
-
BLB12
BLB11
BLB01
LB2
LB1
▶ Lock Bit
- 외부에서 메모리를 프로그램 하는 것을 보호하는 설정
LB2
LB1
내용
1
1
Memory Lock 기능 설정 X
1
0
Flash, EEPROM에 Programing 금지
0
0
Flash, EEPROM에 Programing 금지 및 수정 금지
▶ Boot Lock Bit 0
실행 프로그램에서 AP 섹션을 엑서스하는 것을 보호하는 설정
BOB02
BOB01
내용
1
1
LPM / ELPM / SPM 모두 허용
1
0
SPM 명령어 사용 금지
0
1
LPM / ELPM 명령어 사용 금지 / Interrut 작동 X
0
0
LPM,ELPM,SPM 명령어 사용 금지 / Interrut 작동 X
※ LPM(Load Program Memory) : 플레쉬 메모리에 저장되어 있는 상수 데이터를 Load시 사용
ELPM(Extended Load Program Memory) : 외부 플레쉬 메모리에 "
SPM(store program memory) : 플레쉬 메모리의 Boot Loader섹션을 Write시 사용
▶ Boot Lock Bit 1
- 실행프로그램에서 Boot 섹션 엑서스하는 것을 보호하는 설정
BOB12
BOB11
내용
1
1
LPM / ELPM / SPM 모두 허용
1
0
SPM 명령어 사용 금지
0
1
LPM / ELPM 명령어 사용 금지 / Interrut 작동 X
0
0
LPM,ELPM,SPM 명령어 사용 금지 / Interrut 작동 X
② Extended Fuse Byte
-
-
-
-
-
-
M103C
WDTON
▶ M103C (Initial = 0)
- ATmega103 호환모드로 동작
▶ WDTON
- WatchDog Timer Enable
③ Fuse High Byte
OCDEN
JTAGEN
SPIEN
CKOPT
EESAVE
BOOTSZ1
BOOTSZ0
BOOTRST
▶OCDEN
- On Chip Debug Enable
- AVR 명령어 중 "BREAK", OCDEN을 Enable 시키고 "BREAK"을 사용하면 AVR 동작 멈춤
▶ JTAGEN (Initial = 0)
- JTAG Enable
▶ SPIEN (Initial = 0)
- SPI Enable, SPI 방법으로 프로그램 다운로드 가능 ex) ISP장비
- Ponyprog에서는 bit 설정 못함 (세팅 중 Memory Lock bit와 SPIEN을 설정하면 Writing 안됨)
▶ CKOPT (Initial = 0)
- 오실레이터 옵션 CKSEL 3~0에 영향
▶ EESAVE (Initial = 0)
- Chip Erase시 EEPROM 내용 보호
▶ BOOTSZ
- 부트 사이즈와 AP 섹션, Boot 섹션 위치를 결정한다.
BOOTSZ1
BOOTSZ0
Boot Size
AP Section
Boot Section
1
1
512 WORD
0000 ~ FDFF
FE00 ~ FFFF
1
0
1024 WORD
0000 ~ FBFF
FC00 ~ FFFF
0
1
2048 WORD
0000 ~ F7FF
F800 ~ FFFF
0
0
4096 WORD
0000 ~ EFFF
F000 ~ FFFF
▶ BOOTRST (Initial = 1)
- Reset Vector 설정
- BOOTRST = 0 : Reset시 0x0000 번지부터 프로그램 실행
- BOOTRST = 1 : “ BootLoader 번지부터 프로그램 실행
④ Fuse Low Byte
BODLEVEL
BODEN
SUT1
SUT0
CKSEL3
CKSEL2
CKSEL1
CKSEL0
▶ BODLEVEL (Initial = 1)
- Brown Out Dector 기능 트리거 레벨
- 인가되는 전원이 일정 전압 아래로 떨어지면 리셋시키는 기능
BODLEVEL = 1 -> 2.0V
BODLEVEL = 0 -> 4.7V
▶ BODEN (Initial =1)
- Brown Out Dector의 기능을 Enable 시키는 기능
▶ CKSEL0 (Initial = 1), SUT1 (Initial =1), SUT0 (Initial = 0) SUT 1 ~ 0 : "10"
- Start-Up Time을 설정하는 기능이다.
- Power다운 된 이후 CLK가 재 발생되어 명령을 수행할 수 있는 상태가 될 수 있는 Delay시간
CKSEL0
SUT1
SUT0
Start-Up Time
리셋후 Delay시간
사용
0
0
0
258 CK
4.1 ms
세라믹 레조네이터
(Fast rising power)
0
0
1
258 CK
65 ms
세라믹 레조네이터
(Slowly rising power)
0
1
0
1K CK
-
세라믹 레조네이터
(BOD 사용)
0
1
1
1K CK
4.1 ms
세라믹 레조네이터
(Fast rising power)
1
0
0
1K CK
65 ms
세라믹 레조네이터
(Slowly rising power)
1
0
1
16K CK
-
크리스탈 오실레이터
(BOD 사용)
1
1
0
16K CK
4.1 ms
크리스탈 오실레이터
(Fast fising power)
1
1
1
16K CK
65 ms
크리스탈 오실레이터
(Slowly rising power)
▶ CKSEL3~1 (Initial = 0) CKSEL 3~0 : 0000
- ATmega128의 CLK 종류를 결정한다.
CKOPT
CKSEL 3
CKSEL 2
CKSEL 1
주파수 범위
1
1
0
1
0.4 ~ 0.9 MHZ
1
1
1
0
0.9 ~ 3.0 MHZ
1
1
1
1
3.0 ~ 8.0 MHZ
0
101, 110, 111
1.0 ~ 16.0 MHZ
- Boot 메모리 사이즈, 리셋 Vector 선택 (BOOTSZ1, BOOTSZ0, BOOTRST)
- 삭제 명령에서 내부 EEPROM 삭제 여부 선택(EESAVE)
- 이전 모델과의 호환 모드 선택 (M103C)
2, fuse bit 사용
- fuse bit의 해당 기능을 사용 하려면 반드시 “0” 으로 설정해야 한다. (Active Low)
- PonyProg에서 fuse bit 설정 화면 -
① Memory Lock Bit
-
-
BLB12
BLB11
BLB01
LB2
LB1
▶ Lock Bit
- 외부에서 메모리를 프로그램 하는 것을 보호하는 설정
LB2
LB1
내용
1
1
Memory Lock 기능 설정 X
1
0
Flash, EEPROM에 Programing 금지
0
0
Flash, EEPROM에 Programing 금지 및 수정 금지
▶ Boot Lock Bit 0
실행 프로그램에서 AP 섹션을 엑서스하는 것을 보호하는 설정
BOB02
BOB01
내용
1
1
LPM / ELPM / SPM 모두 허용
1
0
SPM 명령어 사용 금지
0
1
LPM / ELPM 명령어 사용 금지 / Interrut 작동 X
0
0
LPM,ELPM,SPM 명령어 사용 금지 / Interrut 작동 X
※ LPM(Load Program Memory) : 플레쉬 메모리에 저장되어 있는 상수 데이터를 Load시 사용
ELPM(Extended Load Program Memory) : 외부 플레쉬 메모리에 "
SPM(store program memory) : 플레쉬 메모리의 Boot Loader섹션을 Write시 사용
▶ Boot Lock Bit 1
- 실행프로그램에서 Boot 섹션 엑서스하는 것을 보호하는 설정
BOB12
BOB11
내용
1
1
LPM / ELPM / SPM 모두 허용
1
0
SPM 명령어 사용 금지
0
1
LPM / ELPM 명령어 사용 금지 / Interrut 작동 X
0
0
LPM,ELPM,SPM 명령어 사용 금지 / Interrut 작동 X
② Extended Fuse Byte
-
-
-
-
-
-
M103C
WDTON
▶ M103C (Initial = 0)
- ATmega103 호환모드로 동작
▶ WDTON
- WatchDog Timer Enable
③ Fuse High Byte
OCDEN
JTAGEN
SPIEN
CKOPT
EESAVE
BOOTSZ1
BOOTSZ0
BOOTRST
▶OCDEN
- On Chip Debug Enable
- AVR 명령어 중 "BREAK", OCDEN을 Enable 시키고 "BREAK"을 사용하면 AVR 동작 멈춤
▶ JTAGEN (Initial = 0)
- JTAG Enable
▶ SPIEN (Initial = 0)
- SPI Enable, SPI 방법으로 프로그램 다운로드 가능 ex) ISP장비
- Ponyprog에서는 bit 설정 못함 (세팅 중 Memory Lock bit와 SPIEN을 설정하면 Writing 안됨)
▶ CKOPT (Initial = 0)
- 오실레이터 옵션 CKSEL 3~0에 영향
▶ EESAVE (Initial = 0)
- Chip Erase시 EEPROM 내용 보호
▶ BOOTSZ
- 부트 사이즈와 AP 섹션, Boot 섹션 위치를 결정한다.
BOOTSZ1
BOOTSZ0
Boot Size
AP Section
Boot Section
1
1
512 WORD
0000 ~ FDFF
FE00 ~ FFFF
1
0
1024 WORD
0000 ~ FBFF
FC00 ~ FFFF
0
1
2048 WORD
0000 ~ F7FF
F800 ~ FFFF
0
0
4096 WORD
0000 ~ EFFF
F000 ~ FFFF
▶ BOOTRST (Initial = 1)
- Reset Vector 설정
- BOOTRST = 0 : Reset시 0x0000 번지부터 프로그램 실행
- BOOTRST = 1 : “ BootLoader 번지부터 프로그램 실행
④ Fuse Low Byte
BODLEVEL
BODEN
SUT1
SUT0
CKSEL3
CKSEL2
CKSEL1
CKSEL0
▶ BODLEVEL (Initial = 1)
- Brown Out Dector 기능 트리거 레벨
- 인가되는 전원이 일정 전압 아래로 떨어지면 리셋시키는 기능
BODLEVEL = 1 -> 2.0V
BODLEVEL = 0 -> 4.7V
▶ BODEN (Initial =1)
- Brown Out Dector의 기능을 Enable 시키는 기능
▶ CKSEL0 (Initial = 1), SUT1 (Initial =1), SUT0 (Initial = 0) SUT 1 ~ 0 : "10"
- Start-Up Time을 설정하는 기능이다.
- Power다운 된 이후 CLK가 재 발생되어 명령을 수행할 수 있는 상태가 될 수 있는 Delay시간
CKSEL0
SUT1
SUT0
Start-Up Time
리셋후 Delay시간
사용
0
0
0
258 CK
4.1 ms
세라믹 레조네이터
(Fast rising power)
0
0
1
258 CK
65 ms
세라믹 레조네이터
(Slowly rising power)
0
1
0
1K CK
-
세라믹 레조네이터
(BOD 사용)
0
1
1
1K CK
4.1 ms
세라믹 레조네이터
(Fast rising power)
1
0
0
1K CK
65 ms
세라믹 레조네이터
(Slowly rising power)
1
0
1
16K CK
-
크리스탈 오실레이터
(BOD 사용)
1
1
0
16K CK
4.1 ms
크리스탈 오실레이터
(Fast fising power)
1
1
1
16K CK
65 ms
크리스탈 오실레이터
(Slowly rising power)
▶ CKSEL3~1 (Initial = 0) CKSEL 3~0 : 0000
- ATmega128의 CLK 종류를 결정한다.
CKOPT
CKSEL 3
CKSEL 2
CKSEL 1
주파수 범위
1
1
0
1
0.4 ~ 0.9 MHZ
1
1
1
0
0.9 ~ 3.0 MHZ
1
1
1
1
3.0 ~ 8.0 MHZ
0
101, 110, 111
1.0 ~ 16.0 MHZ
소개글