티스토리 뷰
이전에 아두이노 IDE 1.0.x 버전 기준으로 Attiny85 부트로더 굽는 법과 삽질 경험에 대하여 포스팅(http://www.dev.re.kr/59) 했었는데, 아두이노 IDE 1.6.4 버전 이상과 그 안에 포함된 개개선된 ISP 코드 덕분에 이제는 부트로더 굽는 것이 더 쉬워졌다.
콘덴서나 저항을 reset 버튼 사이에 연결하거나 수정된 ISP 를 따로 구해서 사용할 필요가 없어졌다.
이번 시간에는 1.6.x 버전을 이용하여 간단하게 부트로더를 굽는 방법에 대하여 언급할까 한다.
이 포스팅은 Arduino UNO 기준으로 되어있다.
1. Attiny85 라이브러리 설치하기.
먼저 환경설정 메뉴에 들어가면 아래와 같은 화면이 나오는데, Additional Boards Manager URLs 의 텍스트 박스에 다음과 같은 주소를 적는다. (그림에서 빨간 화살표가 가르키는 곳)
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json
(아두이노 IDE 1.6.4 로 버전업 하면서 굉장히 편하고 재미있는 기능을 넣은 것 같다.)
이렇게 입력하게 된다면 https://github.com/damellis/attiny/tree/ide-1.6.x-boards-manager 에 있는 파일을 다운로드 받아 보드 매니져에서 볼 수 있게 된다.
두 번째 단계로 상단 메뉴에서 '도구' -> '보드' -> Boards Manager 를 선택한다. 그럼 아래 스샷과 같은 창이 하나 뜨는데, 검색창에 attiny 를 입력하거나 스크롤을 아래로 내리다보면 attiny 항목을 볼 수 있다.
(설치하기 전에 David A. mellis 에게 감사하는 마음을...)
항목을 선택하면 인스톨 버튼이 나온다. 인스톨 버튼을 누르기 전에 콤보박스에서 최신 버전으로 선택 되어 있는지 확인하자.
인스톨이 완료되면 상단 메뉴에서 도구 -> 보드 항목을 살펴보면 가장 아래쪽에 Attiny 가 추가된 것을 확인할 수 있다.
2. 기존의 아두이노에 ISP 굽기.
USB 로 동작하는 ISP 가 없는이상 기존의 아두이노에 ISP 를 올려서 Attiny 에 부트로더를 굽거나 프로그램을 올릴수밖에 없다. 그러기 위해서 ISP를 기존의 아두이노 위에 올려야한다.
상단 메뉴에서 파일 -> 예제 -> ArduinoISP 를 선택한 다음 자신의 아두이노 위에 올려보자.
물론 상단 메뉴의 도구 에서 선택해야 하는 보드와 포트는 기존에 갖고 있던 아두이노를 선택해야 한다.
3. 아두이노와 Attiny85 간의 연결.
<기존 아두이노 IDE 1.0.x 를 이용하여 부트로더를 굽는 방법에 대하여 설명한 포스팅(http://www.dev.re.kr/59)에서 가져온 이미지이다. 수정하기 귀찮으므로 그대로 가져왔다. 이번에 설명하는 아두이노 IDE 1.6.x 이상에서는 아두이노의 9번핀과 Attiny85 의 pin 3 을 연결할 필요는 없다. pin 번호는 아래 그림 참고>
(Pin0 은 D0 , Pin2 는 D1 이다.)
이해를 돕기 위하여 좀 더 자세히 설명하면,
다음 표와 같다. (9번핀 연결할 필요 없음)
ATtiny Reset | ------------------ | Arduino 10 |
| ----------------- |
|
ATtiny GND | ------------------ | Arduino GND |
|
|
|
ATtiny VCC | -------------------- | Arduino 5v |
ATtiny Pin2 | -------------------- | Arduino 13 |
ATtiny Pin1 | -------------------- | Arduino 12 |
ATtiny Pin0 | -------------------- | Arduino 11 |
4. 부트로더 굽기
상단 메뉴에서
도구 -> 보드 -> Attiny 선택.
도구 -> 프로세서 -> Attiny85
도구 -> Clock -> 8 Mhz (internal)
도구 -> 프로그래머 -> Arduino as ISP
를 선택한다.
만약 Clock 을 1 Mhz (internal) 로 선택한다면 최소 1.8v 이상의 저전압에서 사용할 수 있다.
그리고 가장 하단의 부트로더 굽기를 선택하면....
부트로더가 생각보다 빠른 속도로 구워진다.
5. 테스트
잘 되는지 테스트하기 위하여 LED 를 하나 연결해 보고 PWM 으로 깜빡이도록 해보았다.
Attiny85 의 PWM 제어 핀은 0 번과 1번이다.
전원을 5V 를 공급해준다. 그리고 테스트 코드를 입력한다.
Attiny85 Test:
#define LED_PIN 0 bool gIncreaseMode = false; byte gLedValue = 0; void setup() { } void loop() { analogWrite(LED_PIN, gLedValue); gLedValue += (gIncreaseMode)?-1:1; if(gLedValue == 255) { gIncreaseMode = true; } else if(gLedValue == 0) { gIncreaseMode = false; delay(100); } delay(3); }
아래는 결과 영상.
Attiny85 에 프로그램을 올릴 때 마다 빵판에 케이블을 꼈다 뺐다 하기 귀찮아서 아래와 같이 프로그래머 보드를 대충 만들었다.
아래 영상의 LED 도 pin 0 번과 연결되어 있다.
'개발 관련 > 아두이노,IOT' 카테고리의 다른 글
짭두이노 USB to serial 드라이버 CH340g, CH341 설치하기. (9) | 2015.11.23 |
---|---|
무선 인터넷으로 제어하는 가습기 개발기 (1) | 2015.09.24 |
DHT22 를 활용한 온도, 습도계 만들기::인터넷으로 온도와 습도, 불쾌지수를 확인하기. (1) | 2015.08.02 |
ENC28J60 이더넷 모듈을 이용하여 아두이노를 웹 서버로 활용하기::인터넷 건반 만들어 소리 재생하기 (2) | 2015.08.02 |
아두이노 남아있는 메모리 (메모리 사용량) 확인하기 - 메모리 공포에서 벗어나자. (0) | 2014.10.14 |
- Total
- Today
- Yesterday
- 아두이노
- bluetooth
- 칩두이노
- 이더넷
- HC-06
- Iot
- ENC28J60
- 블루투스
- ESP8266
- 침블락
- noidemcu
- 개발
- json
- activity
- 부트로더
- Android
- Java
- oled
- 스마트 무드등
- Cheapduino
- 가습기
- 안드로이드 개발
- arduino
- 병렬 프로그래밍
- ndk
- 안드로이드
- ATtiny85
- 알리익스프레스
- NeoPixel
- WS2812B
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |