프로테우스는 가상 실험을 통해 회로를 설계하고 점검할 수 있을 뿐만 아니라 완성된 회로를 PCB 제작까지 할 수 있는 통합 시뮬레이션 프로그램이다. 회로 시뮬레이션 하면 Orcad나 Multisim 같은 툴들이 생각나겠지만 프로테우스는 하드웨어가 주가 아닌 소프트웨어와 주변 회로 해석에 중점을 두고 있기 때문에 앞서 언급한 툴들과 성격이 약간 다르다. 특히 최근 버전인 8.6에서는 8051, AVR 등의 오래된 프로세서부터 아두이노, STM32M0, M3 까지 다양한 MCU 들을 지원하기 때문에 소프트웨어 점검과 디버깅을 빠르게 진행할 수 있고 공부하는 입장에서 또한 유용하게 쓰일 수 있다. 



본 포스팅에서는 간단하게 프로테우스 8.6 툴의 사용법과 기본 설정 및 테스트를 진행해볼 것이며 앞으로 AVR 관련 글들도 모두 프로테우스를 활용할 예정이다.



1. 프로젝트 생성



프로테우스를 실행하면 위와 같은 첫 화면이 나타난다. 좌측 상단에 File 을 누르고 New Project를 클릭하여 원하는 이름의 프로젝트를 생성하도록 하자. 생성 과정에서 화면 크기는 Landscape A3 정도가 무난하며 PCB layout은 본 포스팅에서 다루지 않기 때문에 그냥 넘어가도록 한다.



위 화면은 프로테우스 툴에서 직접 펌웨어까지 개발할 것인가를 묻고 있다. Create Firmware 선택시 사용할 MCU와 컴파일러를 설정할 수 있으며 사실 이 부분도 선택사항이긴 하지만 프로테우스 툴에서 코드를 짜는 것 보다 다른 컴파일러를 사용하는 것이 편하기 때문에 No Firmware Project 를 선택하도록 하자. 그럼 다음과 같은 초기 화면이 나타날 것이다.




2. 단축키 설정


다른 회로 시뮬레이션 툴을 사용한 경험이 있다면 프로테우스를 사용하는데 있어서 그다지 어렵지 않으며 몇번 사용하다보면 쉽게 익숙해질 수 있다. 그런데 특이하게도 한 가지 불편한 점이 있는데, 바로 단축키 부분이다. 필자가 많은 툴들을 다뤄본 것은 아니지만 이제까지 살면서 가장 기본적인 Ctrl + C 와 Ctrl + V 단축키 조차 디폴트로 지정되어 있지 않은 툴은 처음 봤다. 따라서 가급적 기본적인 단축키 정도는 지정하고 툴을 사용하기를 바란다. 단축키는 메뉴에서 System 탭의 Set Keyboard Mapping 항목에서 설정할 수 있다.


 

설정 방법은 위와 같이 명령어를 클릭하고 밑의 No Key Set 부분에 설정할 단축키를 입력한 뒤 Assign을 클릭하면 할당이 완료된다. 추가적으로 도형을 회전시키는 Rotate 키를 R 로 설정해두면 보다 편하게 사용할 수 있으며 나머지는 툴을 직접 사용하면서 불편한 부분만 개인적으로 설정하기 바란다.



3. LED 점멸


그럼 프로테우스 툴을 사용하여 ATmega128 보드에 간단한 LED 점멸 코드를 삽입하고 시뮬레이션을 진행해보자. ATmega128 보드 및 기타 모든 부품들은 단축키 P를 눌러서 찾을 수 있다.



마찬가지로 Led와 저항을 찾아서 다음과 같은 회로를 구현하도록 한다. 이때 LED는 Active 라이브러리를 선택해야 시뮬레이션에서 시각적으로 불이 켜지는지 확인할 수 있다. (LED-BLUE, LED-RED 등의 부품을 선택하면 된다) 또한 저항을 더블 클릭하면 저항 값을 바꿀 수 있으며 접지나 파워는 부품이 아니므로 왼쪽 메뉴에서 Terminals Mode 탭을 클릭하면 가져올 수 있다. 완성된 회로는 다음과 같다.



실행 코드는 다음과 같으며 필자는 CodeVision 컴파일러를 사용하였다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <io.h>
#include <delay.h>
 
void main(void)
{
    char temp = 0x01;
    DDRB = 0xFF;
 
while (1)
    {
        PORTB = temp;
        delay_ms(300);
        temp = temp << 1;
        if( temp == 0x00)
            temp = 0x01;
    }
}
cs

프로테우스의 AVR에 위 프로그램 코드를 집어넣으려면 해당 코드의 HEX 파일이 필요하다. HEX 파일은 컴파일러를 통해 프로그램을 빌드하면 자동으로 생성되며 위 그림에서 atmega128을 더블 클릭하여 설정창으로 이동한 후 Program File 항목에 HEX 파일의 경로를 설정하도록 하자.



그리고 기본 설정이 내부 RC 클락으로 동작하게 되어 있으므로 위 빨간색 부분에 외부 클락으로 설정한 뒤 밑에 16MHz로 설정해두면 시뮬레이션에 필요한 초기 설정이 모두 완료되었다. 이제 설정창을 닫고 메인화면 밑에 시뮬레이션 시작 버튼을 클릭하여 프로그램이 잘 동작하는지 확인해보자.




간단하게 프로테우스 사용법에 대해 알아보았다. 사실 본 포스팅에서는 가장 기초적인 부분만 다루었으며 방대한 부품들을 지원할 뿐만 아니라 오실로스코프, 로직 아날라이저, 터미널 등 다양한 부가 기능들을 지원하기 때문에 MCU를 사용한 회로 설계에 있어서 유용하게 사용할 수 있을 것이다. 앞으로 AVR 관련된 포스팅들을 준비하면서 하나하나 소개하도록 하겠다.

'Electronic > AVR' 카테고리의 다른 글

소스 레벨 디버깅  (0) 2017.06.14
외부 인터럽트  (0) 2017.06.08
인터럽트 이해하기  (0) 2017.06.06