2016년 3월 24일 목요일

Sparkfun Tiny AVR programmer로 ATtiny24 굽기

요즘 아두이노 가지고 노는게 좀 재밌다. 다만 실제 프로젝트에 넣으려니, 아두이노 우노는 매우 크고, 작은 녀석들은 비싸더라. 또한 한 번 제대로 굽고 나면, 굳이 USB를 통한 칩을 구워주는 프로그래머 부분도 필요 없고... 딱 칩만 있으면 좋겠는데 해서 찾아보니 AMTEL에서 ATtiny라는 칩을 팔더라. 대충 1,500원 이짝저짝... 일단 지르려고 장바구니에 넣었는데, 구울 장비가 없네? 물론 아두이노 우노를 통해 구울 수도 있지만 가능하면 전용 프로그래머가 있음 좋겠다 싶어서 Sparkfun Tiny AVR programmer도 같이 질렀다.

Sparkfun: https://www.sparkfun.com/products/11801
Mechasolution(국내): http://www.mechasolution.com/shop/goods/goods_view.php?goodsno=4305&category=068

그리고 칩은 ATtiny24-20PU ... 돈이 없어서 44/84를 살 수 없었다. (뻥치시네!)

일단 Tiny AVR 프로그래머는 ATtiny25/45/85 기준으로 만들어져 있다. 그래서 소켓도 핀 8개짜리로 되어 있는데, 무턱대고 14개짜리 ATTiny24를 끼우면 대략 난감해진다.

ATtiny24 데이터 시트로 발번호를 잘 참고해두자.

ATtiny24 Datasheet: http://www.atmel.com/Images/doc8006.pdf

그리고 아래표와 같이 발을 연결해주자.

프로그래머ATtiny24/44/84
+1
-14
이름없음4
07
18
29

나중에 소켓이랑 만능기판 만들어서 잘 정리된 녀석을 만들기는 할꺼지만, 일단 빵판에 꽂은 모습은 아래와 같다.


빵판 연결이 끝났으면, Windows용 USBtinyISP driver를 설치해야 한다. 아래 주소에서 다운받아 적당한 곳에 압축을 해체하고 inf 파일을 선택하여 설치한다.



설치가 끝났으면, 프로그래머를 USB 포트에 끼웠을 때 드라이버를 잘 찾아야한다.



이제 아두이노 IDE를 세팅해보자. 한 번 세팅하면 다시 세팅할 일 없고, 다시 하고 싶지도 않다.

일단 ATtiny칩 세팅이 들어 있는 보드설정이 필요하다. 아두이노 환경설정에서 아래 주소를 넣자.




보드 매니저 추가를 마치면, 툴-보드 매니저를 실행해서 패키지를 다운 받도록 하자.



부르조아라서 44/84 칩을 사용한다면 아래 과정이 전혀 필요 없다. 오로지 24칩을 사용하는 사람을 위한 조치이다.

어째서인지 ATtiny24 칩 지원이 보드에서 빠져 있는데, board.txt를 수정해서 강제로 인식시킬 수 있다. (왜 24칩만 뺀거야? 응?)

board.txt는 {Arduino 홈디렉토리}/packages/attiny/hardware/avr/1.x.x 에 있다. {Arduino 홈디렉토리}가 어딘지 잘 모르겠으면, 환경설정에서 아래 그림 부분을 클릭하면 찾아 갈 수 있다.



깊히 숨어 있는 board.txt를 찾아서, 아래 내용을 추가하자.
attiny24.name=ATtiny24 (internal 1 MHz clock)
attiny24.bootloader.low_fuses=0x62
attiny24.bootloader.high_fuses=0xdf
attiny24.bootloader.extended_fuses=0xff
attiny24.upload.maximum_size=2048
attiny24.build.mcu=attiny24
attiny24.build.f_cpu=1000000L
attiny24.build.core=arduino:arduino
attiny24.build.variant=tiny14
attiny24.upload.tool=arduino:avrdude

attiny24-8.name=ATtiny24 (internal 8 MHz clock)
attiny24-8.bootloader.low_fuses=0xe2
attiny24-8.bootloader.high_fuses=0xdf
attiny24-8.bootloader.extended_fuses=0xff
attiny24-8.upload.maximum_size=2048
attiny24-8.build.mcu=attiny24
attiny24-8.build.f_cpu=8000000L
attiny24-8.build.core=arduino:arduino
attiny24-8.build.variant=tiny14
attiny24-8.upload.tool=arduino:avrdude

attiny24-20.name=ATtiny24 (external 20 MHz clock)
attiny24-20.bootloader.low_fuses=0xfe
attiny24-20.bootloader.high_fuses=0xdf
attiny24-20.bootloader.extended_fuses=0xff
attiny24-20.upload.maximum_size=2048
attiny24-20.build.mcu=attiny24
attiny24-20.build.f_cpu=20000000L
attiny24-20.build.core=arduino:arduino
attiny24-20.build.variant=tiny14
attiny24-20.upload.tool=arduino:avrdude

그리고 Arduino IDE를 재시작하면, 아래와 같이 툴 메뉴에 ATtiny 칩을 볼 수 있다.


프로그래머를 USBtinyISP로 변경하고, 예제 Blink를 실행하면 반짝이는 LED를 구현할 수 있다.

참고로 ATtiny24는 2048bytes를 사용할 수 있다. ... 매우 좁다. ㅠㅠ ATtiny84는 대신 가격이 2.5천 원 근처. 그냥 그걸로 살껄 그랬다. ㅋㅋㅋㅋㅋㅋㅋ;;;;;;;

일단 오늘은 여기까지.