AVR 모델별(~=플라스틱 패키지 DIP) 아두이노 핀 연결
2017.07.21 17:29
* 작성 이유
- 장난감으로 쓰기 위해 485통신 테스트 목적의 (아두이노 기판 말고) 빵판용 자작 아두이노를 만드는데 참고하기 위함
- 부트로더, 헥사파일 플래싱 할 때 참고 목적
- USB to TTL 쓰다가 잘 안돼서 작성. Attiny84, 85는 UTB/TTL로 안되는 것 같기도 하고, 1284도 함 써봐야겠고...
- 아두이노 IDE 버전은 1.8.3 사용함
Atmega x8 (8/48/168/368 등)
출처: https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard
MiniCore Pin map
출처: https://www.arduino.cc/en/Hacking/PinMapping
Attiny x5 (25/45/85 등)
출처: http://highlowtech.org/?p=1695
TinyCore(x5) Pin map
출처: http://highlowtech.org/?p=1695
Attiny x4 (24/44/84 등)
출처: http://42bots.com/tutorials/programming-attiny84-attiny44-with-arduino-uno/
TinyCore Pin map
출처: http://highlowtech.org/?p=1695
Atmega x4 (164/324/644/1284 등)
출처: http://www.instructables.com/id/Turn-Your-Arduino-Into-an-ISP/
MightyCore Pin map
출처: 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핀짜리 헤더를 사용하던가..
출처: 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
출처: https://forum.arduino.cc/index.php?topic=389677.0
참고:
https://www.arduino.cc/en/Tutorial/ArduinoISP
출처에 있는 링크들
끝.
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
8 | nodemcu pin 아두이노용으로 define | 꿈돌이 | 2018.09.11 | 1353 |
7 | AVR 무선 ISP 관련 | 꿈돌이 | 2017.09.03 | 1036 |
6 | avr-gcc 작업 환경 만들기 | 꿈돌이 | 2017.08.11 | 1644 |
5 | 아두이노 스케치 소스를 아두이노 IDE 없이 avr-gcc로 컴파일 | 꿈돌이 | 2017.08.10 | 1797 |
4 | USB to TTL을 ISP로 AVR에 사용하기 (Feat. USBasp) | 꿈돌이 | 2017.07.25 | 3546 |
3 | avrdude와 Arduino as ISP를 이용하여 hex 쓰기 | 꿈돌이 | 2017.07.23 | 2804 |
» | AVR 모델별(~=플라스틱 패키지 DIP) 아두이노 핀 연결 | 꿈돌이 | 2017.07.21 | 13791 |
1 | 아두이노 USB-Serial 핀 매핑 | 꿈돌이 | 2017.06.24 | 737 |