업로더 USB tiny ISP

한 카페에 USBtiny ISP 업그레이드로 추가 판매글이 올라온 새 제품인데 인터넷 판매보다 훨씬 싸게 판다고…한 번도 써본 적이 없어 호기심이 생겼는데 나는 내가 직접 만든 업로드 보드가 있어서 별로 필요 없었다.그런데 잠시 글을 읽고 정신을 차려보니 어느새 제 손이 댓글을 달고 있던 “제가 살게요.”(그래도 다행이야? 인건비가 싼 편의점 반값 택배로 받았다며 위안을…)

USBtiny ISP 업로더로 아두이노보드 또는 자작보드 등 ISP 포트가 있는 보드로 부트로더를 굽거나 부트로더 없이 코드를 업로드 할 수 있다

갖고 있던 MCU들을 몇 개 테스트해 봤는데 모두 잘 작동한다는 것이지만 신기한 것은 부트로더를 올린 MCU와 단지 코드만 올린 MCU의 동작이 약간 차이가 났다.

아두이노 Blink 예제의 경우, 1초마다 LEDON/OFF를 반복할 필요가 있다.부트로더를 올려 코드를 업로드한 MCU는 코드에서 기술한 대로 정상적인 동작을 하고, 부트로더 없이 코드만 업로드한 MCU는 약간의 오동작이 발생한 예를 들면 1초가 아니고, 5초마다 ON/OFF가 되는 등…

하드웨어 전문가가 아니라 전문지식을 기반으로 한 원인을 분석할 수는 없지만, 아마도 MCU의 작동에 필요한 클럭 설정과 관련이 있지 않을까. 하고 추측해 본다.(언젠가는 이 부분에 대해서 이해하게 되겠지…)

어쨌든 USBtiny ISP에 업로드 할 때는 부트로더를 꼭 업로드 해서 사용해야 할 것 같다

2021.02.19 추가

몇 개의 카페에 위의 내용에 관한 질문을 게재했는데, 답변이 온 「MCU가 생산될 때, 동작에 관련된 클럭이나 퓨즈 비트등이 일정한 상태로 생산되는데, 이것을 유저가 사용하기 위해서 부트로더를 업 로드하면, 해당 Device에 필요한 클럭이나 휴즈 비트로 재설정되는 과정을 거치게 된다.따라서 생산 초기 상태의 클락과 부트로더를 올린 뒤 MCU의 클락은 다르기 때문에 코드만 올렸을 때와 부트로더를 올린 뒤 코드를 올렸을 때의 동작이 다를 수 있다는 결론을 얻었다.예상했던 내용이지만 왜 그런지 이해할 수 없었지만 질문을 통해 설명을 듣고 이해할 수 있었다.

또 이 과정에서 AVRDUDES와 USBtiny ISP를 통해 MCU 내부 퓨즈비트의 확인 및 설정이 가능한 것도 밝혀졌다. 이해할 수 있던 부분을 눈으로 확인해 보고 싶어 프로그램을 다운로드해 설치해, 우노보에 연결했다.처음 보는 프로그램이므로 다른 부분의 사용법은 모르지만, 부트로더를 올린 MCU와 공장 출하 상태의 Blank MCU의 퓨즈비트가 다른 것을 볼 수 있었다.

공장출하상태로 부트로더가 없는 ATmega 328p

부트로더를 올린 후의 ATMa328p가 프로그램을 공부해 보는 것도 재미있을 것 같다

error: Content is protected !!