AVR 마이크로 컨트롤러

AVR microcontrollers
AVR 로고
다양한 구형 AVR 마이크로 컨트롤러: 28핀 협소한 듀얼 인라인 패키지(DIP-28N), 100핀 박형 쿼드 플랫 팩(TQFP-100) 패키지 ATxmega128A1, 8핀 소형 아웃라인(SO-8) 패키지 ATtiny45.
28핀 협소형 듀얼 인라인 패키지(DIP-28N)의 ATMega328P.그것은 Arduino 보드에서 흔히 볼 수 있다.

AVR은 1996년부터 Atmel이 개발한 마이크로컨트롤러 제품군으로 2016년 마이크로칩 테크놀로지에 인수됐다.이것들은 하버드 아키텍처8비트 RISC 싱글칩 마이크로컨트롤러입니다.AVR은 프로그램 스토리지에 온칩플래시 메모리를 사용한 최초의 마이크로컨트롤러 패밀리 중 하나였습니다.이는 당시 다른 마이크로컨트롤러에 의해 사용된 일회성 프로그램 가능 ROM, EPROM 또는 EEPROM과는 다릅니다.

AVR 마이크로 컨트롤러는 임베디드 시스템으로서 많은 애플리케이션을 발견합니다.특히 취미 생활자 및 교육용 임베디드 애플리케이션에서 흔히 볼 수 있으며, 오픈 하드웨어 개발 보드의 많은 Arduino 제품군에 포함되어 널리 알려져 있습니다.

역사

AVR 아키텍처는 노르웨이 공과대학(NTH)[1]의 두 학생 Alf-Egil[2] Bogen과 Vegard [3]Wollan에 의해 고안되었습니다.

Atmel은 AVR이라는 이름은 약자가 아니며 특별한 의미를 갖지 않는다고 말한다.AVR의 창시자들은 "AVR"이라는 용어의 [3]의미에 대해 명확한 답을 내놓지 않았다.그러나 AVR은 Alf와 Vegard의 RISC [4]프로세서의 약자로 일반적으로 받아들여지고 있습니다.이 문서에서 "AVR"을 사용하는 것은 일반적으로 Atmel AVR 마이크로 컨트롤러의 8비트 RISC 회선을 가리킵니다.

원래의 AVR MCU는, 노르웨이 Trondheim의 지역 ASIC 하우스(당시 Nordic VLSI라고 불림)에서 개발되었습니다.현재는 Nordic Semiconductor로,[citation needed] Bogen과 Wollan이 학생으로서 일하고 있었습니다.μRISC(마이크로 RISC)[5]로 알려져 있으며 Nordic [6]VLSI에서 실리콘 IP/빌딩 블록으로 사용 가능했습니다.Nordic VLSI에서 Atmel로 기술이 매각되었을 때 내부 아키텍처는 Atmel의 자회사인 Atmel 노르웨이 Atmel에서 Bogen과 Wollan에 의해 더욱 개발되었습니다.설계자는 IAR Systems의 컴파일러 라이터와 긴밀히 협력하여 AVR 명령 세트가 높은 수준[7]언어를 효율적으로 컴파일할 수 있도록 했습니다.

첫 번째 AVR 회선에는 AT90S8515가 있었습니다.AT90S8515는 40핀 DIP 패키지의 핀 배치는 외부 다중 주소 및 데이터 버스를 포함하여 8051 마이크로 컨트롤러와 동일합니다.RESET 회선의 극성은 반대(8051은 액티브-하이 RESET, AVR은 액티브-로우 RESET)였지만 핀 배치는 동일했습니다.

AVR 8비트 마이크로컨트롤러 아키텍처는 1997년에 도입되었습니다.2003년까지 Atmel은 5억대의 AVR 플래시 마이크로컨트롤러를 [8]출하했습니다.심플한 전자제품 프로젝트를 위해 개발된 Arduino 플랫폼은 2005년에 출시되었으며 AT메가8 AVR 마이크로 컨트롤러가 특징입니다.

디바이스의 개요

AVR은 수정된 하버드 아키텍처 머신으로 프로그램과 데이터는 다른 주소 공간에 나타나는 별도의 물리적 메모리 시스템에 저장되지만 특별한 명령을 사용하여 프로그램 메모리에서 데이터 항목을 읽을 수 있습니다.

기본 패밀리

AVR은 일반적으로 다음과 같이 분류됩니다.

tinyAVR – ATtiny 시리즈

플래시 크기 빈도수.
[MHz]
패키지 SRAM EEPROM 발매년도
0.5 ~ 32 KB 1.6–20 6 ~ 32 핀 패키지 64 ~ 3072 바이트 64 ~ 256 바이트 2016

ATTiny 시리즈는 사용 가능한 주변기기 세트가 제한된 소형 패키지 마이크로컨트롤러를 갖추고 있습니다.단, 여기에는 다음이 포함됩니다.

  • 메가 이상의 주변기기AVR 0 시리즈
  • 이벤트 시스템
  • 개량된 AVRxt 명령어 세트, 하드웨어 복수

Mega AVR –AT메가 시리즈

플래시 크기 빈도수.
[MHz]
패키지 SRAM EEPROM 발매년도
4 ~ 256 KB 1.6–20 28~100핀 패키지 256 ~ 16384 바이트 256 ~ 4096 바이트 2016

AT메가 시리즈에는 마이크로 컨트롤러가 탑재되어 있어 프로그램 메모리의 대용량과 폭넓은 핀을 이용할 수 있습니다.다음과 같은 기능도 갖추고 있습니다.

  • 확장 명령 세트(더 큰 프로그램 메모리를 처리하기 위한 여러 명령 및 명령)
  • 광범위한 주변기기 세트
  • 이벤트 시스템
  • 기능이 강화된 새로운 주변기기
  • 개량된 AVRxt 명령 세트

AVR Dx – AVR Dx 시리즈는 HCI, 아날로그 신호 조정 및 기능 안전성에 중점을 둔 여러 마이크로 컨트롤러 시리즈를 갖추고 있습니다.

플래시 크기 빈도수.
[MHz]
패키지 SRAM EEPROM 발매년도
16 ~ 128 KB 1.8~5.5V로 20~24 14~64핀 패키지 4 ~ 16 KB 512 바이트 2020

부품 번호의 형식은 AVRffDxpp 입니다.ff는 플래시 크기, x는 패밀리, pp는 핀 수입니다.예: AVR128DA64 – 128k 플래시 탑재 64핀 DA 시리즈모든 디바이스는 AVR Dx 패밀리입니다.

  • CPU보다 빠르게 동작할 수 있는 비동기 타입 D 타이머
  • 12비트 ADC
  • 10비트 DAC
  • AVR DA 시리즈(2020년 초)– 메모리 밀도가 높아 유선 및 무선 통신 스택 집약적인 기능에 매우 적합합니다.
    • 용량식 터치 측정(HCI)용 통합 센서
    • 최신 CIP와 견고한 통합 아날로그 포트폴리오를 제공합니다.
    • 외부 고주파 결정 없음
  • AVR DB 시리즈(2020년 중반) – DA 제품군에서 많은 기능을 상속받으면서 다음과 같은 자체 기능을 추가합니다.
    • 2개 또는 3개의 온칩 opamp
    • PORTC에서의 다중 전압 IO(MVIO)
    • 외부 HF 결정 지원
  • AVR DD 시리즈(2021년 9월 현재 출시되지 않음) – 애플리케이션 산업 제어, 가전 제품, 자동차 및 사물 인터넷(IoT)에 실시간 제어 및 멀티 전압 작동을 제공하도록 설계된 소형 패키지 마이크로 컨트롤러입니다.
    • 3핀 또는 4핀으로 MVIO 지원
  • AVR EA 시리즈 (2021년 9월 현재 미출시)
    • 8 ~ 64,000 플래시
    • 28~48핀 패키지

XMEGA

플래시 크기 빈도수.
[MHz]
패키지 SRAM EEPROM 발매년도
16 ~ 256 KB 32 44~100핀 패키지 1 ~ 32 KB 512 ~ 2048 바이트

ATxmega 시리즈는 다음과 같은 다양한 주변기기 및 기능을 제공합니다.

  • DMA, "이벤트 시스템" 및 암호화 지원 등의 확장 성능 기능
  • ADC를 사용한 광범위한 주변기기 세트

응용 프로그램 고유의 AVR

  • LCD 컨트롤러, USB 컨트롤러, 고도의 PWM, CAN 등 AVR 패밀리의 다른 멤버에게는 없는 특수한 기능을 갖춘 메가 AVR

FPSLIC(FPGA가 있는 AVR)

  • FPGA 5k~40k 게이트
  • 다른 모든 AVR과는 달리 AVR 프로그램코드용 SRAM
  • AVR 코어는 최대 50MHz로[9] 동작 가능

32비트 AVR

  • 2006년에 Atmel은 32비트 AVR32 아키텍처를 기반으로 한 마이크로컨트롤러를 출시했습니다.이는 ARM 기반 프로세서와 경쟁하기 위한 8비트 AVR과는 전혀 다른 아키텍처였습니다.32비트 데이터 경로, SIMDDSP 명령 및 기타 오디오 및 비디오 처리 기능이 있습니다.명령 세트는 다른 RISC 코어와 비슷하지만 원래의 AVR(또한 다양한 ARM 코어)와 호환되지 않습니다.그 후 AVR32의 지원은 커널 4.12에서 Linux에서 중단되었습니다.GCC의 아키텍처에 대한 컴파일러 지원은 컴파일러의 중앙 소스 코드 저장소에 메인라인으로 포함되어 있지 않으며 주로 벤더가 지원하는 포크로 제공되었습니다.AVR32가 도입되었을 때 ARM은 ARM 아키텍처의 라이선시였고 ARM7과 ARM9 마이크로컨트롤러는 AVR32보다 이전과 동시에 출시되었습니다.나중에 ARMCortex-MCortex-A 코어를 탑재한 32비트 칩에 대부분의 개발 노력을 집중했습니다.

디바이스 아키텍처

플래시, EEPROMSRAM은 모두 1개의 칩에 통합되어 있기 때문에 대부분의 애플리케이션에서 외장 메모리가 필요하지 않습니다.일부 디바이스에는 데이터 메모리 또는 메모리 매핑된 디바이스를 추가할 수 있는 병렬 외부 버스 옵션이 있습니다.거의 모든 디바이스(최소 Tiny 제외)AVR 칩)에는 시리얼인터페이스가 있어 대규모 시리얼 EEPROM 또는 플래시 칩 접속에 사용할 수 있습니다.

프로그램 메모리

프로그램 명령은 비휘발성 플래시 메모리에 저장됩니다.MCU는 8비트이지만 각 명령에는 1개 또는2개의 16비트 워드가 사용됩니다.

프로그램 메모리의 사이즈는, 통상, 디바이스 자체의 명칭에 표시됩니다(예를 들면, AT메가64x 라인은 64 KB의 플래시를 탑재하고 있는 반면, AT메가32x 라인은 32 KB의 플래시를 탑재하고 있습니다).

오프칩 프로그램메모리는 준비되어 있지 않습니다.AVR 코어에 의해 실행되는 모든 코드는 온칩플래시에 존재해야 합니다.단, 이 제한은 AT94 FPSLIC AVR/FPGA 칩에는 적용되지 않습니다.

내장 데이터 메모리

데이터 주소 공간은 레지스터 파일, I/O 레지스터 및 SRAM으로 구성됩니다.일부 소형 모델도 프로그램 ROM을 데이터 주소 공간에 매핑하지만 대형 모델에서는 매핑하지 않습니다.

내부 레지스터

100 핀 TQFP 패키지의 Atmel ATxmega128A1

AVR에는 32개싱글바이트 레지스터가 있으며 8비트 RISC 디바이스로 분류됩니다.

아주 조금AVR 및 메가AVR 아키텍처의 AVR 바리안트에서는, 최초의 32개의 메모리 주소(000016~001F16)로서 동작 레지스터가 매핑 되고, 그 다음에 64개의 I/O 레지스터(002016~005F16)가 매핑됩니다.다수의 주변기기를 탑재한 디바이스에서는, 이러한 레지스터에 160개의 「확장 I/O」레지스터가 뒤따릅니다.메모리 매핑 I/O로만 액세스 할 수 있습니다(006016–00).FF16)

실제 SRAM은 이러한 레지스터 섹션 뒤에 주소 0060에서16 시작되거나 "확장 I/O"가 있는 장치에서는 0100에서16 시작됩니다.

레지스터 파일 및 첫 번째 64개의 I/O 레지스터에 액세스하기 위한 별도의 어드레싱 스킴과 최적화된 opcode가 있지만 모든 것을 SRAM에 있는 것처럼 어드레싱 및 조작할 수도 있다.

아주 작은 것 중 가장 작은 것은AVR 바리안트는 메모리 위치로서 주소 지정할 수 없는 16개의 레지스터(r0 ~r15는 생략)만을 가지는 축소 아키텍처를 사용합니다.I/O 메모리는 주소 0000에서16 시작하여 SRAM으로 이어집니다.또, 이러한 디바이스는 표준 AVR 명령 세트로부터 약간 어긋납니다.특히 다이렉트 로드/스토어 명령(LDS/STS)이 2워드(32비트)에서1워드(16비트)로 줄어들어 직접 주소 지정 가능한 메모리의 합계(I/O와 SRAM의 합계)가 128바이트로 제한됩니다.반대로 간접 로드 명령(LD)의 16비트 주소 공간은 플래시 및 구성 비트 등의 비휘발성 메모리도 포함하도록 확장되므로 로드 프로그램 메모리(LPM) 명령은 불필요하고 생략됩니다(자세한 내용은 Atmel AVR 명령 세트를 참조하십시오).

XMEGA 변종에서는 작업 레지스터 파일은 데이터 주소 공간에 매핑되지 않으므로 XMEGA의 작업 레지스터 중 어느 것도 SRAM인 것처럼 취급할 수 없습니다.대신, I/O 레지스터는 주소 공간의 맨 처음에 시작하는 데이터 주소 공간에 매핑됩니다.또한 I/O 레지스터 전용 데이터 주소 공간의 양은 4096바이트(0000-0FF1616)로 대폭 증가했습니다.그러나 이전 세대와 마찬가지로 고속 I/O 조작 명령은 처음 64개의 I/O 레지스터 위치(비트 단위의 명령의 경우 처음 32개 위치)에만 도달할 수 있습니다.XMEGA 시리즈는 I/O 레지스터에 이어 데이터 주소 공간의 4096바이트 범위를 확보하여 내부 EEPROM을 데이터 주소 공간(1000~1FF16)에16 매핑하는 데 선택적으로 사용할 수 있습니다.실제 SRAM은 2000부터16 시작하여 이들 범위 뒤에 배치됩니다.

GPIO 포트

소형 또는 메가 AVR의 각 GPIO 포트는 최대 8핀을 구동하며 DDRx, PORTx 및 PINx라는3개의 8비트 레지스터에 의해 제어됩니다.x는 포트 식별자입니다.

  • DDRx: Data Direction Register: 핀을 입력 또는 출력 중 하나로 구성합니다.
  • PORTx: 출력 포트 레지스터.출력으로 구성된 핀의 출력 값을 설정합니다.입력으로 구성된 핀에서 풀업 저항을 활성화 또는 비활성화합니다.
  • PINx: 입력 레지스터. 입력 신호를 읽는 데 사용됩니다.일부 디바이스에서는 이 레지스터를 핀 전환에 사용할 수 있습니다.PINx 비트에 논리 1을 쓰면 DDRx 비트의 [10]설정에 관계없이 PORTx의 대응하는 비트가 전환됩니다.

ATTiny817이나 그 형제와 같은 새로운 ATTiny AVR은 포트 제어 레지스터가 다소 다르게 정의되어 있습니다.xmegaAVR에는 푸시/풀, 토템폴 및 풀업 구성에 대한 추가 레지스터가 있습니다.

EEPROM

거의 모든 AVR 마이크로 컨트롤러에는 반영구적인 데이터 스토리지용 내부 EEPROM이 있습니다.EEPROM은 플래시 메모리와 마찬가지로 전력이 차단되어도 내용을 유지할 수 있습니다.

대부분의 AVR 아키텍처에서는 이 내부 EEPROM 메모리는 MCU의 주소 지정 가능한 메모리 공간에 매핑되지 않습니다.외부 주변기기와 같은 방법으로만 액세스 할 수 있습니다.특수한 포인터 레지스터와 읽기/쓰기 명령을 사용하면 EEPROM 액세스가 다른 내부 RAM보다 훨씬 느려집니다.

단, SecureAVR(AT90SC) 패밀리의[11] 일부 디바이스에서는 설정에 따라 데이터 또는 프로그램메모리에 대한 특수한 EEPROM 매핑을 사용합니다.XMEGA 패밀리를 사용하면 EEPROM을 데이터 주소 공간에 매핑할 수도 있습니다.

EEPROM 에의 기입 회수는 한정되어 있습니다(ATMel 은 데이터 시트에 100,000 의 기입 사이클을 지정합니다).잘 설계된 EEPROM 쓰기 루틴에서는 EEPROM 주소의 내용을 원하는 내용과 비교하여 실제의 기입은 내용을 변경할 필요가 있는 경우에만 실행할 필요가 있습니다.

프로그램 실행

Atmel의 AVR은 2단계의 싱글 레벨 파이프라인 설계입니다.즉, 현재 실행 중인 다음 기계 명령이 가져오기됩니다.대부분의 명령어는 1-2개의 클럭 사이클에 불과하기 때문에 8비트 마이크로컨트롤러 중 AVR은 비교적 고속입니다.

AVR 프로세서는 컴파일된 C 코드의 효율적인 실행을 염두에 두고 설계되었으며 작업을 위한 몇 가지 포인터가 내장되어 있습니다.

명령 집합

AVR 명령 세트는 대부분의 8비트 마이크로 컨트롤러, 특히 현재 AVR이 경쟁하고 있는8051 클론 및 PIC 마이크로 컨트롤러보다 직교합니다.단, 완전히 규칙적인 것은 아닙니다.

  • 포인터 레지스터 X, Y 및 Z에는 서로 다른 주소 지정 기능이 있습니다.
  • 레지스터 로케이션 R0~R15는 레지스터 로케이션 R16~R31보다 어드레싱 기능이 한정되어 있습니다.
  • I/O 포트 32~63과는 달리 I/O 포트 0~31은 비트주소를 지정할 수 있습니다.
  • CLR(모든 비트를 0으로 클리어)은 플래그가 영향을 받는 반면, SER(모든 비트를 1로 설정)는 플래그가 상보적인 명령이지만 영향을 주지 않습니다.(CLR은 EOR R, R의 의사 op이며, SER는 LDI R, $FF의 줄임말입니다).EOR 등의 산술 연산은 플래그를 수정하지만 LDI 등의 이동/로드/저장/브런치는 수정하지 않습니다.)
  • 프로그램 메모리(플래시)에 저장된 읽기 전용 데이터에 액세스하려면 특별한 LPM 명령이 필요합니다.그렇지 않으면 플래시 버스는 명령 메모리용으로 예약됩니다.

또한 일부 칩 고유의 차이가 코드 생성에 영향을 미칩니다.코드 포인터(스택상의 리턴 주소 포함)는 최대 128KB의 플래시 메모리를 탑재한 칩에서는 2바이트 길이입니다만, 큰 칩에서는 3바이트 길이입니다.모든 칩에 하드웨어 멀티플라이어가 탑재되어 있는 것은 아닙니다.또한 8KB 이상의 플래시를 탑재한 칩에는 브랜치 명령과 콜 명령이 더 긴 것도 있습니다.

대부분의 명령어 세트는 C(Ada) 컴파일러를 매우 간단하고 효율적으로 만듭니다.GCC는 오랫동안 AVR 지원을 포함했으며, 그 지원은 널리 사용되고 있습니다.LLVM은 기본적인 AVR 지원도 갖추고 있습니다.실제로 Atmel은 소형 마이크로 컨트롤러용 컴파일러의 주요 개발자들에게 높은 수준의 [7]언어를 위한 컴파일러에서 가장 유용한 명령 집합 기능을 결정하기 위해 입력을 요청했다.

MCU 속도

AVR 회선은 통상, 0 ~20 MHz 의 클럭 속도를 서포트할 수 있습니다.일부 디바이스는 32 MHz에 달합니다.저전력 동작에서는 통상 클럭 속도를 줄일 필요가 있습니다.최근의 모든 AVR(Tiny, Mega 및 Xmega는 90S가 아님)에는 온칩 발진기가 탑재되어 있어 외부 클럭 또는 공진기 회로가 필요하지 않습니다.일부 AVR에는 시스템클럭을 최대 1024까지 분할할 수 있는 시스템클럭 프리스케일러도 있어요이 프리스케일러는 런타임 중에 소프트웨어로 재설정할 수 있으므로 클럭 속도를 최적화할 수 있습니다.

레지스터 R0~R31의 모든 동작(곱셈 및 16비트 추가/감산 제외)은 단일 사이클이므로 AVR은 MHz당 최대 1 MIPS를 실현할 수 있습니다.즉, 8 MHz 프로세서는 최대 8 MIPS를 실현할 수 있습니다.메모리와의 로드 및 저장에는 2사이클, 분기에는 2사이클이 소요됩니다.ATmega2560 등 최신 "3바이트 PC" 부품은 이전 기기보다 1사이클 느립니다.

발전

합리적인 가격의 개발 보드나 무료 개발 소프트웨어를 포함한 무료 및 저렴한 개발 툴로 인해 AVR은 많은 팬을 보유하고 있습니다.AVR은 같은 기본 코어를 공유하지만 주변기기 및 메모리의 조합이 다른 다양한 이름으로 판매됩니다.I/O 컨트롤러의 기능은 다를 수 있지만 각 패밀리의 칩 간 호환성은 상당히 양호합니다.

AVR 개발에 관한 사이트는 외부 링크를 참조해 주세요.

특징들

AVR은, 다음과 같은 폭넓은 기능을 제공합니다.

  • 설정 가능한 풀업 저항을 내장한 다기능 양방향 범용 I/O 포트
  • 외부 부품이 없는 RC 오실레이터를 포함한 여러 내부 오실레이터
  • 자체 프로그래밍 가능한 내장 명령 플래시 메모리(XMega의 경우 최대 256KB)
    • 시리얼/패럴렐 저전압 전용 인터페이스 또는 JTAG를 사용하여 시스템 내 프로그래밍 가능
    • 보호를 위한 독립된 잠금 비트가 있는 옵션 부트 코드 섹션
  • JTAG 또는 디버깅을 통한 On-Chip Debugging(OCD; 온칩디버깅) 지원대부분의 디바이스에서 유선 연결
    • JTAG 신호(TMS, TDI, TDO 및 TCK)는 GPIO 에서 다중화 됩니다.이들 핀은 ISP 또는 HVSP를 통해 프로그램할 수 있는 퓨즈 비트의 설정에 따라 JTAG 또는 GPIO로 기능하도록 설정할 수 있습니다.디폴트에서는, JTAG 를 사용하는 AVR 에는, JTAG 인터페이스가 네이블로 되어 있습니다.
    • debugWIRE는 /RESET 핀을 양방향 통신 채널로 사용하여 온칩 디버깅 회로에 액세스합니다.1개의 핀만 필요하기 때문에 핀 수가 적은 디바이스에 존재합니다.
  • 내부 데이터 EEPROM(최대 4KB)
  • 내장 SRAM(최대 16KB)(XMega에서는 32KB)
  • Mega8515 및 Mega162를 포함한 일부 모델에서는 외부 64KB의 작은 엔디언 데이터 공간.
    • 외부 데이터 공간은 내부 데이터 공간과 겹쳐져 64KB 주소 공간이 외부 버스에 나타나지 않고 주소 0100에16 대한 액세스가 외부 버스가 아닌 내부 RAM에 액세스합니다.
    • XMega 시리즈의 일부 멤버에서는 외부 데이터 공간이 SRAM과 SDRAM을 모두 지원하도록 확장되었습니다.또한 최대 16MB의 데이터 메모리를 직접 주소 지정할 수 있도록 데이터 주소 지정 모드가 확장되었습니다.
  • 8비트 및 16비트 타이머
    • PWM 출력(일부 장치에는 데드타임 제너레이터를 포함한 향상된 PWM 주변 장치가 있음)
    • 신호 에지에 의해 트리거된 타임스탬프를 기록하는 입력 캡처
  • 아날로그 비교기
  • 10비트 또는 12비트 A/D 컨버터(최대 16채널 멀티플렉스 포함)
  • 12비트 D/A 컨버터
  • 다음과 같은 다양한 시리얼인터페이스
  • 블로아웃 검출
  • 워치독 타이머(WDT)
  • 다중 절전 모드
  • 조명 및 모터 제어(PWM 고유) 컨트롤러 모델
  • CAN 컨트롤러 지원
  • USB 컨트롤러 지원
    • AVR을 내장한 적절한 풀 스피드(12 Mbit/s) 하드웨어 및 허브 컨트롤러.
    • 저속 (1.5 Mbit/s) (HID)비트 뱅킹 소프트웨어 에뮬레이션도 무료로 이용 가능
  • 이더넷 컨트롤러 지원
  • LCD 컨트롤러 지원
  • 최대 1.8V의 저전압 디바이스(DC-DC 업 컨버터가 내장된 부품의 경우 최대 0.7V)
  • PicoPower 디바이스
  • DMA 컨트롤러 및 "이벤트 시스템" 주변기기 통신.
  • AES 및 DES고속 암호화 지원

프로그래밍 인터페이스

AVR 칩에 프로그램 코드를 로드하는 방법은 여러 가지가 있습니다.AVR 칩을 프로그래밍하는 방법은 AVR 패밀리마다 다릅니다.아래에 설명된 대부분의 방법은 RESET 라인을 사용하여 프로그래밍 모드로 들어갑니다.칩이 실수로 이러한 모드가 되지 않도록 하려면 RESET 과 양극 전원 장치 [16]사이에 풀업 저항을 연결하는 것이 좋습니다.

ISP

6 핀 및 10 핀 ISP 헤더 다이어그램

ISP(In-System Programming) 프로그래밍 방법은 SPI를 통해 기능적으로 수행되며 Reset 행의 일부 트위들링도 수행합니다.AVR의 SPI 핀이 파괴적인 것에 접속되어 있지 않은 한, AVR 칩은 재프로그래밍중에 PCB상에 납땜된 채로 있을 수 있습니다.6핀 커넥터와 프로그래밍 어댑터만 있으면 됩니다.이것은, AVR 를 사용해 개발하는 가장 일반적인 방법입니다.

Atmel-ICE 장치 또는 AVRISP mkII(레거시 장치)는 컴퓨터의 USB 포트에 연결하여 Atmel의 소프트웨어를 사용하여 시스템 내 프로그래밍을 수행합니다.

AVRDUDE(AVR Downloader/UploaDER)는 Linux, FreeBSD, WindowsMac OS X에서 실행되며 Atmel AVRISP mkII, Atmel JTAG ICE, 오래된 Atmel 시리얼 포트 기반의 다양한 "프로그래머"를 포함한 다양한 시스템 내 프로그래밍 하드웨어를 지원합니다.

PDI

프로그램 및 디버깅인터페이스(PDI)는 XMEGA 디바이스의 외부 프로그래밍 및 온칩 디버깅을 위한 Atmel 전용 인터페이스입니다.PDI는 플래시, EEPROM, 퓨즈, 잠금 비트 및 사용자 서명 행 등 모든 NVM(비휘발성 메모리) 공간의 고속 프로그래밍을 지원합니다.이를 수행하려면 PDI 인터페이스를 통해 XMEGA NVM 컨트롤러에 액세스하고 NVM 컨트롤러 명령을 실행합니다.PDI는 클럭 입력용 재설정 핀(PDI_CLK)과 입력 및 [18]출력용 전용 데이터 핀(PDI_DATA)을 사용하는 2핀 인터페이스입니다.

업데이트

Unified Program and Debug Interface(UPDI; 통합 프로그램 및 디버깅인터페이스)는 새로운 ATtiny 및 ATMega 디바이스의 외부 프로그래밍 및 온칩디버깅용 1선 인터페이스입니다.Atmel-ICE 및 PICkit 4는 UPDI 칩을 프로그래밍할 수 있습니다.jtag2updi로 Arduino를 사용할 수도 있습니다.[19]

고전압 시리얼

High-Voltage Serial Programming(HVSP;[20] 고전압 시리얼 프로그래밍)은 소규모 AVR의 백업모드입니다8 핀 AVR 패키지에서는, AVR 를 프로그래밍 모드로 하기 위해서, 일의의 신호의 편성을 많이 남기지 않습니다.단, 12볼트 신호는 AVR이 프로그래밍 중에만 볼 수 있으며 일반 동작 중에는 볼 수 없습니다.고전압 모드는 퓨즈에 의해 재설정 핀이 비활성화된 일부 장치에서도 사용할 수 있습니다.

고전압 병렬

HVPP(High-Voltage Parallel Programming)는 "최종 수단"으로 간주되며 AVR 칩의 불량 퓨즈 설정을 수정할 수 있는 유일한 방법입니다.

부트로더

대부분의 AVR 모델에서는 재프로그래밍 코드가 존재할 수 있는 부트로더 영역을 256바이트~4KB로 예약할 수 있습니다.리셋 시 부트로더가 먼저 실행되어 메인 어플리케이션으로 재프로그래밍할지 점프할지 사용자가 프로그래밍한 결정을 합니다.코드는 사용 가능한 인터페이스를 통해 재프로그래밍하거나 PXE와 같은 이더넷어댑터를 통해 암호화된 바이너리를 읽을 수 있습니다.Atmel에는 많은 버스인터페이스와 [21][22][23][24]관련된 어플리케이션노트 및 코드가 있습니다

ROM

AT90SC시리즈의 AVR은, 프로그램 [25]메모리용의 플래시가 아니고, 공장 출하시의 마스크 ROM으로 입수할 수 있습니다.마스크-ROM은 초기 비용이 크고 최소 주문량이 많기 때문에 대량 생산 시에만 비용 효율이 높습니다.

a와이어

aWire는 새로운 UC3L AVR32 디바이스에서 사용할 수 있는 새로운1 와이어 디버깅인터페이스입니다

인터페이스 디버깅

AVR은 디버깅을 위한 몇 가지 옵션을 제공합니다.대부분은 칩이 타깃시스템에 있는 동안 온칩 디버깅을 포함합니다.

디버깅 와이어

debugWIRE는 단일 마이크로컨트롤러 핀을 통해 온칩 디버깅 기능을 제공하기 위한 Atmel의 솔루션입니다.JTAG에 필요한 4개의 예비 핀을 제공할 수 없는 핀 수가 적은 부품에 특히 유용합니다.JTAGICE mkII, mkIII 및 AVR Dragon은 debugWIRE. debug를 지원합니다.WIRE는 원래 JTAGICE 릴리즈 이후에 개발되어 현재는 클론이 이를 지원하고 있습니다.

JTAG

Joint Test Action Group(JTAG; 공동 테스트 액션 그룹) 기능을 사용하면 칩이 타깃시스템에서 [26]동작하고 있는 동안 온칩 디버깅 기능에 액세스할 수 있습니다.JTAG를 사용하면 내장 메모리와 레지스터에 액세스하여 코드에 브레이크 포인트를 설정하고 싱글스텝을 실행하여 시스템 동작을 감시할 수 있습니다.

Atmel은 AVR용으로 일련의 JTAG 어댑터를 제공합니다.

  1. Atmel-ICE는[27] 최신 어댑터입니다.JTAG, debugWire, aWire, SPI, TPI 및 PDI 인터페이스를 지원합니다.
  2. JTAGICE[28] 3은 JTAGICE 패밀리(JTAGICE mkII)의 미드레인지 디버거입니다.JTAG, aWire, SPI 및 PDI 인터페이스를 지원합니다.
  3. JTAGICE mkII는[29] JTAGICE를 대체하고 가격은 동일합니다.JTAGICE mkII는 USB 경유로 PC에 접속하여 JTAG와 새로운 디버깅을 모두 지원합니다.WIRE 인터페이스Atmel JTAGICE mkII 디바이스의 많은 서드파티 클론은 Atmel이 통신 프로토콜을 [30]출시한 후 배송을 시작했습니다.
  4. AVR[31] Dragon은 특정 타깃 부품의 JTAGICE mkII를 대체하는 저비용(약 50달러)입니다.AVR Dragon은 시스템 내 시리얼 프로그래밍, 고전압 시리얼 프로그래밍 및 병렬 프로그래밍 및 JTAG 또는 디버깅을 제공합니다.프로그램 메모리가 32KB 이하인 부품의 와이어 에뮬레이션.ATMEL은 AVR Studio 4 - AVR Studio 5의 최신 펌웨어로 AVR Dragon의 디버깅 기능을 변경하여 32KB 이상의 프로그램 메모리를 지원하게 되었습니다.
  5. JTAGICE 어댑터는 표준 시리얼 [32]포트를 통해 PC에 인터페이스합니다.JTAGICE 어댑터는 Atmel에 의해 "End-of-life"로 선언되었지만 AVR Studio 및 기타 도구에서는 계속 지원됩니다.

JTAG 는, 경계 스캔 [33]테스트의 실행에도 사용할 수 있습니다.이 테스트에서는, AVR 와 시스템내의 다른 경계 스캔 대응 칩간의 전기적 접속을 테스트합니다.경계 스캔은 생산 라인에 적합하지만 취미 생활자는 멀티미터 또는 오실로스코프를 사용하여 테스트하는 것이 좋습니다.

개발 도구 및 평가 키트

Atmel STK500 개발 보드

공식 Atmel AVR 개발 툴 및 평가 키트에는 대부분의 AVR 디바이스를 지원하는 다수의 스타터 키트와 디버깅툴이 포함되어 있습니다.

STK600 스타터 키트

STK600 스타터 키트 및 개발 시스템은 STK500의 [34]업데이트입니다.STK600은 베이스 보드, 신호 라우팅 보드 및 타깃 보드를 사용합니다.

베이스 보드는 DE9 커넥터를 통해 전원 공급 장치, 클럭, 시스템 내 프로그래밍, RS-232 포트 및 CAN(Controller Area Network, 자동차 표준) 포트, 타깃 장치로부터의 모든 GPIO 신호에 대한 스테이크 핀을 제공한다는 점에서 STK500과 유사합니다.

대상 보드에는 보드에 따라 DIP, SOIC, QFN 또는 QFP 패키지용 ZIF 소켓이 있습니다.

신호 라우팅 보드는 베이스보드와 타깃보드 사이에 배치되어 디바이스 보드의 적절한 핀에 신호를 라우팅합니다.ZIF 소켓에 탑재되어 있는 디바이스에 따라 1개의 타깃보드에서 사용할 수 있는 신호 라우팅 보드는 여러 가지가 있습니다.

STK600을 사용하면 PC에서 USB를 통해 시스템 내 프로그래밍이 가능하며 RS-232 포트를 대상 마이크로컨트롤러에 사용할 수 있습니다.STK600의 4핀 헤더는 'RS-232 스페어'라는 라벨이 붙어 있어 칩 상의 모든 TTL 레벨의 USART 포트를 온보드 MAX232 칩에 연결하여 신호를 RS-232 레벨로 변환할 수 있습니다.RS-232 신호는 DB-9 커넥터의 RX, TX, CTS 및 RTS 핀에 연결됩니다.

STK500 스타터 키트

STK500 스타터 키트 및 개발 시스템은 직접 또는 확장 보드를 통해 모든 AVR 디바이스를 위한 ISP 및 고전압 프로그래밍(HVP) 기능을 갖추고 있습니다.이 보드에는 DIP 패키지로 제공되는 모든 AVR용 DIP 소켓이 장착되어 있습니다.

STK500 확장 모듈:STK500 보드에는 다음과 같은 확장 모듈을 사용할 수 있습니다.

  • STK501 : 64핀 TQFP 패키지의 마이크로 컨트롤러 지원을 추가합니다.
  • STK502 – 64핀 TQFP 패키지로 LCD AVR 지원 추가
  • STK503 – 100핀 TQFP 패키지의 마이크로 컨트롤러 지원을 추가합니다.
  • STK504 – 100핀 TQFP 패키지로 LCD AVR 지원 추가
  • STK505 – 14핀 및 20핀 AVR 지원 추가
  • STK520 – AT90에서 14핀 및 20핀 마이크로컨트롤러 지원PWM 및 AT메가 패밀리
  • STK524 – AT메가32M1/C1 32핀 CAN/LIN/모터 컨트롤 패밀리 지원 추가
  • STK525 – AT90 지원 추가64 핀 TQFP 패키지의 USB 마이크로 컨트롤러.
  • STK526 – AT90 지원 추가32핀 TQFP 패키지의 USB 마이크로 컨트롤러.

STK200 스타터 키트

STK200 스타터 키트 및 개발 시스템에는 40, 20 또는8 핀 패키지의 AVR 칩을 호스트할 수 있는 DIP 소켓이 있습니다.이 보드에는 4MHz 클럭 소스, 8개의 발광 다이오드(LED), 8개의 입력 버튼, RS-232 포트, 32KB SRAM용 소켓 및 다수의 일반 I/O가 있습니다.병렬 포트에 연결된 동글을 사용하여 칩을 프로그래밍할 수 있습니다.

지원되는 마이크로 컨트롤러(매뉴얼에 따름)
작은 조각 플래시 크기 EEPROM SRAM 빈도수.
[MHz]
패키지
AT90S1200 1 KB 64 B 0 B 12 PDIP-20
AT90S2313 2 KB 128 B 128 B 10 PDIP-20
AT90S/LS2323 2 KB 128 B 128 B 10 PDIP-8
AT90S/LS2343 2 KB 128 B 128 B 10 PDIP-8
AT90S4414 4 KB 256 B 256 B 8 PDIP-40
AT90S/LS4434 4KB 256B 256B 8 PDIP-40
AT90S8515 8KB 512B 512B 8 PDIP-40
AT90S/LS8535 8KB 512B 512B 8 PDIP-40

아트멜-ICE

Atmel ICE는 모든 AVR 디바이스를 프로그래밍 및 디버깅하기 위해 현재 지원되는 저렴한 도구입니다(아래에서 설명한 AVRISP/AVRISP mkII, Dragon 등과는 다릅니다).USB 경유로 PC에 접속하여 PC로부터 전력을 공급받으며 JTAG, PDI, aWire, 디버깅지원합니다.WIRE, SPI, SWD, TPI 및 UPDI(마이크로칩 Unified Program and Debug Interface) 인터페이스.

ICE는 JTAG 인터페이스를 통해 모든 AVR을 프로그래밍 및 디버깅할 수 있으며 각 디바이스에서 지원되는 추가 인터페이스를 사용하여 프로그래밍할 수 있습니다.

  • PDI 2선 인터페이스를 통한8비트 AVR XMEGA 디바이스
  • 8비트 메가AVR 및 소형OCD(온칩 디버거)를 지원하는 모두를 위한 SPI 경유 AVR 디바이스
  • 8비트 소형TPI를 지원하는 AVR 마이크로 컨트롤러
  • 32비트 SAM Arm Cortex-M 기반 마이크로컨트롤러(SDD 사용)

1.62V ~ 5.5V의 목표 작동 전압 범위와 다음 클럭 범위가 지원됩니다.

  • 32kHz~7.5MHz의 JTAG 및 PDI 클럭 주파수 지원
  • 7.5 kbit/s ~7 Mbit/s의 와이어 보레이트 지원
  • 디버깅 지원와이어 보레이트 (4 kbit/s ~0.5 Mbit/s)
  • 8kHz~5MHz의 SPI 클럭 주파수 지원
  • 32kHz~2MHz의 SWD 클럭 주파수 지원

ICE는 Microchip Studio IDE 및 명령줄 인터페이스(atprogram)에서 지원됩니다.

Atmel-ICE는 디버깅 및 프로그래밍 기능을 사용하지 않을 때 Data Gateway Interface(DGI; 데이터 게이트웨이 인터페이스)의 제한된 구현을 지원합니다.데이터 게이트웨이 인터페이스는 대상 장치에서 연결된 컴퓨터로 데이터를 스트리밍하기 위한 인터페이스입니다.이는 응용 프로그램 기능을 시연할 수 있도록 장치에 유용한 보조 도구로서, 응용 프로그램 수준 디버깅에 도움이 됩니다.

AVRISP 및 AVRISP mkII

AVRISP mkII

AVRISP 및 AVRISP mkII는 ICSP를 통해 모든 AVR을 프로그래밍할 수 있는 저렴한 도구입니다.

AVRISP는 시리얼 포트를 통해 PC에 접속하여 타깃 시스템에서 전력을 공급합니다.AVRISP 에서는, 「표준」의 ICSP 핀 할당(10 핀 또는 6 핀 커넥터)의 어느쪽인가를 사용할 수 있습니다.

AVRISP mkII는 USB를 통해 PC에 연결하고 USB에서 전원을 공급합니다. 반투명 케이스를 통해 보이는 LED는 목표 전원 상태를 나타냅니다.

AVRISP mkII에는 드라이버/버퍼 IC가 [35]없기 때문에 SPI 회선에 여러 부하가 걸려 있는 타깃보드를 프로그래밍하는 데 문제가 발생할 수 있습니다.이러한 경우 더 큰 전류를 소싱할 수 있는 프로그래머가 필요합니다.또, 저값(~150Ω)의 부하 제한 저항을 각 페리페럴 디바이스보다 먼저 SPI 회선에 배치할 수 있는 경우에도, AVRISP mkII 를 사용할 수 있습니다.

현재 AVRISP와 AVRISP mkII는 모두 단종되었으며 제품 페이지는 마이크로칩 웹사이트에서 삭제되었습니다.2019년 7월 현재, AVRISP mkII는 다수의 디스트리뷰터에서 아직 재고가 있습니다.서드파티제 클론도 다수 준비되어 있습니다.

AVR 드래곤

AVR Dragon (ISP 프로그래밍 케이블 및 연결된 파란색/녹색 ZIF 소켓 포함)

Atmel Dragon은 USB를 통해 PC에 연결하는 저렴한 도구입니다.Dragon은 JTAG, HVP, [36]PDI 또는 ICSP를 통해 모든 AVR을 프로그래밍할 수 있습니다.또한 Dragon에서는 JTAG, PDI 또는 debugWire 경유로 모든 AVR 디버깅이 가능합니다.AVR Studio 4.18에서는 [37]32KB 이하의 프로그램메모리를 탑재한 디바이스에 대한 이전의 제한이 없어졌습니다.Dragon에는 전원 연결 및 프로그래밍 핀 연결을 포함하여 8, 28 또는 40핀 AVR을 수용할 수 있는 작은 프로토타입 영역이 있습니다.추가 회로를 위한 영역은 없지만, "Dragon Rider"[38]라고 불리는 서드파티 제품을 통해 제공될 수 있습니다.

JTAGICE

JTAG In Circuit Emulator(JTAGICE; 회선내 에뮬레이터) 디버깅툴은, JTAG 인터페이스를 가지는 AVR 의 On-Chip Debugging(OCD; 온칩 디버깅)을 서포트합니다.원래의 JTAGICE(소급해서 JTAGICE mkI라고도 함)에서는 PC에 대한 RS-232 인터페이스를 사용하고, JTAG 인터페이스를 사용한AVR 만을 프로그래밍 할 수 있습니다.JTAGICE mkI는 더 이상 가동되지 않지만 JTAGICE mkII로 대체되었습니다.

JTAGICE mkII

JTAGICE mkII 디버깅툴은 SPI, JTAG, PDI 및 디버깅을 사용한AVR의 On-Chip Debugging(OCD; 온칩디버깅)을 지원합니다.WIRE 인터페이스debugWire 인터페이스에서는 1개의 핀(리셋 핀)만을 사용하여 디버깅을 이노블로 하여 핀 수가 적은 마이크로컨트롤러에서 실행되고 있는 어플리케이션을 디버깅할 수 있습니다.

JTAGICE mkII는 USB를 사용하여 연결하지만 시리얼 포트를 통해 대체 연결이 있기 때문에 별도의 전원장치를 사용해야 합니다.JTAG와 더불어 mk는II는 ISP 프로그래밍을 지원합니다(6핀 또는 10핀 어댑터 사용).USB 링크와 시리얼 링크 모두 STK500 프로토콜의 다른 버전을 사용합니다.

JTAGICE 3

JTAGICE3는 mk를 갱신합니다.II는 고도의 디버깅 기능과 고속 프로그래밍을 갖추고 있습니다.USB를 통해 연결되며 JTAG, aWire, SPI 및 PDI [39]인터페이스를 지원합니다.키트에는 대부분의 인터페이스 핀 할당에 사용할 수 있는 어댑터가 몇 개 포함되어 있습니다.

AVR ONE!

AVR ONE!은 온칩 디버깅 기능을 갖춘 모든 Atmel 8비트 및 32비트 AVR 디바이스용 프로페셔널 개발 도구입니다.SPI, JTAG, PDI 및 aWire 프로그래밍 모드와 디버깅을 지원합니다.WIRE, JTAG, PDI 및 aWire 인터페이스.[40]

나비 시범판

Atmel AVR Butterfly 보드 뒷면에 있는 64패드 MLF 패키지의 Atmel ATmega169

매우 인기 있는 AVR Butterfly 데모 보드는 Atmel AVR ATmega169V 마이크로컨트롤러를 실행하는 배터리 구동식 컴퓨터입니다.AVR 패밀리, 특히 새로운 내장 LCD 인터페이스를 자랑하기 위해 제작되었습니다.이 보드에는 LCD 화면, 조이스틱, 스피커, 시리얼 포트, 실시간 클럭(RTC), 플래시 메모리 칩, 온도 센서와 전압 센서가 모두 포함되어 있습니다.AVR Butterfly의 이전 버전에는 CdS 포토레지스터가 포함되어 있었습니다.RoHS [41]준거를 위해 2006년 6월 이후에 생산된 Butterfly 보드에는 포함되어 있지 않습니다.이 작은 보드는 등에 셔츠 핀이 달려 있어 이름 배지로 착용할 수 있습니다.

AVR Butterfly에는 마이크로 컨트롤러의 기능을 나타내는 소프트웨어가 프리 로드되어 있습니다.공장 출하 시 펌웨어는 사용자의 이름을 스크롤하고 센서 판독값을 표시하며 시간을 표시할 수 있습니다.AVR 버터플라이는 또한 소리와 음악을 재생하는 데 사용할 수 있는 압전 변환기를 가지고 있다.

AVR Butterfly는 14세그먼트, 6글자 영숫자 디스플레이를 실행함으로써 LCD 드라이빙을 시연합니다.그러나 LCD 인터페이스는 많은 I/O 핀을 소비합니다.

Butterfly의 ATmega169 CPU는 최대 8MHz의 속도를 낼 수 있지만, 버튼의 배터리 지속 시간을 유지하기 위해 소프트웨어에 의해 출하 시 2MHz로 설정되어 있습니다.프리 인스톨 되어 있는 부트로더 프로그램을 사용하면, 표준 RS-232 시리얼 플러그를 개입시켜 보드를 재프로그래밍 할 수 있습니다.이러한 프로그램을 사용하면, 유저는 무료의 Atmel IDE 툴로 쓸 수 있습니다.

AT90USBKey

명함 크기의 절반 정도 크기의 이 작은 보드는 AVR 버터플라이보다 가격이 조금 더 비싸다.USB On-The-Go(OTG)를 지원하는 AT90USB1287, 16MB의 DataFlash, LED, 소형 조이스틱 및 온도 센서가 포함되어 있습니다.보드에는 USB 대용량 저장 장치(DataFlash에 제공된 설명서), USB 조이스틱 등의 역할을 하는 소프트웨어가 포함되어 있습니다.USB 호스트 기능을 지원하려면 배터리로 작동해야 하지만 USB 주변기기로 작동하는 경우에는 USB를 통해 제공되는 전원만 필요합니다.

기존의 2.54mm 핀 할당을 사용하는 것은 JTAG 포트뿐입니다.다른 모든 AVR I/O 포트에는 보다 콤팩트한 1.27mm 헤더가 필요합니다.

AVR Studio 4.18에서 32KB 제한이 삭제되었기 때문에 AVR Dragon은 프로그래밍과 디버깅을 모두 할 수 있으며 JTAGICE mkII는 프로세서의 프로그래밍과 디버깅을 모두 할 수 있습니다.프로세서는 USB "Device Firmware Update" 프로토콜을 사용하여 Windows 또는 Linux 호스트에서 USB를 통해 프로그래밍할 수도 있습니다.Atmel은 독점적(소스 코드는 포함되지만 배포는 제한됨) 예제 프로그램과 USB 프로토콜 스택을 장치와 함께 제공합니다.

LUFA[42] USBKey 및 기타 8비트 USB AVR용 서드파티제의 프리 소프트웨어(MIT 라이센스) USB 프로토콜 스택입니다.

레이븐 무선 키트

RAVEN 키트는 ZigBee 및 기타 무선 스택용으로 Atmel의 IEEE 802.15.4 칩셋을 사용한 무선 개발을 지원합니다.그것은 무선으로 더 강력한 Butterfly 카드와 무선 USBKey와 비슷하며, 가격은 약 $100 미만이다.이들 보드는 모두 JTAG 기반 개발을 지원합니다.

이 키트에는 2개의 AVR Raven 보드가 포함되어 있습니다.각 보드는 IEEE 802.15.4를 지원하는 2.4GHz 트랜시버(및 라이선스가 자유로운 ZigBee 스택)를 갖추고 있습니다.무선은 ATMega1284p 프로세서로 구동되며 ATMega3290p 프로세서에 의해 구동되는 커스텀 세그먼트 LCD 디스플레이에 의해 지원됩니다.Raven 페리페럴은 Butterfly와 비슷합니다.Piezo 스피커, DataFlash(더 큰 크기), 외부 EEPROM, 센서, RTC용 32kHz 크리스털 등입니다.원격 센서 노드 개발, 릴레이 제어 또는 필요한 모든 용도로 사용됩니다.

USB 스틱은, USB 호스트 및 2.4 GHz 무선 링크에의 접속에 AT90USB1287을 사용합니다.로컬 배터리가 아닌 호스트의 전원에 의존하여 리모트노드를 감시 및 제어하기 위한 것입니다.

서드파티제 프로그래머

AVR에는 다양한 서드파티 프로그래밍 및 디버깅툴을 사용할 수 있습니다.이러한 디바이스는 RS-232, PC 병렬 포트, USB [43]등 다양한 인터페이스를 사용합니다.

사용하다

Arduino Duemilanove 보드 위의 Atmel AVR ATmega328 28핀 DIP
커스텀 개발 보드의 Atmel AVR ATmega8 28핀 DIP

AVR은 보안, 안전, 파워트레인 및 엔터테인먼트 시스템과 같은 다양한 자동차 애플리케이션에 사용되어 왔습니다.Atmel은 최근 자동차 애플리케이션 개발자를 지원하기 위해 새로운 출판물 "Atmel Automotive Compilation"을 출시했습니다.BMW, 다임러-크라이슬러, TRW에서 현재 사용되고 있는 것이 있습니다.

Arduino 물리 컴퓨팅 플랫폼은 ATmega328 마이크로컨트롤러(Diecimila보다 오래된 보드 버전에서는 ATmega168 또는 ATmega8)를 기반으로 합니다.Arduino Mega 플랫폼을 개발하기 위해 더 많은 핀 할당과 메모리 기능을 갖춘 ATmega 1280과 ATmega 2560이 사용되었습니다.Arduino 보드는 언어 IDE와 함께 사용할 수도 있고 표준화되고 널리 이용 가능한 AVR 플랫폼으로서 보다 일반적인 프로그래밍 환경(C, 어셈블러 등)과 함께 사용할 수도 있습니다.

USB 기반 AVR은 Microsoft Xbox 핸드 컨트롤러에서 사용되고 있습니다.컨트롤러와 Xbox 사이의 링크는 USB입니다.

Cubloc,[44] gnusb,[45] BasicX,[46] Oak Micros,[47] ZX Microclers,[48] myAVR [49]등 취미생활자, 로봇 빌더, 실험자 및 소규모 시스템 개발자가 사용하는 AVR 기반 마이크로컨트롤러 보드를 제조하고 있습니다.비슷한 사용자를 지원하는 Arduino 호환 보드의 대규모 커뮤니티도 있습니다.

Schneider Electric은 다양한 모션 어플리케이션에서 사용할 수 있도록 Atmel AVR Core와 고급 모션 컨트롤러를 내장한 M3000 모터 및 모션 컨트롤 칩을 생산했지만,[50] 이는 단종되었습니다.

FPGA 클론

오픈 소스 커뮤니티에서 FPGA의 인기가 높아짐에 따라 AVR 명령 세트에 대응한 오픈 소스 프로세서의 개발에 착수했습니다.OpenCores 웹 사이트에는 다음과 같은 주요 AVR 복제 프로젝트가 나열됩니다.

  • PAVR은 [51]VHDL로 작성되며, 더 깊은 파이프라인과 같은 원래 AVR 프로세서에는 없는 기술을 구현하여 가장 빠르고 최대 기능을 갖춘 AVR 프로세서를 만드는 것을 목표로 합니다.
  • VHDL로 작성된 avr_core는 [52]ATmega103에 최대한 근접하기 위한 클론입니다.
  • Verilog로 작성된 Navré는 [53]모든 Classic Core 명령을 구현하여 고성능과 낮은 리소스 사용을 목표로 합니다.인터럽트는 지원되지 않습니다.
  • Softavrcore 는,[54] Verilog 로 기술되어 있어 AVR5 로 설정된 AVR 명령어를 실장하고, 인터럽트나 일부의 인터페이스(UART, SPI, 타이머등)를 서포트하고 있어 외부 주변기기가 이 코어에 어떻게 접속되어 설정되어 있는지를 나타냅니다.
  • 위르겐 사우어만 박사가 VHDL로 작성한 오픈코어 프로젝트 CPU[55] 강의에서는 (SoC)에 AVR 기반의 완전한 시스템을 설계하는 방법에 대해 자세히 설명합니다.

기타 벤더

Atmel이 제조한 칩 외에 Logic Green [56]Technologies에서 클론을 이용할 수 있습니다.이들 부품은 정확한 클론이 아닙니다.클론하고 있는 칩에는 없는 몇 가지 기능이 있으며 최대 클럭 속도도 높지만 프로그래밍에는 ISP 대신 SWD를 사용하기 때문에 다른 프로그래밍 도구를 사용해야 합니다.

AT메가 아키텍처를 사용하는 마이크로 컨트롤러는 1887년 시리즈 집적회로의 일부로 러시아 Voronezh에 있는 NIET에 의해 제조되고 있습니다.여기에는 1887VE7T(러시아어: 1887VE7T)[57]라는 명칭의 AT메가128이 포함됩니다.

레퍼런스

  1. ^ 1996년부터 NTH는 노르웨이 과학기술대학(NTNU)의 일부가 되었다.
  2. ^ alfbogen.com 블로그
  3. ^ a b GhostarchiveWayback Machine에서 아카이브:"The Story of AVR". youtube.com.
  4. ^ "UNSW School of Computer Science and Engineering - General AVR Info". Cse.unsw.edu.au. Archived from the original on 2012-06-23. Retrieved 2012-09-19.
  5. ^ Atmel 및 AVR 마이크로컨트롤러 개요
  6. ^ "Embedded Systems and Microcontrollers" (PDF). Archived from the original (PDF) on 2004-12-24. Retrieved 2018-10-01.
  7. ^ a b Myklebust, Gaute. The AVR Microcontroller and C Compiler Co-Design (PDF). Atmel Norway. CiteSeerX 10.1.1.63.1447. Retrieved 2012-09-19.
  8. ^ 아트멜 보도 자료입니다"Atmel의 AVR 마이크로컨트롤러, 5억대 출하"
  9. ^ 필드 프로그래머블 시스템레벨 집적회로Wayback Machine에서 2012-11-27 아카이브 완료.
  10. ^ atmel.com
  11. ^ Atmel 스마트 카드 IC
  12. ^ "AVR319: Using the USI module for SPI communication" (PDF). Atmel. 2004. Retrieved 10 June 2014.
  13. ^ "Atmel AVR310: Using the USI Module as a I2C Master" (PDF). Atmel. 2013. Retrieved 10 June 2014.
  14. ^ "AVR312: Using the USI module as a I2C slave" (PDF). Atmel. 2005. Retrieved 10 June 2014.
  15. ^ "AVR307: Half Duplex UART Using the USI Module" (PDF). Atmel. 2003. Retrieved 10 June 2014.
  16. ^ "AVR Hardware Design Considerations" (PDF) (application note). Atmel Corporation. Jun 2015. p. 5. Retrieved 14 Jun 2015. The reset line has an internal pull-up resistor, but if the environment is noisy it can be insufficient and reset can therefore occur sporadically.
  17. ^ "AVRDUDE programmer". Savannah.nongnu.org. Retrieved 2012-09-19.
  18. ^ "PDI programming driver" (PDF). Retrieved 2012-09-19.
  19. ^ "GitHub - ElTangas/Jtag2updi: UPDI programmer software for Arduino (Targets Tiny AVR-0/1/2, Mega AVR-0 and AVR-DA/DB MCUs)". GitHub. 17 December 2021.
  20. ^ "HVSP_Description". Support.atmel.no. Archived from the original on 2009-10-12. Retrieved 2012-09-19.
  21. ^ "DES-encrypted AVR Bootloader" (PDF). Retrieved 2012-09-19.
  22. ^ "AES-encrypted AVR Bootloader" (PDF). Retrieved 2012-09-19.
  23. ^ "XMEGA Bootloader" (PDF). Retrieved 2012-09-19.
  24. ^ "AVR USB Bootloader" (PDF). Retrieved 2012-09-19.
  25. ^ "Atmel's Self-Programming Flash Microcontrollers" (PDF). Retrieved 12 March 2020.
  26. ^ "Guide to understanding JTAG and security fuses on the AVR". Retrieved 2012-09-19.
  27. ^ "Atmel-ICE - Atmel Corporation". Atmel.com. Retrieved 2015-09-11.
  28. ^ "JTAGICE 3- Atmel Corporation". Atmel.com. Retrieved 2012-09-19.
  29. ^ "AVR JTAGICE mkII". Atmel. Archived from the original on 15 February 2013. Retrieved 13 January 2013.
  30. ^ "JTAGICE mkII Communication Protocol" (PDF). Retrieved 2012-09-19.
  31. ^ "AVR Dragon". Atmel. Retrieved 13 January 2013.
  32. ^ "AVR JTAGICE mkII User's Guide" (PDF). microchip.com. Retrieved 25 March 2020.
  33. ^ JTAGICE 프레스 릴리즈, 2004.2011-07-07 Wayback Machine 아카이브 완료
  34. ^ "STK600". Atmel. Archived from the original on 15 February 2013. Retrieved 13 January 2013.
  35. ^ "AVRISP mkII Disassembled". Archived from the original on 2014-11-08. Retrieved 2014-11-08.
  36. ^ "AVR1005: Getting started with XMEGA, page 7" (PDF). Atmel. Retrieved 7 November 2011.
  37. ^ "AVR Studio v4.18 Release Notes". Retrieved 2012-09-19.
  38. ^ "ECROS Technology - Dragon Rider". Ecrostech.com. 2008-03-02. Retrieved 2012-09-19.
  39. ^ JTAGICE3 제품 페이지
  40. ^ AVR ONE! 제품 페이지
  41. ^ AVR 버터플라이
  42. ^ "LUFA (Formerly MyUSB)". Four Walled Cubicle. Retrieved 2012-09-19.
  43. ^ 포괄적인 리스트에 대해서는, avrffreaks.net 를 참조해 주세요.
  44. ^ "Comfile Technology". Comfile Technology, Inc. Retrieved 13 January 2013.
  45. ^ "gnusb: Open Source USB Sensor Box". Retrieved 13 January 2013.
  46. ^ "BasicX". NetMedia, Inc. Archived from the original on 23 May 2013. Retrieved 13 January 2013.
  47. ^ "Welcome to Oak Micros". Oak Micros. Oak Micros. Archived from the original on 2012-10-25. Retrieved 13 January 2013.
  48. ^ "ZBasic". Retrieved 13 January 2013.
  49. ^ "myAVR". Laser & Co. Solutions GmbH. Retrieved 13 January 2013.
  50. ^ "M3000 Motion controller on a chip". imshome.com. Schneider Electric Motion USA. Archived from the original on 2009-12-02. Retrieved 2011-08-02.
  51. ^ "pAVR :: Overview". OpenCores. Retrieved 2012-09-19.
  52. ^ "AVR Core :: Overview". OpenCores. Retrieved 2012-09-19.
  53. ^ "Navré AVR clone (8-bit RISC) Overview". OpenCores. Retrieved 2012-09-19.
  54. ^ "Soft AVR Core + Interfaces Overview". OpenCores. Retrieved 2020-06-16.
  55. ^ "CPU lecture". OpenCores. Retrieved 2015-02-16.
  56. ^ "LGT8F88A FLASH Microcontroller". LogicGreen Technologies. Archived from the original on 2017-08-29. Retrieved 2019-01-18, AT메가88의 복제품입니다.
  57. ^ "Микроконтроллеры" [Microcontrollers] (in Russian). Voronezh: OAO "NIIET". Archived from the original on 22 August 2017. Retrieved 22 August 2017.

읽고 추가

  • AVR 프로그래밍: 하드웨어용 소프트웨어 쓰기 학습; 엘리엇 윌리엄스; 메이커 미디어; 474 페이지; 2014; ISBN 978-1449355784
  • Arduino: 퀵 스타트 가이드, Maik Schmidt, Pragmatic Bookbook, 276 페이지, 2011, ISBN 978-1-934356-66-1.
  • 필요한 어셈블리: AVR 마이크로컨트롤러를 사용한 어셈블리 언어 프로그래밍; Timothy S Margush; CRC Press; 643 페이지; 2011; ISBN 978-1439820643
  • AVR 마이크로 컨트롤러 및 임베디드 시스템: 어셈블리C 사용, Muhammad Ali Mazidi, Sarmad Naimi, Sepehr Naimi, Pearson, 792페이지, 2010, ISBN 978-0138003319

외부 링크

공식 웹사이트
공식 커뮤니티
핀 배치도