본문 바로가기
AVR

[AVR] Atmel Studio 7.0 설치하고 샘플 프로젝트 실행하기(+ ISP를 통해서 USB전원 공급하는 방법)

by hseoy 2020. 4. 24.
반응형

[Atmel Studio 7.0 설치하고 샘플 프로젝트 실행하기(+ ISP를 통해서 USB전원 공급하는 방법)]

이 글에서는 전에 만들어둔 AVR 개발환경 준비하는 과정을 담은 영상을 글로 표현해보려고 한다.

시작하기에 앞서 준비물이 있다. 바로 AVRISP와 AVR 보드이다. AVR 보드는 AVR 칩을 사용하기 위한 기타 요소들을 모아 하나의 보드로 만든 것이며 AVRISP는 이 보드에 PC에서 작성한 코드를 업로드하기 위한 도구이다. 내가 사용한 AVRISP와 AVR 보드는 AVRISP-mk2AT128A-70B V2.0이다.

먼저 ISP를 통해서 USB 전원을 공급하기 위해서는 AVRISP-mk2를 분해시켜 줘야 한다. 설명서를 보면 "USB에서 나오는 5V를 타겟보드의 전원으로 사용 할 때는 제공된 점퍼핀으로 2PN을 연결하면 됩니다"라고 되어있는데 이 제공된 점퍼핀이라는 게 AVRISP-mk2 내부에 있다. 그러니 AVRISP-mk2 뒤에 있는 나사들을 시계드라이버와 같이 작은 드라이버를 이용해서 풀어준다.

2PIN이 연결되어 있지 않은 상태

빨간 색으로 동그라미 친 부분이 설명서에서 말하는 "제공된 점퍼핀"이다. 2PIN을 연결하라고 되어 있는데 이것은 빨간색 동그라미에 있는 두 개의 핀을 점퍼핀 구멍 2개에 모두 꽂음으로써 두 개의 핀에 전류가 흐를 수 있도록 이어주라는 말이다. 

2PIN이 점퍼핀으로 연결된 상태

위 사진과 같이 점퍼핀으로 두 핀을 연결시켜 주면 ISP를 통해서 USB 전원을 사용하기 위한 모든 절차가 끝난 것이다(So Simple). 이제 다시 원래대로 조립시켜준다.

Atmel Studio 7.0 실행화면

이제 Atmel Studio 7.0을 설치해보도록 하겠다. Atmel Studio는 Dev C++이나 Visual Studio와 같은 IDE 중 하나로 AVR을 개발하기 위한 툴로써 많이 사용된다. Atmel Studio 7.0 설치 페이지로 이동해서 Downloads 탭에서 "Atmel Studio 7.0 (build 2397) web installer (recommended)"나 "Atmel Studio 7.0 (build 2397) offline installer"를 클릭하여 Atmel Studio 7.0 설치 파일을 다운로드 받을 수 있다.

설치 파일을 실행하고 나면 위와 같은 팝업창이 뜰 건데, 이것은 Atmel Studio 7.0 라이센스에 동의할 것인지를 묻는 화면이다. 'I agree the license terms and conditions.'를 클릭하고 'Next'를 클릭하여 계속해서 진행할 수 있다.

'Send anonymous infomation to help improve the user experience.'는 사용자 경험을 개선하기 위해 익명의 정보를 보내는 데 동의하는지에 대한 내용인데, 신경 쓰인다면 체크 해제를 해주고 진행하면 된다.

그러면 이런 화면이 나올 텐데, 자신이 사용할 칩의 아키텍처를 선택하는 화면이다. 예를 들어 자신이 AVR기반의 8bit MCU만 사용할 것이라면 'AVR 8-bit MCU'외에는 모두 체크 해제시키고 진행하면 된다. 만약 잘 모르겠다면 모두 체크한 후 Next를 통해 진행한다. 계속해서 진행하다가 'Install'을 클릭하게 되면 그때부터 설치가 진행된다. 설치 시간은 꽤 긴 편이니 기다리는 동안 샘플 프로젝트의 회로를 구성해보자.

PORTC의 0번 째 핀에 저항과 LED를 연결하는 간단한 회로이다. 만약 PC0이 HIGH(5V)라면 LED를 켜질 것이고, LOW(0V)라면 LED는 꺼지게 될 것이다.

다시 돌아와서 Atmel Studio 7.0의 설치가 모두 끝났다면 샘플 프로젝트를 작성해도록 하겠다. Atmel Studio 7.0을 실행하고 Start 탭의 New Project를 클릭한다.

그런다음 GCC C Excutable Project를 선택하고 프로젝트 이름을 지정한 후에 OK를 클릭한다. 그러면 아래와 같이 AVR 종류를 선택할 수 있는 화면이 나오게 된다. 자신이 가진 보드가 어떤 AVR 종류를 사용하고 있는지 체크한 후 그것을 클릭해서 진행하면 된다. 내 경우에는 ATmega128A를 사용하고 있기 때문에 ATmega128A를 선택했다.

그런 다음 아래와 같이 샘플 프로젝트의 코드를 작성한다. 이 코드에 대해서는 이 글에서 이해할 수 있다.

/*
 * TestProject_AVR.c
 *
 * Created: 2020-04-18 오전 12:13:59
 * Author : user
 */ 

#define F_CPU 16000000UL // 16 MHz
#include <avr/io.h>
#include <util/delay.h>


int main(void)
{
	DDRC = 0x01;
	
    while (1) 
    {
		PORTC = 0x01; // LED 1초 동안 킴
		_delay_ms(1000);
		
		PORTC = 0x00; // LED 1초 동안 끔
		_delay_ms(1000); 
    }
}

작성한 후에는 F7(Build->Build Solution의 단축키)를 클릭하여 프로젝트를 빌드한다. 그런 다음에 Ctrl+Shift+P(Tools->Device Programming의 단축키)를 클릭한다. 그러면 새로운 팝업이 뜰 건데 여기서 AVRISP를 PC와 보드에 각각 연결해준다. 

그러면 Tool에 연결한 ISP가 잡히게 되는 데 그것을 클릭하고, Device에서 AVR 종류를 클릭한 후 Apply를 클릭한다. 그러면 새로운 화면이 아래 뜨는데 Memories 탭으로 이동한다.

그런 다음 'Erase now'와 'Program'을 순서대로 클릭한다. 'Erase now'는 칩에 원래 올라와 있던 코드들을 지우고, 'Program'은 빌드한 프로젝트를 보드에 업로드한다. 그러면 보드에 연결한 LED가 1초 간격으로 껐다 켜지기를 반복하게 된다. 여기까지 오면 AVR로 첫 프로그램을 만드는 데 성공한 것이다.

 

반응형

댓글