관리 메뉴

Kim's Programming

아두이노 부트로더 단독 보드 복구 본문

Arduino/부품 이야기

아두이노 부트로더 단독 보드 복구

Programmer. 2015. 7. 6. 01:05

아두이노보드가 업로드가 안되는 경우가 있습니다.

 

이경우 대부분 부트로더의 문제인데 보통 보드 두개를 이용한 방법 뿐이었습니다.

 

하지만 전 보드 하나만으로 부트로더 복구가 필요했고 몇시간동안 찾아본 결과 해결방법을 찾아 포스팅합니다.

 

AVRDUDE를 사용해야 하는데 그냥 이용은 안되고WINAVR이란 프로그램을 설치하여 이용할 수 있습니다.

 

우선 WINAVR이란 프로그램을 설치합니다.

 

WinAVR-20100110-install.vol1.egg

 

WinAVR-20100110-install.vol2.egg

 

WinAVR-20100110-install.vol3.egg

 

위의 파일들을 받아 설치합니다.

 

 

 

 

설치가 끝난뒤 명령 프롬프트를 키고 avrdude라고 쳐서 정상적으로 avrdude를 이용할 수 있는지 확인합니다.

 

 

 

 

위와 같이 뜨는경우 정상적으로 설치가 된것입니다.

 

자신의 보드를 확인합니다. 그리고 필요한 부트로더 파일을 찾아야합니다.

 

C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders경로에서 부트로더 파일들을 찾을수 있습니다.

 

(저의 경우 64비트 운영체제를 사용중이므로 경로가 저것이고 일반 32비트의 경우

 

 C:\Program Files\Arduino\hardware\arduino\avr\bootloaders 에서  찾으실 수 있습니다.)

 

저는 Arduino Uno 보드를 사용하므로 atmega328 부트로더를 찾았습니다.

 

 

 

위의 경로까지 갑니다. 여시서 명령 창 열기를 눌러줍니다.

 

(부가설명으로 그냥 오른쪽 클릭을 하면 저 메뉴는 나오지 않습니다. Shift를 누른상태에서 오른쪽 클릭하시면 저런 창을 띄우실 수 있습니다)

 

 

 

해당 경로까지 이동한 프롬프트가 떴습니다.

 

아두이노에 부트로더를 업로드 하려면 다음과 같이 명령어를 치면 되겠습니다.

 

avrdude -p atmega328p -P com6 -c arduino -U flash:w:(파일명):i

 

일단 치기전에 간단히 살펴 보고 가겠습니다.

 

명령어 부분 

 의미

 avrdude

avrdude 호출 

 -p atmega328p

 자신이 이용하는 프로세서 이름

 -P com6

 연결되어 아두이노 보드 이용시 업로드에 이용되는 포트 번호

  -U flash:w:(파일명):i

flash 는 flash memory를 의미
w 는 write를 의미 
(파일명) = 업로드할 파일
I = Intel 의 hex format을 의미

 

파일명은  C:\Program Files\Arduino\hardware\arduino\avr\bootloaders에서 .hex로 끝나는 파일의 확장자! 까지 써넣어 주셔야합니다.

 

저는 atmega328을 이용하고 현재 Arduino Uno 보드는 COM 6포트에 연결되어 있으며 ATmegaBOOT_168_atmega328.hex 이름의 부트로더

 

를 이용해야 하므로 다음과 같이 명령어를 쳐야합니다.

 

avrdude -p atmega328p -P com6 -c arduino -U flash:w:ATmegaBOOT_168_atmega328.hex :i

 

위와 같이 치면

 

 

다음과 같이 진행 되며

 

avrdude : safemode :Fuses OK를 확인하셨다면 부트로더가 복구되었음을 확인 하실 수 있습니다.

 

단순히 고장났다고 생각 되는 경우이지만 부트로더의 문제가 큰경우가 많기 떄문에 안되실 때 한번 확인해보시기 바랍니다.

 

 

'Arduino > 부품 이야기' 카테고리의 다른 글

아두이노 Servo 모터 무한회전 개조  (0) 2015.07.18
아두이노 servo 모터  (1) 2015.07.01
아두이노 초음파 센서의 이용  (0) 2015.07.01
LB1630 드라이버 IC와 작동  (0) 2015.06.30
적외선 센서와 ADC  (0) 2015.06.30