로그인회원등록 내글장바구니주문조회현재접속자
 상품 검색








 게시판 검색





 
 
회원등록 비번분실


온라인 입금계좌
ㆍ기업은행
ㆍ219-043192-01-028
ㆍ이건영

      거래은행 바로가기
 
 Sensor Applications
아듀이노 공개소스
작성자 avrtools™        
작성일 2008/08/28
첨부#1 ATmegaBOOT_168_digit.hex (5KB) (Down:1101)
Link#1 OtherHardware (Down:308)
ㆍ추천: 0  ㆍ조회: 5877   
  아듀이노 부트로더의 개조
참조 : http://www.arduino.cc/en/Hacking/OtherHardware
제목 : 아듀이노의 부트로더의 개조 (발진을 20MHz로 변경)

 
목적
아듀이노는 ATMEGA168-20AU 혹은 20PU 칩을 장착한 제품이 16MHz를 사용하고 있으므로.
기판의 발진주파수를 20MHz로 바꾸면, 실행 속도가 25 %정도 빨라질 수 있다.

방법
기판의 발진속도만 올리면, 업로드속도가 25% 빨라지므로, 그대로는 업로드를 할 수 없다,
반드시 기판의 원래 업로드속도 19200 bps로 낮추어야, 소프트웨어에서 업로드가 된다.

또한, 개조된 기판을 아듀이노 데시밀라로 설정하면, 여전히 16MHz의 실행코드가 만들어 지므로,
타이머 등에서 지연시간값과 통신속도등이 다르게 나타나기 때문에, 새로운 기판을 설정에 추가해야 한다.

참고
arduino-0011 > hrdware > bootloaders > atmega168 > 폴더를 보면 Makefile이 있다.
이것은 부트로더 소스의 AVR-GCC 컴파일 조건인데, 데시밀라 부트로더의 모든 정보가 들어 있다.
이 정보에 의하면, 아듀이노 데시밀라의 부트로더는 다음과 같다.
 
프로젝트 : diecimila
사용한 칩 ; ATMEGA168
발진 주파수 : 16 MHz
펌웨어 기반 : STK500 V1 (AVR-ISP V1과 같음 - AVR Studio에서는 접속이 안됨) 
통신포트 : USB 가상직렬 포트 (COM1 ~ COM8을 사용한다)
업로드 속도 : 19200 bps
시작주소 : 0x3800

컴파일러 : AVR-GCC

기판을 다른 실행속도로 실행하려면, 아듀이노 소프트웨어(IDE)의 기판설정 파일을 수정해야한다.
새로운 기판에서 새로운 업로드 속도를 만들려고 한다면,  f_cpu 항목의 값을 수정해야,
개조하기 전과 같이 일상적으로, 스케치(응용코드의 소스)를 컴파일하고, 업로드할 수 있다.

delayMicroseconds(), pulseIn(), analogRead()는 다르게 반응하고, millis(), delay()와 직렬통신은 작동할 것이다.
16MHz의 표준 부트로더를 알맞게 수정한, 새로운 부트로더를 컴파일해야 할 필요가 있다.

부트로더 생성
arduino-0011 > hrdware > bootloaders > atmega168 > 폴더의 Makefile을 열고
AVR_FREQ = 16000000LAVR_FREQ = 20000000L 로 변경한다.

AVR-GCC나 WinAVR을 설치하고
arduino-0011 > hrdware > bootloaders > atmega168 >을 타겟으로 설정한다.
 
ATmegaBOOT_168_decimilla.hexATmegaBOOT_168_decimila.hex.bak 으로 이름을 바꾼다.
AVR-GCC에서 make decimilla 를 실행하여 새로운 부트로더를 생성한다.
 
새로운 부트로더 실행파일 ATmegaBOOT_168_diecimilla.hex가 나오면
자신의 이름으로 바꾼다. 본인은 ATmegaBOOT_168_digit.hex 라고 했다.
ATmegaBOOT_168_decimilla.hex.bak을  원래의 이름 ATmegaBOOT_168_decimilla.hex로 되돌린다.

새로운 부트로더 받기
ATmegaBOOT_168_digit.hex 부트로더는 첨부파일로 올려져 있다.
부트로더를 생성하지 않았다면, arduino-0011 > hrdware > bootloaders > atmega168 > 폴더에 복사한다.

새로운 부트로더 굽기
AVR-ISP를 USB 포트에 연결하고, AVR-Studio를 실행한다.
AVR-ISP의 타겟 케이블을 아듀이노 기판의 6핀 ISP 커넥터와 연결한다.
Tool >Prog-AVR >Auto Connect를 누르고, Program 창이 나오면
AVR Device를 ATMEGA168로 선택하고, Erase를 누른다.
Brows에서 자신이 컴파일한 새로운 부트로더를 선택하고 Program 단추를 누른다.

퓨즈설정에서 SPI 외의 다른 항목은 모두 끈다. 특히 Divid 1/8 Clock은 반드시 끈다.
다음 4 항목을 체크하고 Program 단추를 누른다.
Boot Flash section size = 1024 words Boot start address = $1C00; [BOOTSZ=00]; default value
Boot Reset Vector Enabled (default address = $0000); [BOOTRST=0]
Brown-out detection disabled; [BODLEVEL=111]
Ext. Crystal Osc.; Frequency 8.0 - MHz; Startup time PWRDWN/RESET: 16K CK/14 CK + 64ms; [CKSEL=1111 SUT=0]


Lock 비트의 설정은 다음과 같다.
Mode1: No memory lock features enabled
Application Protection Mode1: No lock on SPM and LPM in Application Section
Boot Loader Protection Mode3: LPM and SPM prohibited in Boot Loader Section


새로운 부트로더의 작동확인
새로운 부트로더가 올라간 아듀이노 기판에, 전원을 연결하고 작동시킨다.
MEGA168의 PB5는 아듀이노의 D13 으로 LED가 연결되어 있다. 깜빡이는지 보라.

아듀이노 개발환경의 기판추가 
arduino-0011 > hardware > 폴더 안의, boards.txt를 에디터로 열고, 다음 문장을 추가한다.
digit.name=Arduino Digit  새로운 기판의 이름이다.
digit.upload.protocol=stk500
digit.upload.maximum_size=14336   부트로더의 크기를 뺀 실행코드의 최대값이다.
digit.upload.speed=19200   부트로더의 업로드 통신속도이다.

digit.bootloader.low_fuses=0xF7
digit.bootloader.high_fuses=0xdf
digit.bootloader.extended_fuses=0x00
digit.bootloader.path=atmega168    부트로더 hex파일이 들어있는 폴더이다.
digit.bootloader.file=ATmegaBOOT_168_digit.hex  새로 만든 부트로더 이름이다. 
digit.bootloader.unlock_bits=0x3F
digit.bootloader.lock_bits=0x0F

digit.build.mcu=atmega168   부트로더가 구워진 AVR 칩이다.
digit.build.f_cpu=20000000L   부트로더의 발진 주파수이다.
digit.build.core=arduino


응용코드의 시험
새로운 기판은 업로드 하기 전에, 기판의 공진자(resonator) X1을 20 MHz로 바꾸어 주어야 한다.
아듀이노 개발환경 소프트웨어인 arduino-0011.exe를 실행한다.
Tool >Boards > 에 자신이 추가한 기판이 Arudino Digit 라고 나오는지 확인한다.

File->Sketchbook->Examples 에서 적당한 스케치(pde)파일을 열고, 컴파일 한다음 오류가 없으면,
Tools > Seral Port >에 자신의 기판이 연결된 통신포트가 v로 표시되어 있는지 확인한다.

 
 
File > Upload to I/O Board를 눌러서 기판에 실행코드를 업로드 한다.
기판에 자동 리셋 회로를 추가하지 않았다면, 리셋스위치를 재빨리 눌러 주어야 한다.

D13의 LED가 깜빡이고, 잠시후 Done Upload 표시가 나오면 성공이다,
이제 기판에 업로드된 실행코드의 작동이 잘 되는지 확인하라.
원저자 : http://tokoya.justblog.jp/blog/2008/02/arduino-8dde.html

이 프로그램은 무료 소프트웨어로, 신체와 재산 상의 어떤 위험과 손해를 보상하지 않습니다.
이 프로그램은 GNU 무료 소프트웨어 배포규정을 따릅니다.
Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA

 AVRTOOLS™
   
이름아이콘 dolcoco
2012-05-31 13:06
쉽게 잘 쓰여져 있네요.
초보인 제가 개념 잡는데 좋네요.
감사합니다. ^^
   
 
윗글 아듀이노 DMX 송신기
아래글 아듀이노 병렬포트 굽기장치
    N         제목    글쓴이 작성일 조회 추천
61 비접점식 QTouch 방식 근접검출 스위치 leeky 2016/01/21 (목) 852 0
60 Arduino 고속 오실로스코프 #3 avrtools™ 2012/03/29 (목) 17930 0
59 아날로그 8ch 데이터 로거 avrtools™ 2012/03/29 (목) 2925 0
58 Arduino DMX512 송신기 제작 avrtools™ 2012/03/15 (목) 3062 0
57 nRF24L01 무선모듈의 사용방법 avrtools™ 2012/03/07 (수) 6112 0
56 초음파 거리 측정기의 제작 avrtools™ 2011/09/18 (일) 5029 0
55 3축 가속도 센서 ADXL335 avrtools™ 2011/09/09 (금) 3559 0
54 Arduino Uno USBserial 펌웨어의 변경 avrtools™ 2011/08/27 (토) 3122 0
53 Arduino MIDI의 소개 avrtools™ 2011/08/19 (금) 3524 0
52 Arduino 고속 Oscillo Scope #2 avrtools™ 2011/08/12 (금) 3149 0
51 Arduino Uno 및 USB2serial Uno의 소개 [2] avrtools™ 2011/07/30 (토) 3417 0
50 Arduino IDE에서 AVRISP-mkII 사용방법 avrtools™ 2010/10/22 (금) 8092 0
49 아듀이노 초음파 거리측정 및 응용 avrtools™ 2010/03/14 (일) 4233 0
48 M328-USB의 비밀 온도센서 avrtools™ 2010/01/02 (토) 3650 0
47 M168-mini로 만드는 USBasp avrtools™ 2009/10/10 (토) 5504 0
46 OBDuino ISO9141 소스의 설명 avrtools™ 2009/10/08 (목) 4291 0
45 아듀이노 0017 업그레이드 avrtools™ 2009/08/18 (화) 3803 0
44 Arduino 0015 업그레이드 avrtools™ 2009/06/01 (월) 3491 0
43 CC2500 Zigbee RF Modem #1 [4] avrtools™ 2008/11/20 (목) 6772 0
42 아듀이노 소프트웨어 Ver 0012 avrtools™ 2008/09/23 (화) 4085 0
41 Arduino 소프트웨어 설치방법 avrtools™ 2008/08/31 (일) 5701 0
40 아듀이노 PC 카메라 제작 avrtools™ 2008/10/28 (화) 7328 0
39 아듀이노 AVR-ISP V2의 제작 [6] avrtools™ 2008/10/22 (수) 8435 0
38 아듀이노 J1850-PWM 스캐너 avrtools™ 2008/10/15 (수) 4612 0
37 아듀이노 MPGduino의 제작 avrtools™ 2008/10/11 (토) 5039 0
36 아듀이노 OBD-II PID 처리함수 avrtools™ 2008/10/12 (일) 5711 0
35 아듀이노 OBD-II PID 송수신 함수 avrtools™ 2008/10/09 (목) 9785 0
34 아듀이노 ODB-II 스캐너 제작 [9] avrtools™ 2008/10/04 (토) 17564 0
33 아듀이노 AC전원 THD 측정 [2] avrtools™ 2008/09/30 (화) 6890 0
32 아듀이노 소프트방식 16Bit ADC avrtools™ 2008/09/23 (화) 5648 0
31 아듀이노 초음파 모듈의 제작. avrtools™ 2008/09/22 (월) 4962 0
30 아듀이노 Wii 프로세싱 avrtools™ 2008/09/20 (토) 4222 0
29 아듀이노 초음파 거리측정 avrtools™ 2008/09/20 (토) 6160 0
28 아듀이노 8x5 초소형 전광판 avrtools™ 2008/09/11 (목) 4752 0
27 아듀이노 4선식 터치패널 avrtools™ 2008/09/10 (수) 4738 0
26 아듀이노 2색 8x8 LED avrtools™ 2008/09/10 (수) 5015 0
25 아듀이노 24x6 LED 전광판 avrtools™ 2008/09/10 (수) 5553 0
24 아듀이노 8x8 LED 프로세싱 avrtools™ 2008/09/10 (수) 4173 0
23 아듀이노 32x16 RGB 전광판 avrtools™ 2008/09/06 (토) 13763 0
22 아듀이노 맥박검출기 avrtools™ 2008/09/03 (수) 9644 0
21 아듀이노 적외선 거리센서 avrtools™ 2008/09/01 (월) 6053 0
20 아듀이노 DMX 수신장치 [7] avrtools™ 2008/08/31 (일) 6911 0
19 아듀이노 AVR-ISP 만들기 avrtools™ 2008/08/30 (토) 4222 0
18 아듀이노 POV #3 avrtools™ 2008/08/30 (토) 3540 0
17 아듀이노 POV #2 avrtools™ 2008/08/30 (토) 3308 0
16 AVR 병렬포트 굽기장치 avrtools™ 2008/08/30 (토) 5330 0
15 아듀이노 DMX 송신기 avrtools™ 2008/08/28 (목) 5224 0
14 아듀이노 부트로더의 개조 [1] avrtools™ 2008/08/28 (목) 5877 0
13 아듀이노 병렬포트 굽기장치 avrtools™ 2008/08/26 (화) 4283 0
12 아듀이노 POV #1 avrtools™ 2008/08/26 (화) 3558 0
11 아듀이노 MIDI 드럼 leeky 2008/08/24 (일) 4875 0
10 아듀이노 SD/MMC 카드 avrtools™ 2008/08/24 (일) 9877 0
9 아듀이노 MIDI 플륫 avrtools™ 2008/08/24 (일) 3705 0
8 아듀이노 RGB LED avrtools™ 2008/08/23 (토) 5131 0
7 아듀이노 USB 오실로스코프 [2] leeky 2008/08/21 (목) 6545 0
6 가속도계 ADXL202 응용소스 avrtools™ 2008/08/20 (수) 5001 0
5 아듀이노 가속도센서 avrtools™ 2008/08/18 (월) 5010 0
4 아듀이노 RC서보 제어 avrtools™ 2008/08/17 (일) 5337 0
3 아듀이노 910-ISP 만들기 avrtools™ 2008/08/16 (토) 4858 0
2 아듀이노 온도센서, XBee 송수신 avrtools™ 2008/08/15 (금) 7699 0
1 아듀이노 기본명령 avrtools™ 2008/08/07 (목) 6804 0
1

바구니 : 0
 보관함 : 0
오늘뷰 : 0
HOME   |   회사소개   |   제휴안내   |   회사위치   |   서비스이용 약관   |   개인정보 보호정책   |   사이트맵
17015 경기도 용인시 기흥구 동백중앙로16번길 16-25, 508호. 전화 : 031-282-3310
사업자 등록번호 : 697-47-00075 / 대표 : 이건영 / 업태 : 제조업 / 종목 : LED조명, LED전원, 제어장치.
개인정보 관리책임자 : 홈페이지 관리자 . Copyright ⓒ2016 아크레즈 (ACLEDS INC.)
HOME TOP PREVNEXT 0 0 0