offfff

Atmel Studio에서 아두이노 보드 사용하기 본문

프로그래밍

Atmel Studio에서 아두이노 보드 사용하기

offfff 2017. 9. 4. 23:04

해당 자료는 BIHE University의 Sepehr Naimi라는 분이 작성한 자료를 번역한 것입니다.

찾아보니 BIHE Univ.는 이란에 있는 대학인거 같네요. 지구촌 짱짱. 고마워요 Sepehr!

(출처 : Using Arduino Boards in Atmel Studio)



A. Introduction

Atmel 마이크로컨트롤러를 프로그래밍 하기 위한 하드웨어 툴은 다양합니다.

하지만 칩에 부트로더가 있다면, 하드웨어 툴을 사용하지 않고도 시리얼 포트를 사용해서 프로그래밍할 수 있습니다.

부트로더는 작은 소프트웨어인데, 시리얼 포트를 통해 프로그램을 받거나 IC 칩에 프로그래밍하는 역할을 합니다.


아두이노 보드의 마이크로컨트롤러는 부트로더를 가지고 있습니다.

그러므로 아두이노를 컴퓨터에 연결해서 AVR 트레이너 보드로 활용할 수 있습니다.

이 문서는 Atmel Studio에서 아두이노를 트레이너 보드로 사용하는 법에 대해 다룹니다.


또 이 문서를 통해서, 새로운 칩에 부트로더를 굽거나, 나만의 트레이너 보드를 만들 수 있습니다.

하지만 새로운 칩에 올릴 부트로더를 프로그래밍하려면, 프로그래머가 필요(?)합니다.


B. Atmel Studio 설치 및 첫 프로젝트 만들기

Atmel Studio를 설치하고 첫 프로젝트를 만드려면 아래 링크들을 참고하세요.


(1) Atmel Studio 6.2에서 어셈블리 프로그래밍 하기

Assembly Programming in Atmel Studio 6.2(Step by Step tutorial)

▶위 글의 한글 번역(번역후 링크 예정)


(2) Atmel Studio 6.2에서 C 프로그래밍 하기

C Programming in Atmel Studio 6.2(Step by Step tutorial)

▶위 글의 한글 번역(번역후 링크 예정)


C. Avrdude 다운로드

(1) 아두이노 보드에 프로그래밍하려면 Avrdude라는 프로그램이 필요합니다. 아래 링크에서 다운 받으세요.

다운받기


(2) 다운로드 받은 파일을 압축풀고, 폴더 이름을 avrdude로 바꿔줍니다. 그리고 C 드라이브 아래로 옮겨주세요.

[Note]

Arduino IDE가 컴퓨터에 설치되어 있으신 분은, 아래 경로에 이미 avrdude.exe를 가지고 계십니다. 그걸 사용하시면 됩니다.

C:\Program Files(x86)\Arduino\hardware\tools\avr\bin\avrdude.exe

그리고 avrdude.conf 파일도 아래 경로에서 같이 복사해주세요.

C:\Program Files(x86)\Arduino\hardware\tools\avr\etc\avrdude.conf

C 드라이브 아래에 avrdude 폴더를 만들고, 위 두 파일을 만든 폴더에 복사해 넣습니다.


D. COM 포트 체크

(1) 내 컴퓨터를 우클릭하여 '관리'버튼을 누릅니다.


(2) 왼쪽 탭에서 '장치 관리자'를 선택한 뒤, 가운데 탭에서 '포트(COM & LPT)'를 선택합니다.

여기서 COM포트가 몇번인지 체크합니다. 아래 그림에서 빨간색 밑줄 부분을 확인하시면 됩니다.


E. Atmel Studio 열어 avrdude 사용하기

(1) Atmel Studio IDE를 열어, 'Tools' 메뉴로 가서 'External Tools...' 항목을 선택합니다.

한글로 설치하신 분은 '도구(T)' 메뉴의 '외부도구(E)' 항목으로 되어있습니다.


(2) Extarnal tools(외부도구) 대화창에서 아래와 같이 설정합니다.

a. Add(추가(A)) 버튼을 누릅니다.

b. 이름은 Arduino Programmer라고 합시다.

c. 아래 주소를 Command(명령(c)) 칸 옆에 아래와 같이 실행파일경로를 입력합니다.

C:\avrdude\avrdude.exe


d. Avrdude는 "avrdude.conf 파일, COM port, 시리얼 통신 속도(serial baud rate), 프로그램 헥사 파일, 마이크로 컨트롤러 부품 번호"를 인자로 가지고 실행해야 합니다. 사용하는 아두이노 보드에 맞게 아래 인자를 'Arguments(인수(R))'에 적어줍니다.

 Arduino Uno(Atmega328p)

-C "C:\avrdude\avrdude.conf" -p atmega328p -c arduino -P COM5 -b 115200 -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i


▶ Arduino Pro Mini(Atmega328p)

-C "C:\avrdude\avrdude.conf" -p atmega328p -c arduino -P COM5 -b 57600 -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i


 Arduino Mega2560(Atmega2560)

-C "C:\avrdude\avrdude.conf" -p atmega2560 -c wiring -P COM5 -b 115200 -U flash:w:"$(ProjectDir)Debug\$(ItemFileName).hex":i


※ 위에서 빨간 글씨로 적힌 부분은 'avrdude.conf'의 위치와 컴퓨터에서 인식한 COM포트로 맞추어 적어야 하는 부분입니다.


e. "Use Output window(출력 창 사용(O))"을 체크합니다.

f. OK(확인) 버튼을 누릅니다.


F. 프로젝트 만들기

(1) 'File(파일)' 메뉴에서 'New(새로 만들기) > Project(프로젝트)'를 선택합니다.


(2) Installed Templates 아래 항목 중 'C/C++' 선택

GCC C Excutable Project를 선택하고 Project 이름을 적은 뒤 OK를 누릅니다.


(2) 사용하는 보드에 맞는 마이크로 컨트롤러를 리스트에서 찾고 OK를 누릅니다.

저는 아두이노 프로미니에 사용되는 ATmega328P를 선택했습니다.


(2) 예제 프로그램을 작성해보겠습니다.

아래 예제는 포트 B와 C를 껐다 켰다 하는 예제입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <avr/io.h>
 
#define    F_CPU    16000000UL
#include "util/delay.h"
 
int main(void)
{
    DDRB = 0xFF;
    DDRC = 0xFF;
 
    while (1
    {
        PORTB ^= 0xFF;
        PORTC ^= 0xFF;
 
        delay_ms(1000);
    }
}
cs


G. 아두이노 보드에 프로그램 올리기

(1) 아두이노 보드를 컴퓨터에 연결합니다.


(2) 'Tools(도구)' 메뉴로 가서 'Arduino Programmer'를 클릭합니다.

성공적으로 실행되면 아래와 같은 로그가 Output window(출력창)에 나타납니다.

그리고 보드에 내장된 LED가 깜빡이기 시작합니다.


(3) 아두이노 핀 맵을 확인하며 프로그래밍 하시면 됩니다.

- 아두이노 우노 핀 맵 보러가기

- 아두이노 메가 핀 맵 보러가기

- 아두이노 미니 핀 맵 보러가기

- 아두이노 나노 핀 맵 보러가기

- 아두이노 프로미니 핀맵 보러가기


H. Reference







'프로그래밍' 카테고리의 다른 글

아두이노 미니 핀 맵  (0) 2017.09.13
아두이노 우노 핀 맵  (0) 2017.09.12
[Linux] 사용자 계정 관리  (0) 2017.09.03
[Linux] VIM 설정 : 키 맵 사용/ 토글키 만들기  (0) 2017.08.31
3. 아두이노+ESP8266  (6) 2017.02.15