공부/AVR 2012. 11. 9. 16:27

 

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

posted by 큰파도

댓글을 달아 주세요