일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 시스템프로그래밍
- Visual Micro
- stl
- Stack
- arduino compiler
- Array
- priority_queue
- c++
- Algorithm
- C언어
- LineTracer
- 아두이노 소스
- queue
- html
- 컴퓨터 그래픽스
- directx
- 아두이노
- 자료구조
- 통계학
- list
- Arduino
- 운영체제
- 아두이노 컴파일러
- 수광 소자
- 라인트레이서
- Deque
- map
- set
- WinAPI
- vector
- Today
- Total
Kim's Programming
아두이노 부트로더 단독 보드 복구 본문
아두이노보드가 업로드가 안되는 경우가 있습니다.
이경우 대부분 부트로더의 문제인데 보통 보드 두개를 이용한 방법 뿐이었습니다.
하지만 전 보드 하나만으로 부트로더 복구가 필요했고 몇시간동안 찾아본 결과 해결방법을 찾아 포스팅합니다.
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를 의미 |
파일명은 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 |