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의 핀 구성 내부적으로 풀업된 8비트 양방향 병렬 포트 VCC GND PORT A(PA7..PA0) 내부적으로 풀업된 8비트 양방향 병렬 포트 외부 데이터 메모리를 액세스하기 위한 데이터 버스 및 하위 어드레스 버스로 사용됨 PORT B(PB7..PB0) PORT C(PC7..PC0) 외부 데이터 메모리를 액세스하기 위한 16비트 어드레스 중에서 상위 8비트 어드레스 버스로 사용
ATmega128의 핀 구성 PORT D(PD7..PD0) PORT E(PE7..PE0) PORT F(PF7..PF0) 내부적으로 풀업된 8비트 양방향 병렬 포트 PORT E(PE7..PE0) PORT F(PF7..PF0) A/D 컨버터의 입력포트 PORT G(PG4..PG0) RESET 리셋 입력 핀으로서 50ns이상의 Low Lever 입력이 지속되면 리셋이 발생한다.
ATmega128의 핀 구성 XTAL1 XTAL2 AVCC AREF PEN 내부 클럭 발생 증폭회로의 입력 신호 내부 클럭 발생 증폭회로의 출력 신호 AVCC A/D 컨버터의 전원 입력핀 ADC가 사용된다면 LOW-PASS필터를 경유하여 VCC와 연결 AREF A/D 컨버터의 레퍼런스 전압 핀 PEN SPI 활성화를 시키는 프로그래밍 인에이블 핀으로서 파워 온 리셋시 LOW로 유지 함으로서 SPI활성화 상태가 된다.
ATmega128의 내부 구조
ATmega128의 내부 구조
ATmega128의 메모리 구조
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) 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 I/O Clock FLASH Clock ASY 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의 회로 구성
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) 선택 Optimization level ‘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 장소 : 공대 다동 A9-211 발표자 : 유홍선 2 11월 22일 I/O 및 Timer/Count, PWM 3 11월 29일 A/D CONVERTER 4 12월 6일 USART, SPI, TWI 직렬통신
Thank You http://cafe.naver.com/roboticslab.cafe