이탈리아어로 due 는 두에 라고 읽고 '둘'이라는 뜻이다. 숫자 1, 2, 3 이 uno, due, tre ... 이다. 다른 것들은 모두 AVR계열의 프로세서를 사용해서 최대 클럭 속도(16MHz)나 배정도(double) 실수 사용에 제약이 있으나 이것은 ARM Cortex-M3 프로세서를 사용하여 훨씬 높은 성능을 가지고 있다.


[그림 1] 아두이노 Due 의 외형

일단 클럭주파수가 84MHz이고 내부적으로 3.3V를 사용 (보통 다른 아두이노 보드는 5V로 동작한다)하므로 라즈베리파이의 GPIO와 핀끼리 바로 연결할 수 있다는 장점도 있다. 또한 AVR 기반의 아두이노 보드와 달리 DAC도 내장하고 있으며 프로그램에서 64bit double형도 다룰 수 있다고 한다. 성능이 높은 만큼 가격은 다소 비싼 편이다. 동작 클럭이 84MHz이므로 단순히 비교하면 우노보드보다 5배 이상 성능이 높으며 디지털 핀수가 굉장히 많아졌고 PWM 개수도 우노보드보다 더 많으며 해상도도 12bit까지 지정할 수 있다. 그리고 모든 디지털핀에 인터럽트를 설정해 줄 수 있다는 것도 큰 장점이다. 우노의 경우 두 개의 외부 인터럽트만 사용할 수 있다.


 자세한 사양은 다음 표와 같다.

[표 1] 아두이노 Due 보드의 사양

Microcontroller

AT91SAM3X8E

Operating Voltage

3.3V

Input Voltage (recommended)

7-12V

Input Voltage (limits)

6-16V

Digital I/O Pins

54 (of which 12 provide PWM output)

Analog Input Pins

12

Analog Outputs Pins

2 (DAC)

Total DC Output Current on all I/O lines

130 mA

DC Current for 3.3V Pin

800 mA

DC Current for 5V Pin

800 mA

Flash Memory

512 KB all available for the user applications

SRAM

96 KB (two banks: 64KB and 32KB)

Clock Speed

84 MHz

 두에보드에는 USB연결단자가 두 개가 있는데 기본적으로 DC잭에 가까운 마이크로USB포트와 PC를 연결하면 전원이 공급되며 프로그램을 업로드할 수 있는 환경이 된다. 이 경우 별도로 DC잭으로 전원을 공급할 필요는 없으나 필요할 경우 7V~12V를 연결해야 한다.


[그림 2] 아두이노 Due의 프로그래밍 포트

 한 가지 주의할 점은 기존 아두이노보드들은 5V로 구동되는데 비해서 이것은 구동 전압이 3.3V라는 것이다. 입출력 핀에 5V신호를 인가하면 보드에 손상이 올 수도 있다고 하니 주의해야 한다.


 PC와 USB를 연결하고 스케치를 실행한 후 도구>보드>아두이노Due(Programming port)를 선택하고 도구>포트>COM? 에서 올바른 포트를 선택하면 일단 환경설정이 끝난 것이다. 예제의 Blink 를 열어서 업로드하면 보드상의 LED 가 깜빡이는 것을 볼 수 있다.

핀의 구조를 도시한 다이어그램은 다음과 같다.

[그림 3] 아두이노 Due의 핀맵

 한 가지 주의할 점은 클럭이 84MHz 이니까 16MHz 를 사용하는 우노보다 6배 이상 성능이 높을 것이라고 기대하면 안된다는 것이다. 성능 테스트를 위해서 간단한 프로그램으로 테스트를 해 보았다. 프로그램은 다음과 같이 2번 핀을 연속적으로 on/off 시키는 것이다. 그리고 이 핀의 주파수가 어떻게 나오는가를 스코프로 찍어보는 것이다.


void setup() {
   pinMode(2, OUTPUT);
}
void loop() {
   while(1) {
       digitalWrite(2, HIGH);
       digitalWrite(2, LOW);
   }
}

2번 핀을 스코프로 찍어서 본 결과는 다음과 같다. 화질이 안 좋지만 세로 줄 한 칸이 1us이므로 구형파의 한 주기가 5us 이다. 따라서 주파수는 200kHz라는 것을 알 수 있다. 가로줄은 한 칸이 1V이므로 on 상태에서 3.3V 의 값을 갖는것을 알 수 있다.

[그림 4] 실험 결과

똑같은 프로그램을 아두이노 우노에 집어 넣고 실행 시킨 결과 구형파의 한 주기가 8us 가 나왔다. 주파수로 따지면 125kHz이다.


 이것만으로 단순하게 성능비교를 하기에는 부족하지만 두에가 우노보다 약 1.6배의 성능을 보여준다. 우노의 클럭주파수가 16MHz 이고 두에가 84MHz이다. 내부적인 연산 속도는 5배 이상(실수 연산의 경우에는 더 높은 성능을 기대할 수 있을 것이다.)의 성능을 가질 것으로 짐작할 수 있으나 디지털 핀과 같은 하드웨어를 제어하는 경우에는 우노에 비해서 5배 이상의 성능을 기대한다는 것이 무리라는 결론이 나온다.



Posted by 살레시오