• Feed
  • Explore
  • Ranking
/
/
    ATmega128A

    ATmega128A Datasheet 맨 앞장 읽기

    이제 두 장 읽었다고...?
    박
    박형진
    2025.03.16
    ·
    8 min read

    Introduction

    • 저전력 CMOS 8bit Microcontroller.

      • RISC Architecture

    • 대부분의 명령을 Single Clock Cycle에 수행.

      • 이를 통해 1MIPS per MHz에 가까운 성능을 낸다.

    • System Designer가 전력 소모와 처리 속도 사이에서 최적화 가능토록 했다.

    특징

    • 고성능, 저전력 AVR 8-bit Microcontroller

    • 진보된 RISC Architecture

      • 133개의 강력한 Instructions

        • 대개 1 Clock Cycle에 수행 가능.

      • 32 * 8 일반목적 Register & 주변 제어 Register

      • Fully Static Operation

        • SRAM을 이용하여 정적 동작이 가능하단 의미.

        • 이를 통해 저전력을 달성한 것.

      • 16MHz에서 최대 16MIPS의 처리량

        • Single Clock Cycle에 처리 가능한 명령만 실행한다면 그렇겠네!

      • On-Chip 2-cycle Multiplier

        • 내장 2-cycle 곱셈기

          • 아하! 곱셈이 하드웨어적으로 지원되는구나!

    • 내구성 높은 비휘발성 메모리들

      • 128Kbytes의 프로그래밍 가능한 Flash Program Memory

        • 보조기억장치 역할!

      • 4Kbytes의 EEPROM

        • Embedded System에 필요한 Read-Only 값 담아두라고 있는 물건.

      • 4Kbytes의 SRAM

        • 주기억장치!

      • 기록/삭제 사이클

        • Flash Memory는 10,000회

        • EEPROM은 100,000회

      • 섭씨 85도에서 20년, 섭씨 25도에서 100년 간 데이터 유지 가능.

        • Note) 제조사에서, 1PPM 미만의 데이터 손실을 '데이터 유지'라고 칭한 것.

      • 독립적인 Lock Bits로 Boot Code Section 설정 가능.

        • Lock Bits: 특정 메모리 영역에 대한 RW 권한을 설정하는 비트.

          • 이 비트는 일반 코드 영역과 독립적인 곳에 존재함.

        • Lock Bit를 잘 설정하면 Application Code를 업데이트하더라도 Boot code section은 건드리지 못하도록 할 수 있다는 의미.

      • 64Kbytes의 외장 메모리 추가 가능.

        • 왜 64K냐고? 총 16개의 핀을 Address 지정 핀으로 쓸 수 있어서!

          • 2^16...

        • 요로코롬...

          • PA0-PA7 -> A0-A7

          • PC0-PC7 -> A8-A15

      • Programming Lock 기능

        • 이 또한 Lock Bit로 설정 가능하다.

          • 플래시 메모리를 잠그거나

          • 부트 섹션을 일반 코드로는 못 건드리게 잠그거나

          • Application Code가 Boot Code 수정 못하게 잠그거나...

        • Programming Lock은 아래 목적을 위해 존재하는 보안 기능이다.

          • 펌웨어 복제 방지

          • EEPROM에 존재하는 보안이 필요한 데이터의 보호

            • 여기에 Key 같은 게 들어있을 수도 있으니까?

          • 부트로더 보호

        • Programming Lock은, 풀고 싶으면 Chip Erase로 Chip을 다 지워야 한다.

      • ISP를 위한 SPI Interface

        • ISP, In-System Programming.

          • 메모리를 보드에 장착한 후에 그 내용물을 변경하는 것을 말함.

    • JTAG Interface 지원(IEEE std. 1149.1)

      • 과거부터 쓰인 ISP 방식은 칩에 프로그램 업로드만 가능했다.

      • 하지만 JTAG을 쓰면 코드를 한줄한줄 디버깅할 수 있다!

        • 디버깅 전용!

      • Boundary Scan 지원

        • 회로 내의 Interconnection을 테스트하는 방법을 뜻함.

      • 광범위한 On-Chip 디버깅 지원

      • JTAG으로 Flash, EEPROM, Fuse 및 Lock Bit 설정 가능.

        • Fuse Bits: 칩의 동작 모드 같은 것을 설정하는 비트.

    • Atmel QTouch 라이브러리 지원

      • 정전식 터치 버튼, 슬라이더, 휠 같은 것 지원한다는 얘기.

      • Atmel QTouch, QMatrix 가지고 있다.

        • QTouch: 싱글 채널 터치 감지.

        • QMatrix: 멀티 채널 터치 감지.

      • 최대 64개의 감지 채널 구성 가능.

    • 부가 요소

      • 2개의 8-bit 타이머/카운터(TC)

        • TC0 / TC2

        • 분리된 Prescaler 사용 가능.

          • Prescaler: 타이머에 공급되는 클럭의 속도를 조절하는 장치. '분주기'

          • 가령 16MHz에서, 분주비를 1:4로 하여 클럭을 받는다면 4MHz의 Clock을 받게 된다.

          • TC1, 2, 3는 같은 Prescaler 모듈을 공유하지만, 다른 Prescaler Setting을 사용할 수 있다고 한다.

        • 각각을 비교할 수 있는 모드가 있다.

      • 2개의 16-bit 타이머/카운터(TC)

        • TC1 / TC3

        • 역시 분리된 Prescaler 사용 가능하다.

        • 비교 모드, 캡처 모드도 있다.

      • 독립된 Oscillator 가진 RTC

        • 이거 은근 다행이네?

      • 2개의 8-Bit PWM 채널

        • Pulse-Width Modulator

      • 6개의 2-16비트 사이에서 해상도 조절 가능한 PWM 채널

      • 출력 비교기

      • 8-Chnnel, 10-bit ADC(Analog-Digital Converter)

        • 8개의 Single Ended 채널

        • 7개의 Diffrential 채널

        • 2개의 1x, 10x, 200x 중 하나의 Gain을 선택 가능한 Diffrential 채널

      • Byte 기반 2-wire serial interface

      • Dual Programmable Serial USART

        • USART: CLK를 이용하는 직렬통신 방식. 빠르다!

      • Master/Slave SPI Serial Interface

      • Programmable Watchdog Timer

        • 칩에 Oscillator 포함!

      • On-Chip 아날로그 비교기

    • Microcontroller로서의 특수 기능

      • Power-on Reset : 전원이 공급되면 리셋된다!

        • Initial State에서 작동을 시작하도록 하는 것!

      • Programmable Brown-out Detection

        • '전류 부족'이라는 위험 조건을 탐지하는 것.

        • BOD가 On 상태이면, 전류 강하 등 위험 상황 시 MCU를 리셋한다.

      • 보정되어 있는 내장 RC Oscillator

      • 내/외장 인터럽트 소스

      • 6가지의 Sleep Mode.

        • Idle / ADC Noise Reduction / Power-save / Power-down / Standby / Extended Standby

      • 소프트웨어적인 Clock 주기 선택

      • Fuse Bit로 설정 가능한 ATmega 103 호환 모드

        • 언젠가... 써 볼까...?

      • 전역 Pull-up disable

        • 0도 아니고 1도 아닌 애매한 전압 수준이 있다. 이 상태를 Float 상태라고 한다.

        • 이 애매한 상태를 1로 잡아당겨버리는 것을 Pull-up한다고 한다.

          • 애매하면 그냥 1로 만들어버리는 장치가 '풀업 저항'

        • 이거 설정하는 거.

    • I/O 및 Packages

      • 53개의 설정 가능한 I/O Line들

      • 패키징은 64-Lead TQFP 버전과 64-Pad QFN/MLF 버전이 있다.

        • TQFP: Thin Profile Plastic Quad Flat Package

          • 얇은 패키지!

          • 핀(Lead)들이 네모난 칩 밖으로 삐져나와 있음!

            • 실력만 괜찮다면 인두로 땜질 가능?

        • QFN/MLF: Quad Flat No-Lead/Micro Lead Frame Package

          • 핀이 네모난 칩 밖으로 안 삐져나와 있거나(패키징 아래에 있거나),

          • 아주 살짝, 미세하게 삐져나와 있음!

            • 땜질용은 아닌듯?

    • 동작 전압

      • 2.7-5.5V

    • 동작 속도

      • 0-16MHz







    - 컬렉션 아티클