본문 바로가기

Embeded Programming/AVR

소스로 보는 ATmega8535 – 1부. AVR에 HEX 파일 굽기.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

소스로 보는 ATmega8535 – 1부. AVR에 HEX 파일 굽기.

© tapitolife 2011

 



처음 시도해 볼 코드는 간단한 LED 점등 회로입니다.

 

main.c

#include <avr/io.h>

int main()
{
    DDRA = 0xFF;
    PORTA = 0b10101010;
    
    while(1) ;
    return 0;
}

 

회로는 이렇습니다.

그림 1. LED 점등 회로

 

AVR에 프로그램을 넣기 위해서는 아래와 같이 합니다.

 

1. 회로 구성

먼저 AVR에 프로그램이 입력될 수 있도록 회로를 구성합니다. ISP(In-System Programmable) 보드는 컴퓨터에서 데이터를 받아 AVR에 구워주는 역할을 하는데, 병렬 포트를 이용한 ISP, 직렬 포트를 이용한 ISP, USB를 이용한 ISP 등등 다양한 종류의 ISP 보드가 있지만, 여기에서는 USB를 이용한 ISP 보드를 기준으로 설명합니다.

 

ISP 보드 설정

1. ISP는 직접 만들 수도 있고, 기성 제품(http://devicemart.co.kr/goods/view.php?seq=19015)을 구입할 수도 있습니다. 장치를 컴퓨터에 꽂고 드라이버를 설치합니다.  

2. 드라이버가 설치된 후 장치 관리자에 다음과 같이 2개의 장치가 추가되었는지 확인합니다.

그림 2. USB 장치 확인

 

3. 어떤 경우에는 USB Serial Converter 하나만 설치되어 있는 경우가 있습니다. 이 때에는 아래 그림과 같이 USB Serial Converter를 더블 클릭해서 장치 등록정보 창을 연 다음 고급 탭에서 VCP 드라이버 설치를 체크한 후 장치를 뺐다가 다시 끼워주시면 됩니다.

그림 3. VCP 드라이버 설치

 

4. 이제 회로를 직접 구성합니다. 10핀 Flat Cable을 사용할 경우 핀의 배치는 다음과 같습니다.

그림 4. 10핀 Flat Cable 핀 구성

 

ATmega8535의 Datasheet를 참고하여 Flat Cable을 AVR의 각 핀에 연결합니다.

그림 5. ATmega8535 펌웨어 입력기

 

그림 6. 펌웨어 입력기

 

2. 프로그램 작성

1. 이제 AVR Studio를 실행하고 위의 코드를 작성한 다음 Build->Build를 클릭합니다. 아래와 같이 Build 화면에 Succeeded라고 뜬다면 정상적으로 빌드 된 것입니다.

 

3. 프로그램 굽기

1. 이제 Tools-Program AVR-Connect를 누릅니다.

 

2. AVRISP 또는 STK500을 선택한 후 포트 번호는 ISP 장치의 포트 번호를 직접 지정하거나 Auto를 선택하면 됩니다.

 

3. Main 탭에서 Frequency를 설정해야 하는데 반드시 AVR에 연결된 발진기 주파수의 1/3 이하로 지정해야 에러가 나지 않습니다.

 

4. Program 탭에서 HEX파일을 구울 수 있습니다. 3개의 칸이 있는데 그 중 Flash 칸에서 작업합니다.

 

5. 빌드된 HEX 파일을 지정하고 Program 버튼을 누르면 굽기 작업이 완료됩니다.

 

4. 실행하기

미리 구성된 회로에 ATmega8535를 장착하면 이렇게 작동합니다.

 

5. 원리

1. ATmega8535는 4개의 Port로 구성되어 있습니다: PortA ~ PortD (Datasheet 참조)
2. 각각의 port는 8비트로 이루어집니다.
3. DDRx = (설정); 각 포트의 핀을 입력 전용(=0)으로 할 것인지 출력 전용(=1)으로 할 것인지 설정합니다.
4. PORTx = (값) : PortX의 핀을 통해 비트를 출력합니다.