270 likes | 945 Views
ATmega128 의 구조 및 TOOL 의 이해. Robotics_LAB 발표자 : 유 홍 선. ATmega128 의 특징. 향상된 RISC 구조 32*8 범용 동작 레지스터 + 주변 컨트롤 레지스터로 구성 16MHz 에서 평균적으로 16MIPS 의 속도로 명령어를 처리 133 종의 명령 세트를 가지며 , 1 클럭 사이클에 실행 2 사이클 곱셈기를 칩에 내장. ATmega128 의 특징. 비휘발성 프로그램과 데이터 메모리 128K Byte In-System 프로그램 플래쉬 메모리
E N D
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의 핀 구성 • 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의 메모리 구조 • 프로그램 메모리 • 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) • 각종 I/O 디바이스들을 제어하기 위한 레지스터 • 160 Ext I/O Registers($60~$FF) • ATmega128에 추가된 각종 I/O 디바이스들을 제어하기 위한 레지스터 • 내부 SRAM(0x0100~0x10FF) • 4Kbyte(4096*8bit) • 각종 사용자변수 / 스택 영역으로 사용 • 외부 SRAM(0x1100~0xFFFF) • 사용자가 정해진 4KB보다 더 확장된 데이터메모리를 필요할 때 약 60KB의 외부 데이터 메모리영역으로 이용가능하다. • EEPROM • 4Kbyte 내장 • 비휘발성 • 다른 데이터 메로리 어드레스 영역과는 별개의 영역을 할당 받게 된다. • 단일 바이트로 읽고 쓸 수 있다.
ATmega128의 기본 하드웨어 • 메모리 록 비트와 퓨즈비트 • 메모리 보호 기능을 설정하는 용도로 1바이트 구조의 메모리 록 비트를 가지며, 기본적인 시스템 설정용으로 3바이트 구조인 퓨즈 비트를 가지고 있다. • Flash Lock Bit • Boot Lock Bit • Fuse Bit : 103호환, 클럭선택, Start-up time등의 설정
ATmega128의 기본 하드웨어 • 시스템 클럭
ATmega128의 기본 하드웨어 • 클럭 시스템 • CPU Clock • AVR 동작을 고려한 시스템의 일부로써 동작 • CPU 클럭을 정지시키면 범용동작과 계산을 수행하지 못 한다. • I/O Clock • 주요 I/O모듈에 의해 사용(타이머/카운트, SPI, USART) • 외부인터럽트 모듈에 의해서도 사용된다. • FLASH Clock • 플래쉬 인터페이스의 동작을 제한한다. • ASY Clock • 비동기 타이머/카운트가 32KHz 클럭 크리스탈로부터 직접 클럭 동작을 하도록 해준다. • 칩이 슬립모드에 있을 때 실시간 카운터처럼 사용할 수 있다. • ADC Clock • ADC 결과의 정확도를 높이기 위하여 CPU와 I/O클럭을 정지시켜서 디지털 회로에서 발생하는 노이즈를 감소시켜준다.
ATmega128의 기본 하드웨어 • 클럭 소스 • 외부 크리스탈, 세라믹레조레이터, 외부 저주파 크리스탈, 외부 RC오실레이터, 내부 RC 오실레이터, 외부 클럭 • 시스템 리셋 • Power-on Reset • External Reset • Watchdog Reset • Brown-out Reset • JTAG AVR Reset
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 • ihex (Inter HEX) 선택 • Optimization level • ‘s’로 설정 • Debug format • AVR-ext-COFF (AVR Studio 4.7+, VMLAB S.10+)
Mfile 개발툴을 이용한 다운로드 옵션 설정 ATmega128의 개발 TOOL
ATmega128의 개발 TOOL • WinAVR을 이용한 AVR 프로그램 개발 방법
실습 보드 • 디바이스 마트(www.devicemart.co.kr) • AB-TB128(가격:1만원)
Thank You http://cafe.naver.com/roboticslab.cafe