본문 바로가기
코스웨어/16년 스마트컨트롤러

아두이노 부트로더 복구

by 알 수 없는 사용자 2016. 10. 27.
728x90
반응형

얼마전 12v로 아두이노에서 전력 공급을 하다가 

잠깐 실수로 제 아두이노 atmega칩을 태워먹었습니다;


그러다가 선생님의 아두이노를 빌려서 오늘 복구를 진행했습니다




일단 이방법은 아두이노 2개를 이용한 방법 입니다


공식홈페이지에서는 아두이노 연결시  auto reset 기능 때문에 안되므로 

10uf 캐패시터를 GND와 RESET 연결후 부트로더를 구우면 된다고 하지만 안되더군요


할수없이 다른방법을 썼습니다


https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard


공식홈페이지에서 나온것처럼 직접 Atmega328p-pu 만 가지고 작업을 하니 됬습니다




사용한것 :


정상적인 아두이노 , 

부트로더 날린 아두이노 , 

16 MHz 크리스탈 ,

10k 옴 저항,

20 picofarad 캐패시터 2개




1번. 부트로더 굽기


아래처럼 공식홈페이지에 나온것을 참고해서 연결후 ( 자세한건 위의 링크 참고하시길 바랍니다)



정상적인 아두이노와 새로 구입한 Atmega328p-pu 연결 모습





Arduino ISP 예제를 불러옵니다





그후 아래와 같이 보드및 포트 설정 그리고 가장중요한 프로그래머 세팅을 

반드시 "Arduino as ISP"로 설정하셔야 합니다...비슷하게 보이는 AruinoISP로는 부트로더 굽기 실패합니다





2번. 컴파일된것 업로드


1번만 한다고 끝나지 않습니다...아래처럼 직결한뒤 조금전의 ArduinoISP 코드를 업로드해야만 이후 정상작동을 합니다

1번만 하면 다끝나는줄 알고 했다가 안되서 삽질을 좀했습니다;




저 그림에서 나온것처럼 반드시 Atmega328을 제거한 보드위에서 작업을 하셔야합니다

물론 보드자체에 문제가 없다는 전제하에서만 정상업로드가 되겠죠;



이렇게 업로드한뒤 전원제거후 다시 제자리에 꽂으면 정상작동하는것을 볼수있습니다 ^^


안되면 arduino as ISP 가 아닌 AVR ISP 로 프로그래머 세팅후 부트로더 업로드등을 해보시는것도 좋을듯 합니다

구글링해보니 그런글들이 보이더군요...

728x90