AVR Studio 4 + ToolChain(WinAVR)사용하는 방법 - AVR 통합 개발 환경

2012.12.29 12:00




현재 군 복무중인 상태입니다.



AVR Studio 4 + ToolChain(WinAVR) 다운로드 및 설치


AVR Studio 4는 Studio 5와 Studio 6으로 판올림 되면서 더 이상 Atmel 에서 다운로드를 제공하지 않는 것 같습니다.

그래서 다운로드 아이콘을 클릭해서 AVR Studio 4와 ToolChain 혹은WinAVR을 다운로드 받습니다.

AVR Studio 4는 윈도우 OS상관없이 설치하고 툴체인은 XP이상버전에서 WinAVR은 XP이하버전 혹은 XP에서 사용해도 무방합니다.

툴체인과 WinAVR을 설치하는 이유는 Studio 4 까지는 자체적으로 컴파일러가 없어서 설치가 필요했습니다만 5와 6부터는 자체적으로 포함되어있습니다.

윈도우 프로그램 설치과정과 동일 하므로 설치과정은 생략합니다.


 AVR Studio 4 다운로드 - 구글 드라이브로 연결됩니다.


 AVR ToolChain 다운로드 - 구글 드라이브로 연결됩니다.


 WinAVR 다운로드 - 구글 드라이브로 연결됩니다.


설치가 완료되었으면 시작 > Atmel AVR tools > AVR Studio 4를 실행합니다.


(AVR Studio 4 실행화면)



새 프로젝트를 시작합니다.


New Project를 눌러 새로운 프로젝트를 시작합니다.




프로젝트 타입은 C언어로 코딩할것이므로 AVR GCC를 선택하고 프로젝트 네임을 작성합니다. 

그리고 Location 코드가 저장될 폴더를 ... 버튼을 눌러 지정 합니다.

저장될 장소에 폴더를 만들어 지정해서 저장해도 되나 이미지 처럼 Location을 문서로 지정해

두고 Create folder를 체크해두면 자동으로 폴더가 생성됩니다.

Next를 눌러 다음으로 진행합니다.



 


AVR 시뮬레이터 설정을 해줍니다.

시뮬레이션을 할때 필요하며 기본을 다지는데는 중요하지 않습니다.

Debug platform에서 AVR Simulator를 선택하고 Device에서 사용하는 AVR을 선택하고

Finish를 눌러서 새 프로젝트 생성을 완료합니다.




기본소스를 입력합니다.


설계된 하드웨어는 B포트에 0부터 7번 비트까지 LED를 연결 된 것으로 설계합니다.




새 프로젝트 생성을 완료하고 나면 AVR.c 의 아무것도 없는 백지 화면이 나오는데

여기에 코드비전C와 같이 기본적인 입출력헤더파일과 main함수들을 입력해줍니다. 




입출력함수의 정의가 되어있는 파일인 io.h파일은 툴체인을 설치한 폴더

C:\Program Files\Atmel\AVR Tools\AVR Toolchain\avr\include 에 있습니다.

최상위가 include 폴더입니다만 io.h파일은 include폴더안에 avr폴더속에 있으므로

선행처리기 즉 #include에 <avr/io.h> 로 선언합니다.


백지부분에 다음과 같이 입력합니다.


#include <avr/io.h> // AVR 입출력이 정의된 파일을 프로그램에 포함합니다.


void main()    // main함수입니다. C언어에서는 반드시 필요한 함수입니다.

{


PORTB=0x00; // 포트B의 초기값은 0 입니다. 모두 꺼진 상태입니다.

DDRB=0xFF;  // 포트B의 모든 비트를 출력으로 사용합니다.

while(1)

{

PORTB=0xFF // 포트B의 다음 동작을 입력합니다. 포트B의 LED를 모두 켭니다.

}

}




컴파일(빌드) 합니다.


상단바에서 Build > Build 를 눌러 빌드해줍니다.




빌드 후에 에러가 없으면 hex파일이 생성됩니다.

만약 에러가 있다면 하단의 메세지 박스에서 빨간 동그라미를 더블클릭해서 틀린부분으로

이동 후에 수정해 다시 빌드합니다.




생성된 프로그램을 다운로드합니다.


생성된 Hex파일을 설계한 하드웨어에 다운로드 합니다.

메뉴바에서 Con 연결버튼을 클릭합니다.




버튼을 클릭하면 ISP와 연결된 COM포트를 선택하는 화면이 나오는데 자신이 사용하는 ISP의 종류와 ISP가 연결되어있는 USB로 가상생성 된 포트 혹은 COM포트를 선택합니다.

COM포트를 확인하는 방법은 내컴퓨터에 커서를 두고 오른쪽 클릭 후 속성에서 장치관리자를 들어가 포트(COM & LPT)를 확인하면 연결된 장치가 뜹니다.

모두 선택했으면 Connect를 클릭해서 연결합니다.




연결이 완료되면 Main에서 사용하고자 하는 AVR을 선택/클릭합니다.

예시로 사용한 제 AVR 모듈은 ATTINY2313을 사용하므로 ATTINY2313을 선택/클릭합니다.




다음은 프로그래밍 툴에서 상단메뉴중 Program 클릭후에 Flash 부분의 파일불러오기 

...을 눌러서 프로젝트를 생성했던 폴더의 Hex 파일을 불러 옵니다.

불러온 후에 Flash영역에 버튼 중 Program을 눌러 Attiny2313 모듈에 Hex파일을 다운로드합니다.




프로그래밍 툴의 하단의 메세지 박스가 다음처럼 뜬다면 정상적으로 프로그래밍 된것입니다.




작동을 확인해 봅니다.




프로그래밍 하기전에는 전원이 들어와 있어도 LED가 들어오지 않습니다.




프로그래밍 후에는 LED에 불이 들어와 있습니다. While문에 변화를 주면 좀더 다른 반응도 

가능하답니다.

LED가 밝아서 보정이 잘 안되네요. ;;


BinGoon AVR/AVR 기초, info , ,

  1. Blog Icon
    Mr도리

    궁금한점이 있습니다.
    저는 제작년에 복학해서 인문계(공부못함)나와서 아무것도 배운것도 없는 상태에서 ATmega128이라는 것을 접하게 되었습니다. 그때 설계하는데 멋도 모르고 하다보니 엄청고생해서 겨우 하드웨어 제작하고 보고서 쓰고 해서 하다가 이번 겨울부터 다시 공부하는데요.
    역시나 기초가 부족해서 그런치 전자쪽에는 ... 그 당시 8x8x8 LED 큐브만들어서 제작하고(3일날밤.. 하드웨어만,, 코딩은 빌렸어요 ㅋㅋ), 초음파센서로 거리측정하는거 ATmega128로 해봤지요..
    정말 어렵게 어렵게 ㅎㅎ (2진수의 개념도 모르고 컴퓨터구조도 모르고 아무런 선행학습없이 시작한거라..)
    제가 이제 다시 시작하는데 BinGoon님블러그 보고 많이 공부하려고요..초보적인 질문 해도 이해해주세요.
    질문은..9V건전지와 7805레귤레이터 사이에 회로도를 보면 캐패시터를 달았잖아요.. 왜 설치해야하나요? 그리고 적당한 용량은 어떻게 계산하는지...??

  2. 안녕하세요^ 지금 타지역에 와있어서 이번주는 관리가 힘든데. 일단 질문이 있어서 모바일로 달았어요.!
    7805는 선형레귤레이터라서 별도의 콘덴서가 없어도 무리없이 동작하지만
    입력측에 100uF콘덴서는 전원 안정화나, 입력리플 제거용으로 주로 사용되고, 출력측에 콘덴서는 갑자기 큰 부하(전류를 많이 끌어쓰는) 부품을 연결했을때 전압의 급격한 출렁임을 막기 위해서 사용됩니다.
    큰 부하가 아니라면 무리없이 100uF정도면 됩니다^

  3. Blog Icon
    Mr도리

    WinAVR설치하고 AVRstudio설치 순으로 하면 되죠?^^
    그리고 이 둘을 같이 설치하는 이유가 뭔가요??

  4. AVR Studio랑 AVR toolchain을 설치하는 것이 좋아요.
    툴체인 쪽이 좀더 최신버전이라서요^ㅎ
    Studio는 원래 디버깅용도 였는데 AVR GCC기반 컴파일러인 WINAVR과 결합해서 통합개발환경으로 사용하기 위해서 설치한답니다.
    Studio먼저 설치하시고 WinAVR이나 툴체인을 설치하시면 된답니다^

    오랜만에 들러 주셨네요ㅎ
    덧글 감사드립니다.

  5. Blog Icon
    하니딥

    안녕하세요.
    AVR을 공부하게 되면서 위에 나온 방법대로 했는데 자꾸 에러가 납니다.
    빌드를 하게 되면 makefile:no such file or directory 이렇게 뜨는데요
    수정 할 수 있는 방법을 알려주시면 감사하겠습니다^^
    파일은 모두 설치했습니다.

  6. 안녕하세요.^
    makefile:no such file or directory는 빌드할때 각 c, h파일의 종속을 구분짓는 파일인 makefile이 작업하는 폴더내에 없으신것 같아요.
    아니면 AVR Studio옵션에서 외부 Makefile을 사용하도록 체크되어 있는것 같습니다. 워낙 원인이 다양해서 좋은 답변 드리기 어렵네요.^

  7. 답변이 늦어 죄송합니다.
    부득이 PC를 이용할수 없어 모바일로 답변작성하고, 답변이 간결하게 될수 있습니다. 해당 메세지는 유사한 사례를 답변드렸는데요. 먼저 첫번째로 Makefile 누락 가능성이 있습니다. 자동으로 생성되는 메이크파일을 이용하지 않은 경우 생기거나 두번째로 소스코드 파일이 있는 경로에 한글을 사용한 폴더가 포함되어있으면 안됩니다. 모두 영문으로 변경하시고 다시 빌드 해 보시기 바랍니다.
    부족하지만 도움되시기를 바라며 필요하시면 또다시 댓글 달아주세요^^

  8. Blog Icon
    하니딥

    빌드 문제는 해결되었는데 connect가 되질 않네요~
    저는 ATmega128을 사용하는데 프로젝트 생성할 때 AVR simulator 선택해서 프로그램하고 connect할때 stk500에서 ATmega128을 선택했거든요~
    틀린것이 있나요?^^

  9. 사용하시는 AVR ISP 툴킷의 드라이버를 설치하셨는지 확인이 필요해 보입니다. STK500 시리즈라면 CP2102 또는 FT232R 드라이버를 설치해 주셔야 ISP를 사용하실 수가 있어요.
    AVR-MK2를 사용 중이시라면, AVR Studio가 정상적으로 설치되셨다면 그냥 인식되게 됩니다. 그리고 STK500시리즈는 설치가 완료 되셨으면 Connect 하실때 포트를 Auto로 해두시고 연결해 보시고, 안되시면 내 컴퓨터 > 속성 > 장치관리자 > 포트 (COM&LPT) 에서 설치하신 드라이버와 관계된 FT232, CP2102 포트와 알맞게 선택해 주시고 연결해 보시면 될 것 같습니다.^ 도움이 되시길 바랍니다.^

  10. Blog Icon
    0000

    안녕하세요.
    컴퓨터와 연동해서 스위치를 껏다켰다 해주고싶은데. .
    avr로 해줄수있는건가요?
    1버튼을누르면 스위치가 꺼지고
    2버튼을 누르면 스위치가 눌리면서 불이켜지게하고싶은데 가능한가요?.

  11. 안녕하세요.^ 방문해 주신것을 환영합니다.

    먼저 가능하답니다.
    컴퓨터 쪽에서는 비주얼 베이직이나 C++로 시리얼 통신 프로그램을 작성하셔서 AVR과 UART기능으로 연결하도록 하고, AVR 쪽에서는 UART신호를 받아서 수신된 문자나 문자열이 일치하면 동작하도록 프로그래밍 하게되면, 제어가 가능합니다. 여기다 대전력 릴레이를 붙이시게 되면, 전자에서 더 나아가 전기수준으로 제어가 가능하게 되겠지요.^^ UART 이론을 정리했으니, 조만간 공개된 시리얼 프로그램을 통해서 유선통신으로 LED제어 포스팅을 할 예정입니다. 조금 늦어질지 모르겠지만.. 기다려주세요.! 혹은 한번 시도해 보시는 것도 추천드립니다.^^

  12. Blog Icon
    HALASHOW

    아주 초보딘요 6개월 해와 달을 찾아 다녔는데
    이 싸이트 보고 답이 나오네요
    감사 댕큐

  13. 블로그가 도움이 되셔서 다행입니다.
    올해 부터는 전공관련으로 직장인이 되어서, 블로그 업데이트를 자주 못하게 될 것 같습니다. 찾아주셔서 감사드립니다.^

  14. 어떤 코드를 빌드하시는 것인가요?? 코드에 전혀 이상이 없다면, 보통 메인C파일과 분리해서 짜놓은 C파일을 포함하지 않았을 경우 또는 외부 메이크파일을 사용하도록 설정해 두셨거나, 프로젝트가 저장된 경로에 한글이 포함되었거나 한다면 저런 에러가 발생합니다만, 단순히 저것만 보아서는 어디서 발생했는지 알수가 없습니다.
    위의 경우를 확인해 보아도 정상이라면, AVR Studio 4 > 상단 메뉴바 Project > Configuration Options 에서 Use External Makefile을 체크하고 프로젝트 폴더내에 있는 Make파일을 수동으로 선택하고 확인을 누른후 다시한번 빌드해 보시기 바랍니다.^

  15. Blog Icon
    HALASHOW

    Build started 26.1.2014 at 21:39:05
    make: Makefile: No such file or directory
    make: *** 타겟 `Makefile'를 만들 규칙이 없음. 멈춤.
    Build failed with 1 errors and 0 warnings...


    BUILD 하니
    이런게 나오내요
    AVRISP mikII 사용합니다.

    이유가 ".c" 만 있고 ".h"는 없는데 위에 3종류
    (avr studio 4, avr toolchain, winavr)를 다운받았는데
    ".h"파일은 왜 없지요????

  16. Blog Icon
    HALASHOW

    취직을 축하하고요
    이렇게 관심을 가져주셔서 감사하고 감사하네요

  17. 일단 io.h나, interrupt.h 같은 기본적인 .h 헤더파일의 경우 Windows7 기준, AVR Toolchain과, Winavr은 둘중에 하나 선택 설치이므로, Toolchain설치시 C:\Program Files (x86)\Atmel\AVR Tools\AVR Toolchain\avr\include 다음 경로에 헤더파일들이 모여 있습니다. 정확한 원인은 소스코드를 직접 빌드해 보아야 할것 같습니다. 복잡한 소스코드가 아니라면, 다음과 같이 다시 진행해 보시기 바랍니다.

    1. 모든 저장경로(폴더)가 영문으로 되도록 폴더를 생성합니다.
    2. 해당 폴더로 AVR Studio 4에서 새로운 프로젝트를 생성합니다.
    3. 기존 소스코드를 복사하여 AVR Studio 4에 붙여넣기 합니다.
    4. 다시 한번 빌드하여 봅니다.

    아쉽게도 이런건 직접 보지 않으면 알기 힘든 부분이라서요. 부족하지만 도움 되시기를 바라겠습니다.

  18. 축하 메세지 감사드립니다.^^ 혹시 계속해서 빌드가 안된다면 이메일로 소스코드를 전송해 주시면 확인하여 답문 보내드리겠습니다.^

  19. Blog Icon
    HALASHOW

    성공했습니다.
    BinGoon님의 글을 읽고 읽고 했는데
    중요한부분은
    "모든 저장경로(폴더)가 영문으로 되도록 폴더를 생성한다"
    라는 부분을 묵인해서 생긴 현상입니다.
    다시한번 더 좋은 정보 감사하고 사회 첫발 축하드립니다.
    그리고 앞으로 많은 지도 편달 부탁드립니다.

  20. 문제점을 해결하신 것을 축하드립니다. 부족하지만 앞으로도 계속 방문해 주시길 바라구요. 사회 첫발을 내딛은 부분 축하해 주신 점 감사드립니다. :-)

  21. Blog Icon
    123

    설치를하면 화면이 계속 아래로 내려가네요. 인스톨만 누르면 그렇습니다.
    왜이런걸까요 ㅠㅠ

  22. 안녕하세요.
    제가 정확한 원인은 규명할수 없으나, 윈도우에 인스톨 패키지에 이상이 생겨서 자꾸 윈도우 바에서 작업종료 되는것이 아닌가 추측해 봅니다. 해당 부분 참고해 주시기 바랍니다.^^

  23. Blog Icon
    mlsjb

    안녕하세요
    WinAVR 설치하고 실행하면 일정 날짜 이상은 실행이 안되도록 되어있더라구요.
    윈도우 날짜를 돌리면 괜찮은 것 같은데 그렇게 하면 들어오는 메일 날짜가 다 과거로 되어버려서 곤란한 상황입니다. 어떻게 하면 좋을까요, 다른 분들은 그런 현상이 없는 것 같은데..

  24. Blog Icon
    ㅁㅁㅁ

    스튜디오4 설치파일 감사합니다!

티스토리 툴바