아두이노를 가지고 놀다보면, 여러가지 함정에 마주한다. 그리고 당연하게도 수 많은 시간을 빼앗긴다. 누군가 나와 같이 함정에 빠져 허우적 거리지 않길 바라며 적어본다.

 

 

아두이노 보드 정리

 

아두이노 보드 별 칩셋에 대한 정보를 숙지하지 않고 개발하다보면, 분명히 나중에 문제가 된다. 나는 여러가지 보드를 구매해서 사용 중이며, 그것들 위주로 기록한다. 뭐 이외의 보드들도 다 거기서 거기니까 :)

 

아두이노 보드명 MCU (마이크로 컨트롤러 유닛)
아두이노 메가 2560 Atmega328 시리즈
아두이노 나노 Atmega328 시리즈
아두이노 레오나르도 R3 Atmega32u4 시리즈
아두이노 마이크로 (Pro Micro) Atmega32u4 시리즈

 

크게보면 Atmega328 시리즈와 Atmega32u4 시리즈로 나뉜다. 시리즈라고 표현한 이유는 Atmega328P-AU, Atmega328P-PU 처럼 조금씩 다르기 때문이다. 하지만 기본적인 기능은 같으니 여기서는 무시하자.

 

Atmega32u4 의 특징이라고 한다면, 기본적으로 HID 를 지원한다. 아두이노로 가상 키보드나 마우스 등을 만들 생각이라면 ATmega32u4 칩을 사용하는 보드를 이용하는것이 정신건강에 이롭겠지?

 

 

 

수 많은 함정들

 

이것저것 개발을 하면서 꼼꼼히 보지 않으면, 놓치기 쉬운 - 그리고 함정이 되는 - 것들을 몇가지 적어 보겠다.

 

 

 

Arduino Nano 의 Pinout

 

SCP(Serial Peripheral Interface) 를 이용하여 ICSP 를 할 경우, 핀맵(Pinout)을 확인하는 경우가 허다하다. 그런데 아두이노 나노의 경우, 작은 함정이 있다. 검색을 해 보면 아래와 같이 대부분 나와 있다. 거의 모든 자료가 그렇다.

 

 

여기서 SCP 쪽을 유심히 보자. 

 

빨간색으로 박스 친 그림 그대로 해석하면 안된다. 이해가 가는가? 레이아웃 그대로 보면 안된다는 이야기다. 자세히보면 아두이노 나노의 경우 좌하단에 1 이라고 써 있는것을 알 수 있다. 응??

 

 

이렇게 1이 우상단으로 가도록 돌려 놓고 봐야 된다. -_-;; 조심하도록 하자.

 

 

 

 

CSP 로 스케치 업로드 하기

 

나는 Attiny45 와 Attiny85 를 가지고 놀기 좋아한다. 왜냐면 나는 대부분 거창하게 바퀴가 달린 장난감이나 로봇을 만들지 않기에 때문이다. 소소하게 작은 단추 베터리 넣고, 오랫동안 저전력으로 사용하는 악세서리나 소품을 만든다.

아무튼 Attiny 를 사용할때 아두이노 보드를 ISP 로 만들고, 그것을 통해 Attiny 에 펌웨어도 올리고, 스케치도 업로드 한다.

 

어느날 새로 구매한 아두이노 나노에 펌웨어를 다시 올려야 할 일이 생겼다. 기존에 만들어둔 아두이노 나노(A라고 하자)를 ISP 프로그래머로 만든 후, 새로 산 아두이노 나노(B라고 하자)와 연결하였다. 그리고 펌웨어를 올렸다. 문제없이 잘 올라갔다. 이후에 스케치 파일을 B에 올리기 위해 업로드 하였으나, 연결에 계속해서 실패하였다. Attiny 에서는 잘 되던 시나리오인데 말이다.

 

끝내 알아낸 원인은, Attiny 가 특이하게도(?) ICSP 를 통한 스케치 업로드를 지원하기 때문에 문제 없이 진행 되었던 것이다. 이게 기본적인 기능은 아니다. 그렇기 때문에 B에는 ICSP 를 통한 스케치 업로드가 불가능한 것이었다. 나의 익숙함이 함정이 되어 나를 곤경에 빠뜨린 셈이다. 주의하자. Attiny 처럼 칩셋에 스케치를 직접 올리는게 아닌 이상은 PC 와 연결해서 업로드 하도록 하자.