[Maker] ATmega128 알아보기 -00.특징과 핀정보
RC카를 만들려고 포스팅을 시작하니 선 포스팅 해야 할게 한두개가 아니네요.ㅜㅜ
모든 전자제품에는 chip이 들어갑니다. 흔히들 말하는 사람으로 치면 뇌, 컴퓨터에서는 cpu같은 개념입니다.
제가 사용할 chip은 ATmega128이라는 제품입니다. 가격대비 기능이 많고 참고 서적, 트레이닝 키트도 많아 이쪽 분야를 공부하기에 딱 좋은 제품입니다.
데이터 시트를 보면 이런 특징이 있습니다.(데이터 시트란 chip의 설명서입니다. )
Atmega128 Datasheet
ATmega128/ATmega128L 의 특징
※ATmega128L은 ATmega128의 경량 버전으로 더 낮은 전압에서 작동한다.
AVR은 8-비트 RISC(Reduced Instruction Set Computer) 구조로 명령어가 간단하며, 동작 속도가 빠르고, 1MHz당 약 1MIPS(Million Instruction Per Second)의 성능을 보인다. AVR시리즈중 대표적칩인 ATmega128의 특징은 다음과 같다.
1. 향상된 RISC 구조
- 133개의 강력한 명령어들이 대부분 단일 클럭으로 실행된다
- 32 X 8 범용 동작 레지스터 + 주변 콘트롤 레지스터로 구성
- 16MHz 환경에서 16 MIPS 이상의 성능
- 2 사이클 곱셈기를 칩에 내장
2. 프로그램과 데이터 메모리
- 128K Byte In-System 프로그램 플래쉬 메모리 (내구성 : 최대 10,000번 쓰고 지울 수 있다.)
- 칩에 내장된 부트 프로그램으로 In-System 프로그래밍 가능
- 4K Byte EEPROM (내구성 : 최대 100,000번 쓰고 지울 수 있다.)
- 4K Byte 내장형 SRAM
- 최대 64K Byte 이상의 외부 메모리 영역을 갖는다.
3.JTAG (IEEE std. 1149.1 호환) 인터페이스 제공
- JTAG 인터페이스로 플래쉬, EEPROM, 퓨즈와 락비트를 프로그래밍 가능하다.
4.주변 사양
- 프로그래밍 가능한 53개의 Input / Output
- 외부 인터럽트 Ext. INT 8개
- 두 개의 8-bit Timer/Counters / 두 개의 16-bit Timer/Counters
- 두 개의 8-bit PWM 채널 / 6개의 16-bit PWM 채널과
- 8 채널, 10bit ADC
- 두 개의 프로그램 가능한 직렬 USART 제공
- 마스터 / 슬레이브 SPI 직렬 인터페이스
- 칩 내장형 아날로그 비교기
5.독특한 마이크로콘트롤러 사양
- 파워온 리셋 과 프로그램가능한 Brown-out 감지기
- 6가지 슬립모드 : 아이들, ADC 노이즈 감쇄기, 저전원, 무전원, 대기상태, 연장 대기상태
- 모든 Pull-up 설정해제
6.I/O 와 패키지
- 53개의 프로그램 가능한 I/O 라인 , 64개의 TQFP와 64패드 MLF
7.동작 전원/ 속도
- ATmega128L : 2.7V ~ 5.5V / 0 ~ 8MHz
- ATmega128 : 4.5V ~ 5.5V / 0 ~ 16MHz
사용 할 칩의 실제 핀배치도를 보면

기본적으로 모든 핀은 단순 입출력이 가능하게 설계되어 있습니다.
8.ATmega128 핀구조
- RESET(20) : 초기화입력(chip 리셋)
- PEN(1) : SPI 시리얼 프로그램 모드를 위한 프로그램 인에블 핀
- VCC(21, 52) : 공급전압
- GND(22, 53) : 접지
- XTAL1(24) : 오실레이터 입력(데이터 다운로딩 때 사용)
- XTAL2 (23): 오실레이터 출력(데이터 다운로딩 때 사용)
- AVCC(64) : PortF의 A/D 컨버터를 위한 전압을 공급하는 핀
- AREF(62) : A/D 컨버터를 위한 아날로그 레퍼런스 핀(외부 전압 측정시 기준이됨)
- PortA(PA7 - PA0, 51 - 44)
PortA는 내부 풀업 저항을 갖는 8-bit의 양방향 입출력 포트
외부메모리를 엑세스하는 경우에는 A7 - A0의 어드레스/D7 - D0의 데이터포트로 사용 - PortB(PB7 - PB0, 10 - 17)
PortB는 내부 풀업 저항을 갖는 8-bit의 양방향 입출력 포트 - PortC(PC7 - PC0, 35 - 42)
PortC는 내부 풀업 저항을 갖는 8-bit의 양방향 입출력 포트
외부메모리를 엑세스하는 경우에는 A8 - A15의 어드레스 출력포트로 사용 - PortD(PD7 - PD0, 25 - 32)
PortD는 내부 풀업 저항을 갖는 8-bit의 양방향 입출력 포트 - PortE(PE7 - PE0, 2 - 9)
PortE는 내부 풀업 저항을 갖는 8-bit의 양방향 입출력 포트 - PortF(PF7 - PF0, 61 - 54)
PortF는 내부 풀업 저항을 갖는 8-bit의 양방향 입출력 포트 - PortG(PG4 - PG0, 33, 34, 43, 18, 19)
PortD는 내부 풀업 저항을 갖는 5-bit의 양방향 입출력 포트
PX0 (추가기능)
- X - 해당 포트 PA ~ PF 까지 가능.
- 0 - 해당포트 핀번호. 전자쪽에서는 0이 1번입니다. PA0,PA1,PA2...........PA7이렇게 표기
- (추가기능)-PWM(ex.속도제어용), ADC(ex.전압측정), RXD/TXD(통신입출력) 등등이 있습니다.
위내용이 제일 기본입니다. 핀들과 센서들을 연결하고 코딩해서 원하는 작품을 만들어 내는것이죠.
다음은 ATmega128 메모리에 관해서 포스팅하겠습니다. 감사합니다.
오! 아두이노인가요?ㅎㅎ 저도 최근에 블루투스 RC카 조립해 봤는데 재밌더라구요.
남자의 취미중하나죠 RC카 ~~ 전 살려다 만들 수 있을것 같아서 시작한것도 있죠~~ 완성 포스팅까지 열심히 하겠습니다. ^_^관심 감사합니다
한글 맞는대 어렵내요 첨접 하는거라서
그럴거 같아요.... ㅋ 그래도 봐주셔서 감사합니다