스마트 컨트롤러 - Atmega 128A데이터 시트와 AVR Studio 세팅
#1. ATmega 128A 데이터 시트
학습목표 - ATmega 128A 데이터 시트에 나와 있는 특징의 주요 내용을 안다.
Intel - CISC/ ATmega - RISC
ATmega128A datesheet 살펴보기
<특징>
RISC(Reduced instruction set computer) 구조
//전통적인 CISC CPU에는 프로그래밍을 돕기 위한 많은 수의 명령어과 주소 모드가 존재했다. 그러나 그중에서 실제로 쓰이는 명령어는 몇 개 되지 않는다는 사실을 바탕으로, 적은 수의 명령어만으로 명령어 집합을 구성한 것이 RISC이다. 그래서, RISC는 CISC보다 구조가 더 단순하다. 복잡한 연산도 적은 수의 명령어들을 조합하는 방식으로 수행이 가능하다.
- 133가지의 명령어가 있다. RISC방식임으로 이것들을 조합하여 사용할 수 있다.
대부분이 단번에 실행된다.
//General Purpose Register - GPR, 범용레지스터(기억용 메모리)
//Peripheral control register - 주변 제어 레지스터
- 범용레지스터 32 X 8, 8bit GPR가 32개와 주변 제어 레지스터가 있다.
- 16MHz, 초당 16만개의 명령어 처리
//MIPS million instruction per second
- 내장 2클럭 곱셈기
높은 내구성 비휘발성 메모리 구역
//비휘발성(non-volatile) - 전원 공급을 중지하여도 메모리가 사라지지 않는 성질
- 자체로 프로그램 삽입이 가능한 플래쉬 메모리
//하드 드라이브에는 저장된 내용을 읽는 header가 있는데 하드 드라이브를 읽을 때 이 헤더가 HDD가까이 이동하게 된다.
//Flash는 SSD가 응집되어 있는 것이다.
#2. ATmega 128A 데이터 시트
학습목표 - ATmega 128A 데이터 시트에 나와 있는 특징의 주요 내용을 안다.
//SSD 사용 시 전기 소모가 줄고 외부충격에 대한 안정성도 높아진다.
//EEP ROM - Electronically Erasable Program ROM
// Flash는 읽을 때 블록 단위로 처리한다. 하지만 HDD는 물리적인 운동으로 메모리를 읽는 반면 flash는 전기적인 신호로 메모리를 읽기 때문에 flash가 처리속도가 빠르다.
// EEPROM은 처리속도가 빠르나 가격이 비싸다. EEPROM은 프로그램을 집어 넣을 때만 사용할 수 있다.
- 4kbytes EEPROM
- 4kbytes 내부 SRAM
- 만 번까지 flash 메모리를 지울 수 있다.(읽는 것은 상관없다.)/EEPROM은 10만번.
- 자가적으로 firmware를 업데이트 할 수 있다.
- 64kbytes의 추가적인 외부 메모리를 달 수 있다.
- 프로그램 코드를 볼 수 없게 보안을 걸어 놓았다.
// Reverse Engineering 만들어 놓은 제품을 분해하여 분석한 후 제조하는 것
- SPI 인터페이스 -> CPU의 내용을 볼 수 있다.
주변 특징
- 8bit Timer/Counter가 2개 있다.
- 2개의 16bit Timer/Counter가 2개 있다.
// Timer/Counter에 대해서는 다음에 언급하기로 한다.
- Real time Counter가 있다.
- 2개의 8bit PWM(고성능)이 있다.
- 6개의 2 - 16bit PWM(저성능)가 있다.
- 출력 비교 장치가 있다.
- 8개 채널의 10bit ADC
- Byte를 기본으로 한 2개의 TWI
//TWI - Two-wire Interface
- 2개의 프로그램 가능한 USART
- SPI를 지원한다.
- 내부 oscillator와 프로그램을 할 수 있는 watchdog
// Watchdog와 CPU를 연결하여 watch도구에 리셋을 입력할 수 있는 기능을 넣어두고 문제가 발생 시 watchdog가 CPU를 리셋 시킨다.
#3. AVR Studio 설치 및 주소 상수를 활용한 초기화
학습목표 - AVR Studio를 설치하고 주소 상수를 활용하여 실수 값을 초기화 할 수 있다.
** AVR Studio 설치
실습 - 주소 상수를 활용한 초기화)
지난 시간 변수 값을 초기화와 관련한 수업(2/27)에서 썼던 소스를 연다.
float 변수를 만들어서 주소 상수를 활용하여 변수 값을 초기화 시켜보자!
//fP = 0012FF28
1. 주소 상수를 넣어 초기화 시키는 방법
2. #define에 주소 상수를 넣어 초기화 시키는 방법
3. 포인터를 활용하여 초기화 시키는 방법
#4. AVR Studio setting
학습목표 - AVR Studio setting 후에 ATmega에 연결하여 기본 설정을 할 수 있다.
USB port는 컴퓨터 본체에 전원 장치 또한 연결 시켜 준다.
이제 AVR Studio 4를 세팅해 준다.
//port를 연결한 후 뽑을 때 뽑히지 않는다고 흔들게 되면 보드가 빠지거나 망가질 수 있으니 바로 뽑아야 한다.
//핀 또한 적혀져 있는 핀에 일치하게 꼿지 않으면 보드가 나가게 된다.
'Busan IT > 스마트 컨트롤러' 카테고리의 다른 글
매크로 함수 (0) | 2015.03.07 |
---|---|
ATmega128A의 메모리 구조(I/O 레지스터) 헤더파일 생성 및 #if (0) | 2015.03.05 |
발광다이오드에 불 켜기 (0) | 2015.03.04 |
ATmega128A Datasheet(특징 및 메모리)와 WinAVR설치 (1) | 2015.03.03 |
ATmega12A 소개, 주소상수를 활용한 초기화, #define (0) | 2015.02.27 |