[AVR] Atmel Studio7 개발환경
안녕하세요~
이번 포스팅에서는 Atmel Studio의 근황을 알아보고 가겠습니다~
서론
마이크로 컨트롤러(이하 MCU)는 보통 8비트 / 32비트 컨트롤러를 주로 사용합니다.
그중 8비트 컨트롤러는 AVR이 대중들에게 가장 많이 알려진 8비트 컨트롤러죠!
AVR 컨트롤러는 Atmel 사에서 제작한 컨트롤러인데요!
Atmel사는 2016년도에 Microchip이라는 경쟁관계에 있던 반도체 회사가 인수하게 됩니다.
Microchip 사도 8비트 컨트롤러인 PIC을 오래전부터 생산하던 반도체 생산업체였죠.
이 일로 8비트 MCU는 Microchip이 점령(?) 아닌 점령을 하게 됐습니다.
그래서 지금은 Atmel AVR이 아닌 Microchip AVR이 되어버렸네요!
지금도 많이 사용되고 있는 8비트 MCU AVR 개발환경 근황을 알아보도록 하겠습니다.
여전히 AVR Studio 4.19
AVR을 개발하는 개발자들은 보통 AVR Studio라는 개발 툴을 사용합니다.
GNU컴파일로도 무료로 사용이 가능하고, 툴체인도 무료로 사용이 가능합니다.
그리고 이 AVR Studio 중, 가장 많이 사용하는 버전은 AVR Studio4.19 버전 일 것이라 생각됩니다.
5 버전부터는 Visual Studio의 IDE 디자인을 사용하게 돼서 아예 툴이 새롭게 보이죠.
하지만 버전 업 초반, 이전 개발환경과 AVR ISP의 연결과정에서 발생하는 문제점 등이 이슈가 되었고
개발자들은 기존 환경인 4.19 버전을 계속 사용하였습니다.
AVR Studio 4.19 버전을 지금 와서 보면 조금 구시대(?)적인 디자인을 볼 수 있습니다.
앞서 언급했던 5 버전부터는 Visual Studio의 IDE 디자인을 사용하여
조금 더 현대적(?)인 IDE로 디자인이 변경이 되었죠!
그리고 Bug Fix 등을 통해서 지금은 7 버전 릴리즈까지 나온 상태입니다.
(7 버전도 나온 지 몇 년이 지났습니다! 8 버전이 나왔나 싶어서 봤지만 여전히 7 버전 이더라구요..ㅎㅎ)
저도 옛것을 버리기가 힘들어서 4.19 버전을 사용하다가 "변화를 두려워하면 안 된다!!"라는 마인드로
최근 릴리즈 된 Ateml Studio7을 체험해보게 되었습니다.
Atmel Studio 7 설치
(설치환경 : Windows10 Pro 64bit)
일단 AVR Studio 4 버전보다 훨씬 툴이 무겁습니다.
용량 자체도 기존 4 버전은 약 125MB (툴체인 미포함) 이였는데 7 버전은 약 890MB 정도가 됩니다.
그래도 요즘은 컴퓨터가 많이 좋아진 덕에 사용하는 데는 부담이 없을 것 같네요!
그리고 4 버전과 다르게 7 버전은 IDE full버전을 하나만 설치하면 됩니다!
4 버전은 툴체인을 따로 설치하여 사용했었습니다.
설치는 아래 링크에서 Web installer 또는 Offline installer를 클릭하여 다운로드할 수 있습니다.
www.microchip.com/mplab/avr-support/atmel-studio-7
설치를 완료하면 뭔가 익숙한(?) Visual Studio 같지만 Atmel Studio7 화면을 볼 수 있습니다.
샘플 코드 테스트
일단 컴파일이 잘 되는지 샘플 프로젝트를 생성하여 기본적인 코드를 작성해 봅니다.
File -> New -> Project (Ctrl + Shift + N)
프로젝트는 C/C++ 프로젝트를 선택하고 GCC C Executable Project를 선택하여 프로젝트를 생성합니다.
OK를 누르면 Device Selection이 나오네요!
테스트해볼 모듈은 ATmega328P 칩을 사용한 모듈입니다.
목록에서 ATmega328P를 선택해 줍니다.
추가적으로 오른쪽 목록을 보면 supported Tools 목록에 지원이 가능한 프로그래머 Tools 리스트를 볼 수 있습니다.
목록에서 보니 MPLAB PICkit4 도 보이네요.. 허허
해당 프로그래머 Tool은 PIC용 프로그래머 Tool인데 AVR도 지원을 하는가 봅니다. (확인은 안됐습니다.)
위 과정을 모두 마치면 하단처럼 기본 템플릿으로 main.c 파일이 생성이 됩니다.
우선 소스 컴파일을 확인하는 단계이니 아주 간단한 소스를 작성해봅니다.
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRB = 0xFF;
PORTB = 0x00;
while(1)
{
PORTB ^= 0x01;
_delay_ms(500);
}
return 0;
}
소스코드 작성 뒤 솔루션 빌드를 진행해봅니다.
Build -> Build Solution (F7)
컴파일도 잘 되네요!
소스 5줄 써보면서 느낀 건.......
자동 완성 참 좋습니다.........ㅋㅋㅋ
AVR Studio 4.19는 워낙 예전 툴이라 자동완성 기능이 없었습니다ㅠㅠ
하지만 Atmel Studio7은 자동완성 기능이 있으니 대략적으로 기억만 한다면 헤더 파일을 열어 볼 필요가 없겠습니다!!
아! 물론... 요즘 자동완성 안 되는 툴이 드물긴 하죠.. (비교 대상이 AVR Studio4.19 인 점... 이해해주세요...ㅎ)
아무튼 지금까지는 설치도 잘되고 컴파일도 잘되었습니다.
이제 마지막 관문이 남았네요!
프로그램 업로드만 정상적으로 실행된다면
4 버전에서 7 버전으로 갈아탈(?) 수 있을 것 같습니다!
Program Upload (아.. 아... 안돼....!@#$^&*)
AVR 프로그래머는 AVR ISP라고 불리고 여러 방식의 모듈이 있습니다.
그중에서 많이 사용하는 모듈은 STK500 프로토콜을 사용하는 버전과
USB버전의 MKII 가 아닐까 생각됩니다.
보유 중인 제품 중에 Atmel사의 정품 USB ISP MKII를 가지고 있지만
해당 제품은 Target 전원 공급이 불가능하고 외부에서 따로 전원을 넣어줘야 동작하는 방식입니다.
원칙적으로는 이런 방법이 맞는 방법이긴 합니다..............만
생각보다 불편합니다!!
전원을 따로 공급해줘야 하기 때문이죠!!!
그래서 저는 시중에 판매 중인 호환(?) 모듈을 사용합니다.
해당 제품은 ISP 쪽에서 전원 공급이 가능하기 때문에
개발 시에는 따로 외부 전원을 연결해줄 필요 없이 ISP의 USB 전원을 공급받아서
전원 공급이 가능합니다.
근데 여기서 문제가 발생합니다.
Atmel Studio7 에서는 해당 모듈을 바로 사용하기가 불가능합니다.
목록에는 정상적으로 보이지만 프로그래밍 버튼을 누르면 오류가 발생됩니다.
그래서 따로 Atmel Studio7에서 사용 가능하도록 드라이버를 교체해줘야 합니다.
작성된 글을 보면 굉장히 복잡할 것 같은 느낌이지만..
생각보다 간단합니다.
1. Atmel Studio7 종료
2. 드라이버 교체 프로그램을 다운로드
3. 실행
4. winusb 드라이버를 선택하고 Replace 선택
그럼 끝입니다.
프로그램은 아래에서 다운로드가 가능합니다.
다운로드 완료 후 프로그램을 실행시키고 현재 설치되어 있는 AVRISP mkII를 선택합니다.
그리고 하단에 변경될 드라이버를 libusb-win32 드라이버로 선택하고
Replace Driver를 눌러줍니다. (저는 이미 설치가 되어서 Reinstall Driver으로 보입니다)
만약 목록에 아무것도 보이지 않는 경우 아래처럼 진행해보시길 바랍니다.
Options -> List All Devices 체크
드라이버 교체 작업이 완료되었으면 다시 Atmel Studio7을 실행시켜서 Device Programming을 실행시킵니다.
Tools -> Device Programming (Ctrl + Shift + P)
Tool 란에서 AVRISP mkII를 선택해줍니다.
다음 Interface에 ISP Apply 버튼을 한 번 눌러주고 Device signature에 Read를 눌러봅니다.
정상적으로 작동을 한다면 MCU의 Signature를 읽을 수 있게 됩니다. (화면의 0x1E950F)
그리고 컴파일된 프로그램을 Flash 해봅니다.
Erasing device... OK
Programming Flash... OK
Verifying Flash... OK
역시 긍정적인 OK는 언제 봐도 즐겁네요!ㅋㅋ
결론
설치도 정상적으로 완료가 되었고, 프로그래밍도 가능하게 되었습니다.
당분간은 7 버전을 사용하면서 그간 4.19를 사용하며 느끼지 못한 최첨단(?) 기능을 누려봐야겠습니다!
4.19 버전이 2019년까지는 사용하기가 괜찮았는데
2020년에 사용하려 하니... 뭔가 낡은 기분이 듭니다....ㅋ (10과 20의 차이...?)
조만간 포스팅하게 될 Atmega 자료에는 해당 툴을 사용하여 포스팅을 하도록 하겠습니다!
이 글이 아직까지 4.19를 벗어나지 못하고 있는 동지분들께 도움이 되었으면 좋겠습니다..... 파.. 파이팅!
읽어주셔서 감사합니다!
'AVR' 카테고리의 다른 글
[AVR] AVRISP 연결과 NS-AT328-S 인식 및 퓨즈비트 설정 (0) | 2020.11.04 |
---|---|
[AVR] 강좌에 앞서 확인할 내용들 (0) | 2020.11.03 |
댓글
이 글 공유하기
다른 글
-
[AVR] AVRISP 연결과 NS-AT328-S 인식 및 퓨즈비트 설정
[AVR] AVRISP 연결과 NS-AT328-S 인식 및 퓨즈비트 설정
2020.11.04 -
[AVR] 강좌에 앞서 확인할 내용들
[AVR] 강좌에 앞서 확인할 내용들
2020.11.03