가제트연구소

아두이노 leonardo(네오나르도)를 사용하여 부트로더 굽기 본문

소일거리/아두이노

아두이노 leonardo(네오나르도)를 사용하여 부트로더 굽기

가제트연구소장 2013. 2. 17. 22:53

기존에 가지고 있던 아두이노(leonardo,레오나르도) 보드를 활용하여 새로운 아두이노 보드를 만들어 보았습니다.

 

작업 전 관련 자료 검색해 보니 우선 Atmega328 칩에 아두이노 부트로더를 구워야 하는데 이때 보통 ISP라는 장비를 사용하지만 ISP가 없는 경우 기존에 가지고 있던 아두이노 보드를 가지고 새로운 Atmega칩에 부트로더를 굽는 방법이 있으며, 쉬워서 대부분의 경우 큰 문제 없이 성공한 것을 확인할 수 있었습니다.

 

대표적인 방법은 http://procider.tistory.com/183(시더님 블로그)에서 확인할 수 있습니다. 해당 블로그의 안내와 같이 빵판을 구성하고 차례대로 구성했으나 왠일 인지 아래와 같은 오류만 발생 했습니다.

"stk500_getsync(): not in sync: resp=0x00"

 

다른 분들은 쉽게 잘 하는 것으로 보이던데 저는 왜 이럴까요? 관련 자료 찬찬히 다시 한번 더 살펴보니 대부분의 자료가 아두이노 UNO(우노) 보드 기준이네요.

 

혹시 leonardo는 불가능한가? 폭풍 검색을 해 보니 역시 다른 방법으로 접근을 해야하는군요.

외국의 용자분이 잘 정리해 두신 블로그입니다

http://petervanhoyweghen.wordpress.com/2012/09/16/arduinoisp-on-the-leonardo/

 

해당 블로그 참고하여 구성하나 한방에 성공하는 군요.

 

다음 내용은 위의 블로그를 참고하여 작업한 내용으로 네오나르도 사용자는 저처럼 헤메지 마시고 한방에 성공하시기 바랍니다.

 

 

1. ICSP 단자를 활용하여 연결하기

 

우노 보드의 11, 12, 13핀은 각각 MOSI, MISO, SCK 기능을 가지고 있으나 Leonardo의 11,12,13핀은 이런 기능이 없어 ICSP 단자를 사용해야 합니다. 아래 그림의 오른쪽 중간 부분에 붉은 박스가 ICSP 단자입니다. ICSP 단자의 왼쪽 제일 위가 1번이며, 각 핀의 배열은 아래 그림을 참고하세요.

새로운 부트로더를 올릴 ATMega328P-PU의 핀 배치도

 

 

 

빵판 구성은 위에서 알려드린 시더님의 블로그와 동일하게 구성하시고, 우노 보드에 연결되어 있던11,12,13핀은 다음과 같이 연결하세요.

Leonardo ICSP 1번(MISO) -> Atmega328 18번(PB4)

Leonardo ICSP 3번(SCK)   -> Atmega328 19번(PB5)

Leonardo ICSP 4번(MOSI) -> Atmega328 17번(PB3)

 

 

 

2. 아두이노 개발 환경 수정 하기

 

1) 아두이노 개발 환경 실행하고,  파일 > 예제 > ArduinoISP 선택하여 스케치 오픈 후 아래와 같이 수정

       - #define RESET     SS    -->  #define RESET     10

 

2) 스케치가 저장된 폴더(저의 경우는 라이브러리 > 문서 > 내 문서 > Arduino)에 hardware  폴더 생성 후 hardware 폴더 이동하고, 다시 leofix 폴더 생성

       - leofix 폴더에 programmers.txt  텍스트 파일 생성 후 다음 내용을 저장

 

arduinoispleo.name=Arduino as ISP (Leonardo)
arduinoispleo.communication=serial
arduinoispleo.protocol=arduino
arduinoispleo.speed=19200

 

 

3. 부트로더 굽기

 

1) 아두이노 개발 환경에서 아까 수정한 ArduinoISP 컴파일 후 업로드

2) 도구 > 프로그래머 > Arduino as ISP (Leonardo) 선택

3) 도구 > 보드 > Arduino Duemilanove w/ ATmega328  선택

4) 도구 > 부트로더 굽기 선택(대략 1분 정도 소요 됨)