ATmega128의 구조

Download Report

Transcript ATmega128의 구조

ATmega128의 구조
및 TOOL의 이해
Robotics_LAB
발표자 : 유 홍 선
ATmega128의 특징
향상된 RISC 구조




32*8 범용 동작 레지스터 + 주변 컨트롤 레지
스터로 구성
16MHz에서 평균적으로 16MIPS의 속도로 명
령어를 처리
133종의 명령 세트를 가지며, 1클럭 사이클에
실행
2사이클 곱셈기를 칩에 내장
ATmega128의 특징
비휘발성 프로그램과 데이터 메모리






128K Byte In-System프로그램 플래쉬 메모리
독립 락 비트를 지원하는 옵션 부트 코드 섹션
칩에 냐장된 부트 프로그램으로 In-System 프
로그래밍 가능
4K Byte EEPROM
4K Byte 내장형 SRAM
최대 64K Byte 이상의 외부 메모리 영역을 갖
는다.
ATmega128의 외부 구조
ATmega128의 핀 구성
VCC
GND
PORT A(PA7..PA0)


내부적으로 풀업된 8비트 양방향 병렬 포트
외부 데이터 메모리를 액세스하기 위한 데이터 버스 및 하
위 어드레스 버스로 사용됨
PORT B(PB7..PB0)

내부적으로 풀업된 8비트 양방향 병렬 포트
PORT C(PC7..PC0)


내부적으로 풀업된 8비트 양방향 병렬 포트
외부 데이터 메모리를 액세스하기 위한 16비트 어드레스
중에서 상위 8비트 어드레스 버스로 사용
ATmega128의 핀 구성
PORT D(PD7..PD0)
 내부적으로 풀업된 8비트 양방향 병렬 포트
PORT E(PE7..PE0)
 내부적으로 풀업된 8비트 양방향 병렬 포트
PORT F(PF7..PF0)
 내부적으로 풀업된 8비트 양방향 병렬 포트
 A/D 컨버터의 입력포트
PORT G(PG4..PG0)
 내부적으로 풀업된 8비트 양방향 병렬 포트
RESET
 리셋 입력 핀으로서 50ns이상의 Low Lever 입력이 지속되면 리
셋이 발생한다.
ATmega128의 핀 구성
XTAL1
 내부 클럭 발생 증폭회로의 입력 신호
XTAL2
 내부 클럭 발생 증폭회로의 출력 신호
AVCC
 A/D 컨버터의 전원 입력핀
 ADC가 사용된다면 LOW-PASS필터를 경유하여 VCC와 연결
AREF
 A/D 컨버터의 레퍼런스 전압 핀
PEN
 SPI 활성화를 시키는 프로그래밍 인에이블 핀으로서 파워 온 리
셋시 LOW로 유지 함으로서 SPI활성화 상태가 된다.
ATmega128의 내부 구조
ATmega128의 내부 구조
ATmega128의 메모리 구조
메모리의 구조
프로그램 메모리
플래쉬 메모리
(128KB)
데이터 메모리
내부 SRAM
(4KB)
외부 SRAM
(~64KB 확장가능)
EEPROM
(4KB)
ATmega128의 메모리 구조
프로그램 메모리

Flash Memory




128K Byte (64K * 16bit)
16bit or 32bit
Application / Boot Flash section
Program Writing


SPI 통신방식을 이용한 ISP기능 이용
JTAG 에뮬레이터 사용
ATmega128의 메모리 구조
데이터 메모리


내부 데이터 메모리로서의 SRAM, 외부 데이
터 메모리 SRAM 그리고 내부 EEPROR로 3가
지 종류로 구성되어 있다
32 Registers($00~1F)

32레지스터는 AVR 모든 시리즈에서의 사용되는 범
용레지스터로서의 역할을 하게 된다.
ATmega128의 메모리 구조
데이터 메모리
 64 I/O Registers($20~$5F)


160 Ext I/O Registers($60~$FF)



4Kbyte(4096*8bit)
각종 사용자변수 / 스택 영역으로 사용
외부 SRAM(0x1100~0xFFFF)


ATmega128에 추가된 각종 I/O 디바이스들을 제어하기 위한 레지스터
내부 SRAM(0x0100~0x10FF)


각종 I/O 디바이스들을 제어하기 위한 레지스터
사용자가 정해진 4KB보다 더 확장된 데이터메모리를 필요할 때 약 60KB의
외부 데이터 메모리영역으로 이용가능하다.
EEPROM




4Kbyte 내장
비휘발성
다른 데이터 메로리 어드레스 영역과는 별개의 영역을 할당 받게 된다.
단일 바이트로 읽고 쓸 수 있다.
ATmega128의 기본 하드웨어
메모리 록 비트와 퓨즈비트




메모리 보호 기능을 설정하는 용도로 1바이트
구조의 메모리 록 비트를 가지며, 기본적인 시
스템 설정용으로 3바이트 구조인 퓨즈 비트를
가지고 있다.
Flash Lock Bit
Boot Lock Bit
Fuse Bit : 103호환, 클럭선택, Start-up time
등의 설정
ATmega128의 기본 하드웨어
시스템 클럭
ATmega128의 기본 하드웨어
클럭 시스템
 CPU Clock



I/O Clock



플래쉬 인터페이스의 동작을 제한한다.
ASY Clock



주요 I/O모듈에 의해 사용(타이머/카운트, SPI, USART)
외부인터럽트 모듈에 의해서도 사용된다.
FLASH Clock


AVR 동작을 고려한 시스템의 일부로써 동작
CPU 클럭을 정지시키면 범용동작과 계산을 수행하지 못 한다.
비동기 타이머/카운트가 32KHz 클럭 크리스탈로부터 직접 클럭 동
작을 하도록 해준다.
칩이 슬립모드에 있을 때 실시간 카운터처럼 사용할 수 있다.
ADC Clock

ADC 결과의 정확도를 높이기 위하여 CPU와 I/O클럭을 정지시켜서
디지털 회로에서 발생하는 노이즈를 감소시켜준다.
ATmega128의 기본 하드웨어
클럭 소스

외부 크리스탈, 세라믹레조레이터, 외부 저주파 크리
스탈, 외부 RC오실레이터, 내부 RC 오실레이터, 외부
클럭
시스템 리셋





Power-on Reset
External Reset
Watchdog Reset
Brown-out Reset
JTAG AVR Reset
ATmega128의 회로 구성
ATmega128의 회로 구성
ISP 회로도
ATmega128의 개발 TOOL
WinAVR의 AVR-GCC 컴파일러

WinAVR의 MFile 개발툴을 이용한 컴파일 옵
션 설정

시작 → 모든 프로그램 → WinAVR → MFile
ATmega128의 개발 TOOL
Main file name

Main함수가 있는 C언
어 소스 파일 이름을 입
력(예, main)
ATmega128의 개발 TOOL

MCU type

Output format


Optimization level


ihex (Inter HEX) 선택
‘s’로 설정
Debug format

AVR-ext-COFF
(AVR Studio 4.7+, VMLAB S.10+)
ATmega128의 개발 TOOL
Mfile 개발툴을 이용한 다운로드 옵션 설정
ATmega128의 개발 TOOL
WinAVR을 이용한 AVR 프로그램 개발 방법
실습 보드
디바이스 마트
(www.devicemart.co.kr)
AB-TB128(가격:1만원)
향후 세미나 일정
1
날짜
주제
11월 8일
Mega128 구조 및 TOOL
2
11월 22일
I/O 및 Timer/Count, PWM
3
11월 29일
A/D CONVERTER
비고
장소 : 공대 다동
A9-211
발표자 : 유홍선
4
12월 6일
USART, SPI, TWI 직렬통신
http://cafe.naver.com/roboticslab.cafe