전자, 전기, 소프트웨어, 기계, 3D 프린터, 아두이노, 라즈베리파이, 쇼핑몰 창업

전체 페이지뷰

이 블로그 검색

최신글

[Blender] 3D viewport 사용법

아두이노 ATmega328 칩 내부클럭(8MHz) 부트로더 굽는 방법


2016.01.13

아두이노 디지털 스폿 용접기를 제작할 때, Arduino Uno에 쓰이는 Atmega328칩을 메인 컨트롤러 칩으로 사용합니다.

이 칩을 구동하기 위해서는 크리스탈이라는 부품을 사용하여 16mhz의 외부클럭 속도로 사용하는 것이 기본 설정입니다. 

그러나 제작 단가를 낮추기 위해서는 외부클럭 등 여러 부품들을 제외하고 Atmega328p-pu칩만 사용할 수 있습니다. 외부클럭을 제외하고도 ATMega328칩은 8mhz의 내부클럭을 지원합니다.

8mhz의 내부클럭을 사용하기 위해서는 ATMega328칩에 8mhz전용 부트로더를 구워야합니다. 완전 정밀한 값이 필요한 빠른 작업이 아니라면, 8mhz 만으로도 충분한 결과가 나온다는 이야기를 듣고 도전해 봤습니다.

기본 내용은 낭만베짱이님의 블로그를 참고하였습니다.

수십번의 삽질을 거쳐 성공한, 부트로더 굽는법을 자세히 포스팅 해 봅니다.

준비물
  • ATmega328p-pu칩
  • 16mhz 크리스탈
  • 22pf 세마릭 콘덴서 2개
  • 브레드보드 및 점퍼선
  • 아두이노 우노 칩이 장착된 우노보드

8mhz 부트로더 굽는 방법

먼저 아래의 이미지와 같이 부품들을 배선해 줍니다.
이때, 유의해야 할 점은 아두이노 보드에 메인 칩이 장착된 상태여야 합니다.




모든 부품들을 정상적으로 연결했다면, 컴퓨터와 아두이노 보드를 연결하고 Arduino ISP 업로드를 위해 아두이노 프로그램을 켜 줍니다. Arduino ISP 업로드는 아두이노 프로그램에서 파일-예제-Arduino ISP-업로드 순서로 하면 됩니다.
이때, 성공적으로 Arduino ISP가 업로드 된다면 아래와 같은 사진이 떠야 합니다.


* Arduino ISP 업로드 시 보드 설정을 Arduino UNO (자신의 보드) 로 설정하고 하셔야 합니다. 위 이미지에서는 8mhz 부트로더 업로드 후 이미지라 보드가 8mhz 보드로 뜨는데, ISP업로드 시에는 연결된 자신의 보드로 업로드해야 합니다.



ISP 업로드가 성공적으로 완료되었다면, 그대로 보드를 ATmega328 on a breadboard (8 MHz internal clock)으로 설정하여서 부트로더를 업로드 해 줘야 합니다.

그런데, 일반적으로 보드 설정을 위해 툴-보드에 들어가보면, 위와 같은 이름의 보드는 존재하지 않습니다. ATmega328 on a breadboard (8 MHz internal clock) 보드 항목을 추가하기 위해서는 https://www.arduino.cc/en/uploads/Tutorial/breadboard-1-6-x.zip 에 접속하여 8MHz 보드가 등록이 가능하게 만들어주는 파일을 다운받아야 합니다.

ZIP파일을 다운받았다면, 컴퓨터마다 다르겠지만 아두이노가 설치된 폴더 속 hardware 폴더에 압축을 풀어주면 됩니다. 일반적인 경로는 C:\ProgramFiles(x86)\Arduino\hardware 입니다.

압축 해제 후 폴더 경로는 C:\ProgramFiles(x86)\Arduino\hardware\breadboard\avr 으로 압축이 해제되었다면, 정상적으로 보드 항목에 추가될 것입니다.

다시 아두이노에 돌아가서 보드선택 항목을 보면, ATmega328 on a breadboard(8MHz internal clock) 보드가 추가되어 있습니다.

이제 프로그래머를 Arduino as ISP 로 선택하고 보드를 위 8MHz 보드로 변경하여 업로드하면, 부트로더가 정상적으로 업로드되며, "부트로더 굽기 완료"라는 표시가 뜹니다.

이제 8MHz 부트로더가 구워진 칩은 외부 크리스탈과 22pF 콘덴서없이도 전원만 넣어주면 작동이 가능합니다!





댓글 1개:

  1. 메가328 이 아닌 경우는 어떻게 하나요? 메가8이나 메가168 타이니85 등..

    답글삭제