Atmel

1 개요

미국의 반도체 회사이다. 주로 저용량 메모리 반도체와 마이크로프로세서 제품군으로 우리에게 잘 알려져 있으며 전자공학도들은 AVR 이라는 프로세서로 꽤 많이 알려져 있고 또한 저주할 것이다.

2 주요 제품군

Atmel은 여러가지 제품군을 보유하고 있으며, 가장 잘 알려진 것은 마이크로프로세서 제품군이다.

2.1 마이크로프로세서 제품군

2.1.1 8-bit AVR

우리가 과제용으로 많이들 사용하는 AVR 마이크로프로세서가 이 회사 제품이다. 크게 AVR Classic, megaAVR, TinyAVR, Xmega 로 구분할 수 있으며, 과제용으로 많이 사용하는 ATmega128은 megaAVR 제품군이다.

특징이라면 다른 MCU들에 비해 강인한 전기적 특성이다. Renesas 사의 주력 MCU인 RL78은 핀 당 출력 전류가 0.5mA 급의 핀이 있는 등 전기적 특성이 불확실하지만, AVR 은 모든 핀이 기본적으로 40mA 까지 출력을 지원한다. 또한 스파크 등에 강력하여 다른 MCU가 죽어나갈 스파크에서도 AVR 은 어느 정도 버티는 모습을 보여준다. 물론 강한 스파크가 걸리면 뭐가 됐든 죽는다

다만 이런 특성에도 단점은 있는데, 대부분의 MCU가 16MHz[1] 의 저속으로 동작하며, 무엇보다 저전력 저발열이 대세인 요즘 시대에 맞지 않게 전기를 많이 먹는다는 점이다(...). 이를 극복하고자 Picopower AVR 같은 제품군을 많이 출시하고 있다.[2]

8-bit AVR 제품군에 대한 간략한 분류는 다음과 같다.

AVR ClassicC를 이용한 제어가 불가능하고 오로지 어셈블리로만 제어 가능. 요즘에는 잘 쓰이지 않는다
megaAVR8-bit AVR 의 실질적인 주력. 싼 가격에 적절한 성능에 적절한 안정성을 가졌다. Arduino 제품군에 사용된 대부분의 MCU가 이 제품군이며, Arduino Leonardo 에 탑재된 ATmega32U4도 이 제품군이다.
TinyAVR매우 적은 핀 수를 가진 제품군. 주로 단순 제어 시스템에 탑재된다. C 컴파일러가 지원하는 종류도 있지만, 어셈블리로만 프로그램 가능한 것도 있다. JTAG 을 통한 디버깅은 불가능하고 오로지 ISP 장비로만 프로그램 가능하다
Xmega8-bit AVR 라인업의 끝판왕. 다른 제품군들이 16MHz 이하로 동작할 때, 이 제품군은 32MHz 로 동작한다. 또한 ATXmega128A1(U) 제품군만 보더라도 UART 통신이 8개나 들어가는 등 확장성의 끝판왕을 보여준다. 아직 이 CPU는 국내에 교재 등이 많이 풀리지 않았지만, 한 개의 CPU로 많은 숫자의 주변 장치들을 제어하고 싶다면 이 라인업을 시도해보자.

2.2 32-bit AVR

한참 ARM이 ARM7TDMI 를 가지고 MCU 시장에 진출했을 때, Atmel에서 야심차게 ARM에 대항하려고 출시한 제품. 기본 66MHz 정도의 클럭에 몇몇 제품군들은 SD 카드 인터페이스도 달고 있는 등 꽤 쓸만한 MCU였다. 단점으로는 전기적 특성이 형편없고 (기본 출력전류가 골고루 0.8mA 이다.) 결정적으로 최근에 시장을 지배하는 ARM 코어가 아니기 때문에 점점 사장되어가는 MCU 제품군.

32-bit AVR 제품군에 대한 간략한 분류는 다음과 같다.

A 시리즈 (AT32UC3A - )크게 A0/A1 시리즈와 A3/A4 시리즈로 분류할 수 있다. 이 시리즈의 특징은 괴악한 확장성에 있다. USB 등은 기본으로 들어가고, 이더넷 장치에 A3/A4 시리즈는 SD 카드 인터페이스까지 안에 내장되어 있다. 그만큼 압도적인 핀 수와 가격을 자랑한다. 시중에 A 시리즈 개발 보드가 싸게 풀린 것이 있으니 그것을 사서 진행하면 된다. Atmel 사의 최신형 JTAG 장비에 들어가는 EDBG 칩이 바로 이 A 시리즈 32-bit AVR 을 개조한 칩이다.
B 시리즈 (AT32UC3B - )적절한 크기에 적절한 성능을 가진 제품군. 64핀 제품이 가장 많은 핀 수를 가진 제품이며 주로 USB 포터블 장치가 타겟이다.
C 시리즈 (AT32UC3C - )이더넷 컨트롤러와 부동 소수점 유닛, ADC, DAC 가 탑재된 제품군이다. CAN 통신 장치도 2개나 탑재되어 있다. 아날로그 장비가 많이 필요하다면 고려해보자.
D 시리즈 (AT32UC3D - )보급형 제품. 홈페이지에서도 Entry Level 이라고 표기되어 있다.
L 시리즈 (AT32UC3L - )저전력에 특화된 제품.
오디오 시리즈 (AT32UC3A - )MCU 주제에 오디오 디코더가 들어있는 괴악한 물건이다. 간단한 오디오 장비를 만들고 싶다면 고려해보자.

그 외에 AP 칩으로 통합된 AVR 32도 있는데, 몇몇 잉여인간들은 이 32-bit AVR 을 가지고 퀘이크 1을 돌리기까지 했다 (...)

2.3 ARM 제품군

Atmel에서는 여러 ARM 제품군이 존재하는데, 우리에게 친숙한 것들은 ARM7TDMI 를 활용한 AT91SAM7S64, 256 같은 것들이 있다. 이 칩들은 SAM-BA 를 이용해서 프로그램하거나, 다른 JTAG 장비를 통해 프로그램을 넣을 수 있다. 하지만, 이 칩들은 장점보다는 단점이 더 많은 칩들인데, 우선 프로그램을 하려면 부트로더를 올려줘야 하는데, 이 작업이 꽤나 괴악하다.[3] 그런데 부트로더를 써서 프로그램을 업로드하면 부트로더가 지워진다(...) 따라서, 프로그램을 수정하려고 하면 매 번마다 저런 노가다를 해야 한다! 그렇다면 남은 방법은 JTAG 장비를 쓰는 방법밖에 없는데, 이 장비가 여간 비싼 게 아니다. (15~20만원 정도 한다. 물론 다른 DSP 프로세서의 JTAG 장비보다는 싸지만..) [4] 따라서, 저 칩은 사실상 사장된 상태이다.

또 다른 제품군으로는 ARM Cortex-M 시리즈 를 도입한 제품군이다. 부품 번호가 AT91SAM3, 4 등으로 시작하며, Cortex-M 기반이니만큼 뛰어난 성능을 보여준다. Arduino 의 ARM 제품군 라인업에 탑재된 것이 바로 이 제품군인데, Due 는 AT91SAM3 계열의 프로세서가, Zero는 Cortex-M0 기반의 MCU가 탑재되었다.

2.4 무선 마이크로컨트롤러

주로 8-bit megaAVR 코어나 ARM Cortex-M0 코어에 지그비 모듈을 박아넣어 무선 통합 SoC 형태로 출시된다. 아쉽게도 블루투스 관련 제품은 포함되어 있지 않다. 최근에는 IoT 시장에 맞추어 Wi-Fi 모듈이 통합된 제품을 출시하고 있다.
  1. 몇몇 제품은 최대 20MHz 까지가 공식 지원 클럭이며, ATmega1281 등은 크리스탈 발진기를 바꿔(...) 20MHz 로 동작하도록 오버클럭이 가능하다
  2. Arduino Uno 에 들어간 ATmega328P 가 바로 Picopower AVR 제품군이다.
  3. 보드의 Erase 스위치를 켜고 10초동안 기다린 다음, 전원을 내리고 스위치를 끈 다음 다시 켜야 부트로더가 활성화된다.
  4. 요즘에는 openocd 호환품을 사면 4 ~ 5만원대로 많이 싼 것을 구할 수 있다. 다만 소프트웨어가 CUI 기반이니 통합은 알아서 해야 할 것이다(...)