반응형

Microchip Studio에서 프로젝트를 생성하여 AVR에 프로그램을 올리는 방법을 다룹니다. 

 

AVRISP mkII 호환제품과 Atmega 128 보드로 테스트를 진행했습니다.

 

2015. 12. 7 최초작성

https://www.olimex.com/forum/index.php?topic=4065.0 에서 7.0에서도  사용 가능하다는 글을 보고는  정품 AVRISP mkii를 사용하는 것은 아니지만 혹시나 해서 해봤습니다.. 윈도우 10 64비트 버전을 사용중인데 문제 없이 잘 동작합니다 : )

2021. 7.10 최종작성

최근(아마도 작년) Avr Studio에서 MicoChip Studio로 이름이 바뀌었네요.  2번~5번을 하지 않고 진행해도 되는지는 테스트 못해봤습니다. 

                          

 

 

1. 아래 링크에서 Microchip Studio for AVR and SAM Devices 7.0.2542 Offline Installer을 다운로드 받아 설치합니다.

https://www.microchip.com/en-us/development-tools-tools-and-software/microchip-studio-for-avr-and-sam-devices#Downloads 

 

Microchip Studio for AVR® and SAM Devices | Microchip Technology

Get free training on our products 24 hours a day, every day. We offer on-demand courses and live sessions on general embedded control topics as well as Microchip, Atmel and Microsemi products. Learn how to improve your business by using our products to the

www.microchip.com

 

설치시 플랫폼 3가지 중 설치할 것을 물어보는데 AVR만 체크해도 무방합니다. 

마지막에 추가 라이센스를 얻을지 물어보는데 무시해도 될듯합니다. 

 

 

2. AVRISP mkii를 노트북에 연결해주고 혹시 충돌생길까봐 Microchip Studio을 종료시켜 둡니다.

 

 

3.  http://zadig.akeo.ie/ 에서 Zadig를 다운로드 받아서 실행합니다.  첫번째 콤보 박스에 AVRISP mkII가 보이지 않으면  메뉴에서 Options > List All devices를 선택합니다.  다른 항목이 보이면 콤보박스에서 AVRISP mkII를 선택해줍니다. 

 

 

 

4. 스크린샷처럼 WinUSB를 libusb-win32로 바꾼 상태에서 Replace Driver 버튼을 클릭합니다.

 

 

 

5. 성공했다는 메시지가 보이면 close버튼을 클릭하고 zadig를 종료합니다. 

 

 

 

6. Microchip Studio을 실행하여 메뉴에서 Tools > device programming을 선택합니다. 

처음에는 Tool 항목에 아무것도 보이지 않습니다. 

 

 

 

7.  Tool 아래있는 콤보박스를 눌러서 AVRISP mkII로 바꾸어줍니다. 

Atmega128 보드를 ISP에 연결해주고 인식 안될 수 있으니 ISP를 PC에 다시 연결해줍니다. 

 

Device에서 사용할 마이크로컨트롤러를 선택해줍니다. 여기에선 Atmega128A를 선택해주었습니다. 

 

Interface는 ISP가 선택된 상태로 둡니다. 이제 Apply 버튼을 클릭합니다. 

 

 

 

다음 스크린샷처럼 바뀝니다.  

 

 

8.  문제없다면 오른쪽에 보이는 두 개의 READ 버튼 클릭하면 각각 값을 읽어옵니다.  

 

 

 

9. 새로운 프로젝트를 생성하여 테스트해봅니다. 메뉴에서 File > New > Project를 선택합니다. 

GCC C Executable Project를 선택해주고 Name(프로젝트 이름)으로 Led를 입력하고 OK를 클릭합니다. 

 

 

 

10.  오른쪽 검색창에 마이크로컨트롤러의 모델명을 입력 후, 왼쪽에 검색된 목록에서 디바이스를 선택합니다. 

여기에선 128A를 검색하여 Atmega128A를 선택했습니다. OK를 클릭합니다.

 

 

 

11. 새로운 프로젝트가 생성되었습니다. 다음 코드를 복사하여 붙여넣기 합니다. 

#define F_CPU 16000000 
#include <avr/io.h> 
#include <util/delay.h> 
 
int main(void) { 
     
    //포트D를 출력으로 설정한다. 
    DDRD = 0xFF; 
     
    while (1) { 
         
        //포트D의 값을 0xFF로 한다. LED가 켜진다. 
        PORTD  = 0xFF; 
        _delay_ms(300); //300ms 대기 
         
        //포트D의 값을 0x00으로 한다. LED가 꺼진다. 
        PORTD = 0x00; 
        _delay_ms(300); //300ms 대기 
         
    } 
    return 0; 
     
}




 

 

12. 코드를 컴파일하기 위해 메뉴에서 Build > Build Solution을 선택합니다. 문제 없으면 로그 마지막에 다음 메시지가 보입니다. 

 

Build: 1 succeeded or up-to-date, 0 failed, 0 skipped 

 

 

13. 이제 보드에 올려야 합니다.  메뉴에서 Tools > Device programming을 선택합니다.

Tool에 AVRISP mkII, Device에 사용할 마이크로컨트롤러, Interface에 ISP가 선택되었는지 확인하고 Apply 버튼을 클릭합니다. 

 

 

 

문제 없으면 다음처럼 보이게 됩니다. 

 

 

 

14. 왼쪽 항목에서 Memories를 선택합니다. 컴파일 된 결과물이 오른쪽 Flash 항목에 입력되어 있는게 보입니다. 이제 Program 버튼을 클릭합니다.

 

 

 

15. 문제없으면 로그에 다음처럼 3가지 항목 옆에 OK로 출력됩니다. 

 

Erasing device... OK 

Programming Flash...OK 

Verifying Flash...OK 

 

 

16. 이제 보드에 LED를 연결해서 문제 없이 LED가 깜빡이는지 확인합니다.  

코드에선 포트D에 연결된 LED를 깜빡이도록 합니다. LED의 긴다리를 포트D 핀 중 하나에 연결해주고 LED의 짧은 다리를 GND(그라운드) 핀에 연결하면 됩니다. 

 


반응형

문제 발생시 지나치지 마시고 댓글 남겨주시면 가능한 빨리 답장드립니다.

도움이 되셨다면 토스아이디로 후원해주세요.
https://toss.me/momo2024


제가 쓴 책도 한번 검토해보세요 ^^

+ Recent posts