2 AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128.

Slides:



Advertisements
Similar presentations
1 ‘ 우리나라의 주요공업 ’ - 정도웅, 주민혁, 안수진, 백경민, 엄다운, 박경찬 -.
Advertisements

Family 의 개요 의 외부 Pin 기능과 내부 기능 Memory 구조 Timing 2 장 8051 의 구조.
AVR 응용 라인트레이서 AVR 소개 및 라인트레이서조립 2012 – AVR 응용 라인트레이서 부산대학교 기계공학부 생산자동화 실험실 박사과정 조광호.
Understanding of Ubiquitous & Computers Plus
마이크로 컨트롤러 Microcontroller.
마이크로프로세서설계 - 3 ATmega128 마이크로컨트롤러의 특징 LED 실습 1
AVR.
Project Goal..! Milestone Role Division Achievement Result
공부할 내용 조상들이 살던 곳 자연과 잘 어울리는 한옥 지방에 따라 서로 다른 집의 모양 섬 지방의 집
사랑, 데이트와 성적 자율성 :데이트 성폭력!!! 성폭력예방교육 전문강사 / 여성학 전공 신 순 옥.
One Step Closer - AVR ATMEGA128 -
PIC는 우리의 친구 한국정보통신대학교 디지털미디어연구소.
2장 마이크로프로세서 구성요소 Slide 1 (of 19).
마이크로프로세서 메모리 및 입출력장치 인터페이스
하드웨어 3 : RAM.
컴퓨터 과학 개론 √ 원리를 알면 IT가 맛있다 컴퓨터 과학도를 위한 첫 전공서 ehanbit.net.
아두이노 프로그래밍 1일차 – Part2 아두이노 사양 강사: 김영준 목원대학교 겸임교수.
SMS를 이용한 오토바이 도난방지장치 5조 김성중 노광훈 최영미.
제어기술 소개 목표 : 제어기의 종류, 제어 방식 등을 살펴본다. 주요내용 제어기의 종류 제어방식 : 시퀀스, 피드백, 등.
제 1 장 마이크로프로세서의 기본동작.
CPU의 이해 CPU란 무엇인가?
3장. 컴퓨터의 기억장치 학번 : 이름 : 김현화.
3장 MPU 내부구조 Slide 1 (of 28).
임베디드 하드웨어 Lecture #6.
자동제어 실험(2) 라인트레이서 제어.
ATmega128 CH 1 Atmega 128 Board CodeVision.
DSP와 TMS320F28x의 이해.
6장. 기 억 장 치 Lecture #6.
UNIT 06 JTAG Debugger 로봇 SW 교육원 조용수.
Introduce to ATmega128 & Codevision
1. 아두이노란 무엇인가? - 스마트 폰으로 제어하는 아두이노 -.
출처: IT CookBook, 컴퓨터 구조와 원리 2.0 제 12장
직업 형태 변화 과정 일자리의 변화 ERP (Enterprise Resource Planning) 구분 18~19 세기
Arduino uno의 Hardware 구성부품의 종류와 그 용도.
아두이노와 Node.js를 이용한 IoT 프로젝트
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
1 마이크로프로세서의 원리 마이크로컨트롤러 AVR ATmega128.
AVR - Chapter 6 황 지 연.
UNIT 02 Microprocessor 로봇 SW 교육원 조용수.
6 중앙처리장치의 조직과 기능 IT CookBook, 컴퓨터 구조와 원리 2.0.
Chapter 06 명령어와 번지지정 방식.
AVR Studio 소개 1. AVR Studio의 다운로드 - AVR Studio 관련 홈페이지 -
Presentation 정보통신과 6조.
DK-128 ADC 실습 아이티즌 기술연구소
3주 컴퓨터구조.
8086 프로세서의 구조 및 동작 방식 시스템 프로그래밍 - Lecture #2 신라대학교 컴퓨터공학과 시스템 프로그래밍.
4족 로봇 삼식이팀 박명대.
ATmega128의 구조 및 TOOL의 이해 Robotics_LAB 발표자 : 유 홍 선.
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소 김태성 연구원
DK-128 실습 EEPROM 제어 아이티즌 기술연구소
제 2장 컴퓨터동작의 기본 개념.
임베디드 소프트웨어 설계.
10장. 중앙처리 장치의 명령어 다루는 내용 어셈블리 프로그램의 이해 인터럽트(interrupt) 명령어 세트 주소 지정 방식.
CHAPTER 03. 컴퓨터 구조 컴퓨터 시스템의 구성과 동작 원리_컴퓨터 시스템에 대한 근본적 이해
ATmega128 기초와 응용 타이머/카운터.
Computer System Architecture
6-1 중앙 처리 장치의 내부 구조 6-2 명령(instruction) 6-3 주소 지정 방식
DK-128 실습 타이머카운터 사용법 아이티즌 기술연구소
3-16. 디지털 시계.
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
프로젝트 진행내용.
Lecture #6 제5장 기억장치 (1).
9장. 중앙처리 장치의 조직과 기능 다루는 내용 컴퓨터 본체에서 CPU의 위치 살펴보기 CPU의 성능, 기능, 조직
작동 원리 Keypad 박민호.
DK-128 직렬통신 실습 아이티즌 기술연구소
10장. 컴퓨터 구조에 대한 세 번째 이야기 작성자: 윤성우.
임베디드 하드웨어 Lecture #6.
Lecture 7 7-Segment LED controller using u-controller
DK-128 실습 내부 EEPROM 제어 아이티즌 기술연구소 김태성 연구원
Presentation transcript:

2 AVR ATmega128 소개 마이크로컨트롤러 AVR ATmega128

학습목표 다양한 AVR 패밀리와 소자 특징을 알아보고, 제어 환경에 따라 AVR 소자를 선택하여 개발할 수 있는 융통성을 이해할 수 있다. ATmega128 내부 구조에서 메모리 공간, I/O 공간의 프로그램과 데이터를 처리하기 위한 특수 레지스터, 범용 레지스터의 역할을 이해할 수 있다. ATmega128 내부에 포함된 명령어 인출과 실행 절차를 알아보고, 명령어 유형을 통해 동작을 이해할 수 있다. ATmega128이 장치를 쉽게 제어할 수 있도록 하기 위해 내장한 메모리와 주변 장치의 특징을 개략적으로 이해할 수 있다.

6. ISP(In System Programming) 목 차 1. AVR 개요 2. ATmega128 특징 3. ATmega128 내부 구조 4. ATmega128 명령어 실행 5. ATmega128 메모리와 주변 장치 6. ISP(In System Programming) 3

Section 01 AVR 개요 AVR 패밀리

Section 01 AVR 개요 8비트 megaAVR 패밀리 소자(요약) 8비트 tinyAVR 패밀리 소자(요약)

Section 02 ATmega128 특징 진보된 RISC 구조 비휘발성 프로그램과 데이터 메모리 133개의 강력한 명령어, 1클록 사이클에 실행 32개의 범용 레지스터와 주변 장치 제어 레지스터 16[MHz]에서 16[MIPS]까지 성능이 나올 수 있음 2클록 사이클이 소요되는 곱셈기를 칩에 내장 비휘발성 프로그램과 데이터 메모리 128[Kbyte]의 ISP(In System Programming)로 재프로그램 가능한 플래시 메모리 내장 : 10,000회 읽기/쓰기 가능 4[Kbyte] EEPROM : 100,000회 읽기/쓰기 가능 4[Kbyte] SRAM 내장 64[Kbyte]까지 외부에 추가하여 사용할 수 있는 메모리 공간 SPI 인터페이스를 이용한 ISP(In System Programming)

Section 02 ATmega128 특징 주변 장치 2개의 8비트 타이머/카운터 : 별도의 프리스케일러와 비교 모드 동작 2개의 16비트 타이머/카운터 : 별도의 프리스케일러, 비교 모드, 캡처 모드 동작 실시간 타이머 카운터 6개의 PWM 채널 출력 비교 모듈레이터 아날로그 비교기 10비트 A/D 변환기 TWI(Two-wire Serial Interface) 직렬 인터페이스 2개의 USART SPI 직렬 인터페이스 와치독 타이머

Section 03 ATmega128 내부 구조 메모리 프로그램 카운터(PC) 명령어 레지스터(IR) 명령어 디코더 플래시 프로그램 메모리 데이터 메모리(SRAM) EEPROM 프로그램 카운터(PC) 명령어 레지스터(IR) 명령어 디코더 범용 레지스터 기타 주변 장치 [ ATmega128의 내부 구조 ]

Section 03 ATmega128 내부 구조 플래시 프로그램 메모리 프로그램 저장 비휘발성(Non-volatile) 메모리 전원이 없어도, 저장된 데이터는 변경되지 않음 64[Kword](128[Kbyte]) 크기, 10,000회 쓰고 읽기 다운로더 장치로 다운로드 부트 프로그램부 : 부팅에 필요한 기본 정보 응용 프로그램부 : 워드 단위(16비트 크기)의 명령어로 구성된 프로그램 [ 플래시 프로그램 메모리 맵 ] 프로그램 카운터(PC) 플래시 프로그램 메모리 공간을 가리킴 명령어를 차례로 인출하면서 응용프로그램 실행

Section 03 ATmega128 내부 구조 명령어 레지스터(IR) 프로그램 카운터가 지칭한 곳에서 명령어 레지스터로 명령어 인출 명령어에는 명령코드, 오퍼랜드, 연산 결과 저장 위치 필드를 가짐 명령어 디코더 명령어 레지스터의 명령코드를 디코딩하여 제어 신호 생성 ALU는 명령코드에 해당되는 연산동작을 수행하게 함 제어 신호는 연산 대상이 되는 오퍼랜드가 ALU에 전달되게 함 제어 신호는 연산 결과를 저장할 수 있게 함 스택 포인터 스택은 임시 데이터, 로컬 변수, 호출된 함수의 복귀 주소 등을 저장 스택 포인터(Stack Pointer)는 스택의 TOP을 저장하는 특수 레지스터 스택에 데이터가 저장되면, 스택 공간은 커짐 스택 포인터의 주소는 높은 값에서 낮은 값으로 감소 PUSH 명령어 : 데이터가 스택에 저장. 이때 스택 포인터는 1씩 감소 POP 명령어 : 데이터를 스택의 TOP에서 꺼냄. 이때 스택 포인터는 1씩 증가

Section 03 ATmega128 내부 구조 범용 레지스터 데이터 레지스터 주소 레지스터 레지스터 R0~R25 데이터를 저장하는 레지스터 메모리 주소 0x00~0x19에 해당 주소 레지스터 레지스터 R26~R31 레지스터 간접 주소방식을 위한 레지스터 메모리 주소 0x1A~0x1F에 해당 [ 범용 레지스터 파일 ]

Section 03 ATmega128 내부 구조 데이터 레지스터 사용 사례 변수 x를 데이터 레지스터 r24로 활용한 사례

Section 03 ATmega128 내부 구조 주소 레지스터 X, Y, Z 주소 레지스터 Z 활용 사례 데이터 메모리에 대한 주소를 가짐 두 개의 레지스터를 묶어, 주소 레지스터 X, Y, Z는 16비트 레지스터 주소 레지스터 Z 활용 사례 메모리 0x100 위치에 데이터 0xAB를 저장 동작 Z-레지스터에 메모리 주소 0x100을 넣음(r310x01, r30 0x00) r24에 0xAB를 넣음 st Z+, r24 동작으로 메모리 주소 Z 위치에 r24 값을 기록, 동작 후 Z 값은 1 증가

Section 03 ATmega128 내부 구조 데이터 메모리(SRAM) 변수는 프로그램이 수행되면서 변경될 수 있음 모드 일반 모드 : ATmega103과 호환되지 않는 모드 내부 SRAM을 4,096[byte] 사용 가능 I/O 명령어로 64개 I/O 레지스터 접근 확장된 160개의 I/O 레지스터를 갖고 ld, store 명령으로 접근 ATmega103과 호환모드 : 초기에 많이 사용 내부 SRAM을 4,000[byte]만 사용 가능 [ ATmega128 데이터 메모리(SRAM) 구성]

Section 03 ATmega128 내부 구조 I/O 공간 in, out의 I/O 명령어가 가리키는 주소는 I/O 공간 ld, st 명령어가 사용하는 주소는 데이터 메모리 공간 64개 I/O 레지스터 in, out 명령으로 참조할 때는 I/O 공간 : 0x00∼0x3F ld, st 명령으로 참조할 때는 데이터 메모리 공간 : 0x20~0x5F 확장된 I/O 공간은 in, out 명령이 아닌 ld, st 명령으로만 참조 EEPROM(Electrically Erasable and Programmable ROM) 4Kbyte의 EEPROM을 내장 비휘발성 메모리로서, 전원이 공급되지 않아도 데이터는 계속 값을 유지 플래시 프로그램 메모리는 프로그램이 다운로드되는 비휘발성 메모리 EEPROM은 프로그램이 수행되는 동안에 데이터를 기록하여 활용 데이터 기록을 위해 SRAM 보다 더 많은 클록이 필요

Section 03 ATmega128 내부 구조 상태 레지스터(SREG, Status Register) 가장 최근에 실행된 산술연산의 결과 정보를 저장 이 결과에 따라 다음에 실행되는 프로그램의 흐름을 제어 명령어에 영향 인터럽트가 발생했을 때 상태 레지스터를 하드웨어가 자동으로 저장, 복귀 되지 않음 소프트웨어적으로 저장, 복귀 동작을 수행해야 함

Section 03 ATmega128 내부 구조

Section 04 ATmega128 명령어 실행 명령어 인출 명령어 실행 ❶ 명령어 분석 ❷ ALU에 오퍼랜드 인가 프로그램 카운터(PC)가 가리키는 명령어가 명령어 레지스터(IR)로 인출 프로그램 카운터의 값은 명령어 레지스터 크기만큼 증가 명령어 실행 ❶ 명령어 분석 ❷ ALU에 오퍼랜드 인가 ❸ ALU 연산 실행 및 결과 기록

Section 04 ATmega128 명령어 실행 명령어 인출과 실행 한 클록에 수행되는 명령어 실행 동작

Section 04 ATmega128 명령어 실행 명령어 유형 산술연산 및 논리연산 명령어 통상 명령어들은 1 클록 소요 결과를 저장하기 위해 한 개의 8비트 레지스터가 사용 ADIW 명령어 경우는 2 클록 소요 2개의 레지스터(16비트 워드 단위)에 결과를 기록해야 함 [ 산술 및 논리연산 명령어와 동작 ]

Section 04 ATmega128 명령어 실행 데이터 이동 명령어 레지스터와 레지스터 : 보통 1 클록 소요 레지스터에 즉시 값 : 보통 1 크록 소요 레지스터와 메모리 : 보통 2 클록 소요 레지스터와 I/O 공간 : 보통 1 클록 소요

Section 04 ATmega128 명령어 실행 프로그램 흐름제어 명령어 분기되지 않을 경우 프로그램 흐름 분기되는 명령 PC가 가리키는 플래시 프로그램 메모리에서 명령어 인출 PC는 1씩 하드웨어적으로 증가하면서 연속적으로 명령어를 수행 분기되는 명령 분기 명령으로 PC에서 가리키는 주소를 변경 연속적인 명령어의 수행 흐름을 제어

Section 04 ATmega128 명령어 실행 분기 명령어 길이 변위 주소방식 : 1 워드 즉시 어드레싱 모드 : 2 (명령어 길이 + 즉시 주소 길이) [ 프로그램 흐름제어 명령어와 동작 ]

Section 04 ATmega128 명령어 실행 서브루틴 호출과 복귀 RCALL, CALL 명령어에 의한 서브루틴 호출 동작 PC, 명령어 레지스터(IR), 스택(STACK), 스택 포인터(SP)와 연계된 동작 서브루틴이 호출되기 전에 되돌아올 명령어 주소를 스택에 저장 PC의 값은 서브루틴의 시작 주소 k로 바뀜 RET 또는 IRET 명령어에 의한 서브루틴에서 복귀 동작 스택에 저장한 주소로 PC를 복귀 서브루틴 호출 이후의 명령어 실행

Section 04 ATmega128 명령어 실행 CALL 명령어 실행 과정

Section 04 ATmega128 명령어 실행 RET 명령어 실행 과정

Section 05 ATmega128 메모리와 주변 장치 플래시 프로그램 메모리 비휘발성 메모리이기 때문에 전원이 없어도 데이터를 계속 유지 128[Kbyte] 크기의 플래시 프로그램 메모리가 내장 쓰기, 지우기를 반복할 수 있기 때문에 프로그램을 직접 변경하면서 ISP(In System Programming) 방법으로 개발 데이터 메모리(SRAM) 프로그램에서 선언한 변수와 스택을 위해 읽고, 쓰기를 빠르게 수행할 수 있는 주 메모리 휘발성 메모리이므로, 전원이 없으면 데이터 소멸 SRAM 4[Kbyte]를 내장

Section 05 ATmega128 메모리와 주변 장치 EEPROM 프로그램 실행 중 생성된 데이터를 전원 없이도 유지시키기 위해서 EEPROM 사용, 4[Kbyte]의 EEPROM 기록할 때 SRAM, 플래시 프로그램 메모리보다 시간이 오래 걸림 외부 메모리 내장된 4[Kbyte] SRAM이 부족할 경우, 외부 메모리를 추가로 장착할 수 있음 ATmega103 비호환모드일 때는 주소 0x1100부터 사용 가능 양방향 I/O 포트 디지털 전압레벨과 논리값의 대응 최대 53개의 I/O 핀을 사용하여 마이크로컨트롤러 외부의 디지털 전압레벨과 내부의 논리값을 대응 핀의 신호 방향을 출력으로 설정하고, PORTx(x는 A~G) 레지스터에 0 또는 1에 해당하는 논리값을 기록하면, 핀 Pxn(x는 A~G, n은 0~7)은 디지털 전압레벨로 변환되어 신호 출력

Section 05 ATmega128 메모리와 주변 장치 직접구동, 간접구동 간단한 스위칭 소자를 구동할 수 있는 전류로 공급 또는 흡수할 수 있음 단독으로 구동하기 어려운 장치는 스위칭 소자를 추가하여 구동할 수 있음 [ I/O 핀을 이용한 직접 구동과 간접 구동]

Section 05 ATmega128 메모리와 주변 장치 타이머/카운터 8비트 타이머/카운터 타이머/카운터0과 타이머/카운터2 자동 카운팅 동작 TCNTn 레지스터는 카운터에 인가되는 매 클록마다 1씩 증가 4가지 파형 발생 모드 - 정상 모드 - CTC 모드 - 고속 PWM 모드 - 위상 정정 PWM 모드

Section 05 ATmega128 메모리와 주변 장치 비교일치 출력 동작 TCNTn 레지스터와 OCRn(n은 0 또는 2) 레지스터 값을 비교 일치되면 OCn(n은 0 또는 2) 출력 핀의 펄스값을 바꿀 수 있음 모터, 조명 등 다양한 기기에 공급되는 전력을 조절 제어할 수 있음 [ 8비트 TCNTn, OCRn 비교와 OCn 펄스 발생 ]

Section 05 ATmega128 메모리와 주변 장치 16비트 타이머/카운터 타이머/카운터1, 타이머/카운터3 8비트 타이머/카운터와 유사하지만, 다양한 펄스를 생성 각 타이머/카운터에 A, B, C 세 개의 출력 비교 OCRnx(n은 1 또는 3, x는 A~C) 레지스터 TCNTn(n은 1 또는 3) 카운터와 16비트 비교에 의해 조절되는 듀티비 출력 펄스를 OCnx(n은 1 또는 3, x는 A~C) 핀에 만들 수 있음 주 파형 발생 모드 - 정상모드 - CTC 모드 - 고속 PWM 모드 - 위상 정정 PWM 모드 - 위상 및 주파수 정정 PWM 모드

Section 05 ATmega128 메모리와 주변 장치 TCNTn과 OCRnx을 비교하여 OCnx 핀으로 출력하는 펄스 발생 사례 [16비트 TCNTn, OCRnx 비교와 OCnx 펄스 발생]

Section 05 ATmega128 메모리와 주변 장치 직렬 통신 장치 USART 범용 동기/비동기 수신 및 송신기 송수신을 동시에 진행할 수 있는 양방향 통신 프레임을 수신할 때는 반드시 시작 비트(Start bit)부터 시작 특정 레지스터로 통신 속도를 바꿀 수 있음 프레임 비트 수를 5, 6, 7, 8, 9 중 하나로 정할 수 있음(보통 8비트 사용) 프레임과 프레임 사이의 전송이 중지된 정지 비트는 1 또는 2 패리티 검사, 데이터 오버런(Data OverRun) 검사, 프레임 에러 검사 2개의 독립된 USART 장치 송신 완료, 수신 완료, 송신 데이터 비어 있음 인터럽트

Section 05 ATmega128 메모리와 주변 장치 SPI 통신 직렬 주변 장치 인터페이스(SPI, Serial Peripheral Interface) 동기식 데이터 전송 방식 마스터와 슬레이브를 정하여 통신 MOSI, MISO, SCK, /SS 신호 사용 마스터 주관 아래 양방향 통신의 전이중(Full Duplex) 통신 8비트 시프트 레지스터를 이용하여 LSB를 먼저, MSB를 나중에 전송

Section 05 ATmega128 메모리와 주변 장치 TWI 시리얼 통신 마스터와 슬레이브로 단 2가닥 선만을 이용하여 데이터를 전송 클록에 해당되는 SCL(Serial CLock) 신호와 데이터가 이동하는 SDA(Serial DAta) 장치 사이에 연결되는 선이 간단 최대 128개 장치 사이에 데이터 전송 TWI 통신에 사용되는 장치는 고유의 주소를 가짐 최대 400[KHz]의 속도로 데이터를 전송 1990년에 IEEE Std. 1149.1로 표준화된 Boundary-Scan 규격 PCB 또는 PCB 내의 IC 내부를 테스트 IC 내부를 관찰하거나 디버깅할 때도 광범위하게 사용 4개 신호 사용 : TDI, TDO, TCK, TMS

Section 05 ATmega128 메모리와 주변 장치 JTAG 인터페이스로 디버깅 수행 가능 프로그램 카운터, 스택 포인터, 상태 레지스터 등 특수 레지스터 범용 레지스터 내부 주변 장치 레지스터 정보 SRAM 데이터 EEPROM과 플래시 프로그램 메모리 데이터

Section 06 ISP(In System Programming) EPROM 예전 개발자들은 주로 자외선으로 데이터를 소거할 때 사용 자외선으로 데이터 소거 많은 시행 착오 ISP 마이크로컨트롤러를 장착한 PCB에 직접 장착하여 시스템을 개발 프로그램 개발과 하드웨어 디버깅 과정을 한꺼번에 처리 내장된 플래시 메모리에 실행 코드를 직접 다운로드 개발에서 생산까지 소요되는 시간을 단축 [EPROM ]

IT CookBook, 마이크로컨트롤러 AVR ATmega128 Thank You IT CookBook, 마이크로컨트롤러 AVR ATmega128