3.ATmega128 기본 하드웨어
3.1 메모리 LOCK bit, FUSE bit
AVR은 FUSE 라는 특별한 기능이 있습니다. FUSE는 AVR자체의 H/W 적인 스펙을 설정하고 조작하는데 사용되어 집니다. 이 FUSE에 대해 간단한 설명을 하도록 하겠습니다.
-M103C : ATmega103 호환 모드로 선택 합니다.
-WDTON : 자동으로 WDTON이 실행될지 선택 합니다.
-OCDEN : OCD 사용 여부를 설정합니다.
-JTAGEN : JTAG 디버깅 사용 여부를 선택 합니다.
-SPIEN : ISP를 지원할지 선택 합니다.
-CKOPT : 발진레벨을 조절합니다.
-EESAVE : Erase 명령시 EEPROM을 안 지울 것인지 선택 합니다.
-BOOTSZ1,0: 부트 사이즈를 결정합니다.
-BOOTRST : Reset에 의해 BOOT영역으로 이동할지 선택 합니다.
-BODLEVEL : 전압레벨이 어느 이하로 떨어질 경우 Reset 할지 선택 합니다.
-BODEN : 전압레벨 확인을 할지 선택 합니다.
-SUT1,0 : START 할때의 시간을 선택 합니다.
-CKSEL 0,1,2,3 : 클럭 소스를 설정 합니다.
3.2 시스템 클럭
FUSE 선택에 의해 ATmega128은 다양한 클럭을 선택 할 수 있습니다. 간단하게 보면 아래와 같습니다.
클럭소스 | CKSEL 3~0 | |
External Crystal/Ceramic Resonator | 1111~1010 | |
External Low-frequency Crystal | 1001 | |
External RC Oscillator | 8.0~12.0 MHz | 1000 |
3.0~8.0 MHz | 0111 | |
0.9~3.0 MHz | 0110 | |
0.0~0.9 MHz | 0101 | |
Calibrated Internal RC Oscillator | 8.0 MHz | 0100 |
4.0 MHz | 0011 | |
2.0 MHz | 0010 | |
1.0 MHz | 0001 | |
External Clock | 0000 |
CKOPT를 이용해 발진 레벨을 조절하여 발진레벨이 작아지도록 해서 소비전력을 적게 할 수도 있으며, 발진레벨을 크게 해서 발진의 외부 노이즈 영향을 적게 받도록 할 수 있습니다.
3.3 시스템 리셋
ATmega128은 여러가지 Reset 조건이 존재 합니다. 그 내용은 아래와 같습니다.
- Power on Reset : 전원 이 CPU가 안정하게 돌수 있는 전압 이하일 경우 RESET 을 하고 있습니다.
- Watchdog Reset : Watchdog 타이머의 지정된 주기이내에서 재설정을 안하는 경우 Reset 을 합니다.
( 프로그램이 안정하게 돌아가는지 확인할 때 사용합니다.)
- Broen-out Reset: 전원이 일정 시간동안 지정된 전압 이하로 될경우 Reset 이 됩니다.
- JTAG에 의한 Reset : JTAG을 이용해 내부 레지스터를 설정해 Reset 을 할 수 있습니다.
- 외부 Reset : Reset pin 에 입력된 신호에 따라 Reset 을 할 수 있습니다 .
3.4 Watch-doc타이머
Watch-doc 타이머는 지정된 주기이내에서(타임아웃이 되기전에) S/W 적으로 타이머의 값을 초기화 시켜주지 않으면 정상적으로 동작하지 않는 것으로 판단을 합니다. 이는 CPU의 동작에 대한 신뢰성을 높이는데 사용합니다.
3.5 SLEEP 모드
저전력 시스템 동작시 사용하지 않을 때 사용하지 않는 모듈들을 정지시켜 소비전력을 낮추도록 하는데 사용 됩니다.
3.6 BOOT 로드
BOOTSZ1,0 로 부트 사이즈를 결정합니다. 또한 BOOTRST 으로 Reset에 의해 BOOT영역으로 이동할지 선택 합니다. 이 기능을 이용해Main 프로그램 영역을 프로그램적으로 변경할 수 있습니다. 그래서 장비의 문제 발생 또는 기능 추가에 많이 활용되어 집니다.
BOOTSZ1 | BOOTSZ0 | Boot Size | 응용 프로그램 섹션 | 부트 로더 섹션 |
1 | 1 | 512워드(4page) | 0x0000~0xFDFF | 0xFE00~0xFFFF |
1 | 0 | 1024워드(8page) | 0x0000~0xFBFF | 0xFC00~0xFFFF |
0 | 1 | 2048워드(16page) | 0x0000~0xF7FF | 0xF800~0xFFFF |
0 | 0 | 4096워드(32page) | 0x0000~0xEFFF | 0xF000~0xFFFF |
'공부 > AVR' 카테고리의 다른 글
[ATMEGA128] 5. 외부 인터럽트 및 내부 인터럽트 (0) | 2012.11.09 |
---|---|
[ATMEGA128] 4. 입출력 I/O (0) | 2012.11.09 |
[ATMEGA128] 2.6 통합환경구축 (4) (0) | 2012.11.09 |
[ATMEGA128] 2.6통합환경구축(3) (0) | 2012.11.09 |
[ATMEGA128] 2.6 통합환경구축 (2) (0) | 2012.11.09 |