메뉴 건너뛰기

enjoyTools.net

* 작성 이유

 - 장난감으로 쓰기 위해 485통신 테스트 목적의 (아두이노 기판 말고) 빵판용 자작 아두이노를 만드는데 참고하기 위함

 - 부트로더, 헥사파일 플래싱 할 때 참고 목적

 - USB to TTL 쓰다가 잘 안돼서 작성. Attiny84, 85는 UTB/TTL로 안되는 것 같기도 하고, 1284도 함 써봐야겠고...

 - 아두이노 IDE 버전은 1.8.3 사용함

 

 

Atmega x8 (8/48/168/368 등)

SimpleBreadboardAVR.png

출처: https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard

 

MiniCore Pin map

Arduino-To-Atmega8-Pins.png

출처: https://www.arduino.cc/en/Hacking/PinMapping

 

 

Attiny x5 (25/45/85 등)

Screen-shot-2011-06-06-at-1.46.39-PM.png

출처: http://highlowtech.org/?p=1695

 

TinyCore(x5) Pin map

ATtiny45-85.png

출처: http://highlowtech.org/?p=1695

 

 

Attiny x4 (24/44/84 등)

programming-attiny44-attiny84-with-arduino-uno.png

출처: http://42bots.com/tutorials/programming-attiny84-attiny44-with-arduino-uno/

 

TinyCore Pin map

ATtiny44-84.png

출처: http://highlowtech.org/?p=1695

 

 

Atmega x4 (164/324/644/1284 등)

F5W760XGJ7MQLJ7.MEDIUM.jpg

출처: http://www.instructables.com/id/Turn-Your-Arduino-Into-an-ISP/

 

MightyCore Pin map

ATmega1284_Arduino_Pinout.jpg

출처: http://www.instructables.com/id/ATmega-DIP40-in-Arduino-IDE-164/

 

 

쉴드 부착용 헤더핀 대신 ICSP 커넥터 사용

우노 PCB를 앞뒤로 살펴보면 쉴드 부착용 헤더에서 11,12,13번 핀에 라우팅 된 패턴들은 ICSP를 거쳐서 마이컴에 연결된 것을 알 수 있다. ICSP 왼쪽에 붙은 터미네이션 저항도 마이컴 핀에서 분기 직전에 배치된 것이라 ICSP와 쉴드헤더의 동시 사용은 생각하지 않은 것 같다. 때문에, 위에 붙여놓은 그림의 형태 대신, ICSP 커넥터를 사용하면 된다. 그리고, RESET핀은 ICSP의 것 대신 10번 핀을 사용해야 한다. 이런 식이면 애초에 6핀 말고 10핀짜리 헤더를 사용하던가..

arduino_icsp1.jpg arduino_icsp2.jpg

출처: https://arduino.stackexchange.com/questions/16348/how-do-you-use-spi-on-an-arduino

 

 

스케치 결과물 플래싱 할 때 참고 (Arduino Uno Revision 3 기준)

* 부트로더 올릴 필요 없고, 프로그래머를 이용해 업로드 사용해 플래싱한다. - 혹시 모르니 처음 한 번은 부트로더를 올려줘야겠다.

* 우노 R3는 Reset, GND 단자 사이의 10uF 커패시터를 배치할 필요 없음

* 플래싱 할 때, 대상 보드는 기본을 쓰지 않고, 아래와 같이 xCore를 받아서 사용

(인터넷 검색하면 나오는 자작 아두이노 관련 게시물들 대부분이 hardware/arduino/avr/board.txt 파일을 수정하라고 되어 있는데, 굳이 할 필요 없고 아래 모듈들만 받아서 아두이노 IDE 폴더에 합치면 됨)

 - 깃헙에서 아래 레포지터리 모두 설치 (설치 위치: %아두이노 경로%/hardware)

 - ATTinyCore : Attiny x4, Attiny x5 ( https://github.com/SpenceKonde/ATTinyCore )

 - MiniCore : Atmega x8 ( https://github.com/MCUdude/MiniCore )

 - MightyCore : Atmega128 시리즈 ( https://github.com/MCUdude/MightyCore )

* MiniCore와 MightyCore의 경우 부트로더 플래싱 후 두 번째 업로드할 때부터 verification error가 출력되는 경우가 있을 건데, 이럴 경우 아래 방법으로 업로드 진행

 - 부트로더를 다시 구운 다음 > 업로드 (근데, verification error가 매번 뜬다. - 이유를 알았다. Arduino as ISP가 부트로더를 삭제한댄다.)

 - 메뉴에서 스케치 > 프로그래머를 이용해 업로드 (이렇게 하니까 에러가 전혀 네버 안뜬다.)

 - 업로드프로그래머 이용해 업로드 간의 차이가 뭔지는 모르겠다. 링크의 내용에 따르면 대상 마이컴의 부트로더 존재 유무에 따라 선택하는 메뉴가 갈라진다고 한다. 부트로더가 빠지니까 해당 크기만큼의 공간을 더 확보할 수 있고, 굳이 쌩돈 들여서 부트로더가 탑재된 마이컴을 구매하지 않아도 되는 모양이다.

 

 

UART 핀

* MightyCore는 UART 두 개 있음, 나머지는 한 개 있음. 모든 코어들이 SoftwareSerial 사용을 지원한다. MegaCore는 안 써봐서 모르겠음.

* MiniCore - Atmega x8 : tx 1, rx 0 (물리핀 3, 2)

* ATTinyCore - Attiny x5 : tx 0, rx 1 (물리핀 5, 6 = 소프트웨어 시리얼)

* ATTinyCore - Attiny x4 : tx 1, rx 2 (물리핀 12, 11 = 소프트웨어 시리얼)

* MightyCore - Atmega x4 : tx0 9, rx0 8, tx1 11, rx1 10 (물리핀 15, 14, 17, 16)

 

 

UART 핀 연결 예시. Attiny84의 경우

* RxD, TxD만 보면 됨. 나머지 커패시터, 크리스탈, 저항 전부 제끼면 됨

* USB to UART 기판은 아래 링크 참조

 - 아두이노 스토리: http://arduinostory.com/goods/goods_view.php?goodsNo=1000000108

 - 아이씨뱅큐: http://www.icbanq.com/shop/product_detail.asp?prod_code=P007320675

* 저렴한 CH340G, PL2xxx 기판을 써도 된다. 아두이노 프로그래밍용으로 쓰지 않고 온리 UART 통신용으로만 쓰거나, CH340G 13번핀이나 PL2303 2번핀이 아두이노 RESET용 DTR핀인데(업로드 시 필요), 점퍼선 납땜질 할 자신이 있다면 아래 링크에서 구매

 - 아두이노 스토리(pl2303): http://arduinostory.com/goods/goods_view.php?goodsNo=1000000201

 - 아이씨뱅큐(ch340g): http://www.icbanq.com/shop/product_detail.asp?prod_code=P007499792

 

attiny84-serial.png

출처: https://forum.arduino.cc/index.php?topic=389677.0

 

참고:

https://www.arduino.cc/en/Tutorial/ArduinoISP

출처에 있는 링크들

 

끝.