본문 바로가기
Arduino(아두이노) 활용 강좌

Arduino Mini & Pro Mini 사용법 알아보기 & stk500_getsync 에러 해결하기

by 오마이엔지니어 2016. 12. 1.
반응형

Arduino Mini 의 사용법에 대해서 알아보고 stk500_getsync 에러가 발생했을때
해결할수 있는 방법에 대해서 확인해 보겠습니다

Arduino Mini 는 모듈을 초소형화 하고 브래드보드 친화적으로 만들었기 때문에
Arduino Nano 나 Micro 와는 다르게 USB 포트가 없습니다


<Arduino Mini 05 이태리 정품 이미지
>


때문에 Arduino Mini 를 사용하기 위해서는 USB to Serial (USB to UART 또는 USB to TTL) 모듈이 필요합니다
USB to Serial 이 있어야만 시리얼 통신을 하고, 소스를 업로드 할수 있습니다

USB to Serial 모듈 은 다양한 종류의 제품이 있으며 칩셋도 틀리며, 핀구성도 제 각각 입니다
칩셋에 따라서 PL2302 드라이버를 사용하기도 하고 FT232RL 드라이버를 사용하기도 합니다
칩셋에 맞는 드라이버를 설치해서 사용해야 합니다
핀구성도 제 각각인데 보통 3.3V, 5V, GND, TX, RX 이렇게 5핀이 기본으로 구성되어 있습니다
5핀을 기본으로 DTR핀이 추가되어 있는 모듈이 있는데 이 경우는 아두이노의 DTR 핀에 연결하면 오토리셋 기능이 활성화 됩니다
Nano 나 Micro 같은 USB 포트가 있는 보드들은 오토리셋 기능이 있지만
USB 포트가 없는 Mini 보드는 DTR 핀이 없는 USB to Serial 모듈을 사용하면 보드에 바이너리를 업로드 하는 과정에서
사용자가 리셋버튼을 눌러줘야만 합니다 


<Arduino USB 2 Serial micro 이태리 정품 이미지>
이태리 정품 Arduino USB 2 Serial micro 를 사용해서 테스트를 하였습니다

<배선방법>
USB to Serial                         아두이노 (Pro mini)
5V        ----------------------------      5V
GND      ---------------------------       GND
TXD      ---------------------------        RXD
RXD      ---------------------------        TXD


USB to Serial 모듈을 통해서 Arduino Mini 의 VCC 와 GND 에 전원을 인가하면 Arduino Mini 의 파워LED가 점등 됩니다

통신을 주고 받아야 하기 때문에 모듈에 따라 차이가 있기는 하지만 TXD 는 RXD 에 RXD 는 TXD 에 연결합니다 

위와 같이 배선하고 테스트 하고자 하는 예제코드를 업로드 하도록 합니다

업로드시 센서나 그밖의 모듈이 D0, D1 핀에 연결되어 있는경우 에러가 날수 있으므로 제거 하고 업로드를 하도록 합니다
(일반적으로 USB Serial 통신을 할 때 D0, D1 핀은 TX, RX 용으로 사용되기 때문입니다)

업로드 도중 업로드가 진행이 되지 않고 멈추거나 avrdude: stk500_getsync(): not in sync: resp=0x00
메세지가 뜨는 경우가 있습니다

위 에러 메세지가 뜰 경우 아래의 경우를 확인해 보도록 합니다


Arduino IDE에 선택되어 세팅된 보드와 연결된 보드가 상이한 경우  (Arduino IDE [도구--->보드] 메뉴를 통해 적절한 보드를 선택해 해결)
TX, RX 핀 연결이 잘못 되어있는 경우 (TX, RX핀의 배선이 틀리지 않았는지 확인)
아두이노 보드의 시리얼 TX, RX 로 지정된 핀이 다른 용도로 사용되고 있는 경우 (D0, D1 핀에 연결된 센서나 모듈을 제거)
타겟 보드의 부트로더에 문제가 있는경우 (부트로더에 문제가 있는경우 ISP 장비를 이용하거나 기타 방법으로 타겟보드의 부트로더를 라이팅 해줘야 합니다)
오토리셋 기능이 지원되지 않는 USB to Serial 모듈을 사용하면서 사용자가 리셋버튼을 눌러주지 않은 경우
(소스 업로드시 Arduino IDE를 확인하면서 컴파일에서 업로드로 넘어가는 순간에 타이밍에 맞춰서 Arduino Mini보드의 리셋버튼을 눌러줍니다)


Arduino Mini 05 와 Arduino USB 2 Serial micro 를 사용해서 간단하게
기본예제 Blink (Arduino IDE--->파일--->
예제--->Basic--->Blink) 를
테스를 해 보았습니다
LED를 깜박이는 간단한 테스트 이기때문에 배선도는 Arduino Uno 로 LED 깜박이기 포스팅을 참고해 주세요

 

프로젝트 동영상



이태리 정품이 아닌 중국에서 생산된 Arduino Pro Mini (아두이노 프로 미니) Atemga168 / 3.3V / 8Mhz

도 역시 크게 다르지 않은 방법으로 사용할수 있습니다

<Arduino Pro Mini (아두이노 프로 미니) Atemga168 / 3.3V / 8Mhz 이미지>

시리얼 통신과 소스 업로드를 위한 USB to Serial 모듈 역시 중국에서 생산된 USB to TTL 을 사용해 보았습니다

아두이노 이태리 정품 Arduino Mini 05 를 사용할때와 다른점은
기본적인 배선은 동일하지만 Arduino Pro Mini 의 경우 보드를 'Arduino Pro or Pro mini'  로 선택하고

마이크로컨트롤러가 Atmega168 이라서 Arduino IDE 에서 프로세서 에서 Atmega168 (3.3V, 8 MHz)를 선택해 주어야 하는 점

그리고 USB to TTL 과 연결할때 3.3V 로 Pro Mini 의 VCC 와 연결하고 (TTL 모듈에 따라서 TX, RX 로직 전압이 맞지 않는다면 5V로 시도)

위쪽 6개의 프로그래밍 핀을 사용해서 통신해야만 소스 업로드가 가능하다는 것 입니다
사용한 TTL 모듈이 이태리 정품하고 TX, RX 통신 전압이 틀려서 그런것 같은데 이태리 정품과는 다르게 아래 이미지처럼
왼쪽 핀이 아닌 위쪽 6개의 프로그래밍 핀을 사용해서 통신해야만 소스 업로드가 가능했습니다
USB to TTL 모듈 역시 DTR 핀이 없기 때문에 컴파일에서 업로드로 넘어가는 순간 타이밍에 맞춰 리셋버튼을 눌러서

업로드 완료를 해 주었습니다

그래도 avrdude: stk500_getsync(): not in sync: resp=0x00  메세지가 나오면서 업로드가 되지 않는 경우에는
컴파일 하기전부터 리셋버튼을 누르고 컴파일에서 업로드로 넘어가는 순간 리셋버튼을 때고 다시 타이밍에 맞춰 리셋버튼을 눌러 보면서
업로드를 진행해 봅니다 

(업로드 중 TTL 모듈의 파란색 LED가 격렬하게 깜박이는 순간이 있습니디 이때 리셋 버튼을 눌러주면 에러 메시지가 나와도 업로드가 됩니다)


Arduino Pro Mini
 와 USB to TTL
 을 사용해서 간단하게
기본예제 Blink (Arduino IDE--->파일--->
예제--->Basic--->Blink) 를
테스를 해 보았습니다
LED를 깜박이는 간단한 테스트 이기때문에 배선도는 Arduino Uno 로 LED 깜박이기 포스팅을 참고해 주세요

프로젝트 동영상 (blink 예제 테스트)


프로젝트 동영상 (CP2102 TTL 모듈을 사용해서 스케치 업로드)


프로젝트 동영상 (MAX7219 FND 모듈 출력 테스트)

MAX7219 FND 모듈 출력 테스트를 해 보았습니다
배선도와 예제코드는 'Arduino Uno 로 MAX7219 7-Segment 모듈을 사용해서 숫자와 문자 출력해 보기'
를 참조하면 되겠습니다


반응형

댓글