한 카페에 USB 티니 ISP 업로더 판매 글이 올라왔다.새 제품인데 인터넷 판매가보다 훨씬 싸게 판다니…한 번도 안 써본 물건이라 호기심이 생겼지만 직접 만든 업로드 보드가 있어서 별로 필요없었는데 글을 한참 읽고 정신을 차려보니 어느새 내 손이 댓글을 달더라.”(그래도 다행이야? 인건비가 싼 편의점 반값택배로 받았다고 위로를…)
USBtinyISP업로드로 아도우이노보ー도 또는 자작 보드 등 ISP포트가 있는 보드로 부트 로더를 굽거나 부트 로더 없이 코드를 업로드할 수 있다는 MCU을 몇개 시험하고 봤지만 모두 정상 작동한다고 하지만 이상하긴 부트 로더를 올린 MCU와 코드만 올린 MCU동작에 약간 차이가 있었다.아도우이노 Blink예의 경우, 1초마다 LED ON/OFF를 반복할 필요가 있는 부트 로더를 올리고 코드를 업로드한 MCU는 코드로 기술한 대로 정상적인 동작을 하는, 부트 로더 없이 코드만 올린 MCU는 약간의 오작동이 발생했다. 예를 들면 1초가 아니라 5초마다 ON/OFF등… 그렇긴.하드웨어 전문가가 아니라 전문 지식에 근거한 원인을 분석할 수는 없지만 아마 MCU의 작동에 필요한 시계 설정과 관련이 있는 것이 아닌가. 라고 추측하고 보자.(언젠가는 이 부분에 대해서 이해할 것..)어쨌든 USBtinyISP에 업로드할 때는 부트 로더를 꼭 올리고 써야 할 것 같다.첨부 파일 zadig-2.5_USBtinyISP_Driver.exe파일 다운로드 내 컴퓨터 저장

네이버 MYBOX에 저장2021.02.19추가 몇몇 카페에 상기의 내용과 관련된 질문을 올리자 대답이 달린 “MCU가 생산될 때 동작에 관련된 클락과 공평 비트 등이 일정한 상태에서 생산되지만 이를 사용자가 사용하기 위해서 부트 로더를 올리면 해당 Device에 필요한 클락과 퓨즈 비트에 재설정되는 과정을 거친다. 그러므로 생산 초기 상태의 클럭과 부트 로더를 올린 후, MCU클록은 다르기 때문에 코드만 올렸을 때와 부트 로더를 올린 후, 코드를 올렸을 때의 동작이 다를 수 있다”라는 결론을 얻었다.예상한 내용이지만 왠지 이해 못했지만, 질문을 통한 설명을 듣고 이해하게 됐다.또 이 과정에서 AVRDUDES와 USBtinyISP를 통해서 MCU내부 퓨즈 비트의 확인 및 설정이 가능하다는 것도 나타났다. 이해한 부분을 눈으로 확인하고 싶다고 생각하고 프로그램을 내려받아 설치하고 우노 보드에 접속했다.처음 보는 프로그램이라 다른 부분의 사용은 모르지만 부트 로더를 올린 MCU와 공장 출하 상태의 BlankMCU의 퓨즈 비트가 서로 다른 것이 보였다공장출하상태에서 부트로더가 없는 ATmega328p부트로더를 올린 후 ATmega328p이 프로그램을 공부해 보는 것도 재미있을 것 같다