너무 정리가 잘되어 있으셔서..감히..가지고왔습니다..ㅠㅠ 불쌍한 우리 공대인들에게 도움이 되길 바라며..



* 전체 크기의 스크린샷은 1920 x 1080 해상도입니다.

* 설치 진행 환경은 Windows 7 32bit입니다.

* Windows XP 32bit / Windows 7(x86/x64) 모두 설치 및 실행 가능합니다.

* 설치 이후 라이센스 문제로 데모로 실행된다고 하시는 분들은, 라이센스 매니저를 별도로 실행하여 라이센스 세팅을 다시 진행해보세요. 여기에 설명되어 있습니다.

Orcad는 많은 프로그램 중 전기/전자/통신을 전공하는 분들이라면 한번 이상은 만져봐야 할 프로그램이 아닌가 생각합니다.
이 글에서는 Orcad 16.3 버전의 설치 방법에 대해 알아봅니다. 
(정식은 아니고, Shooters라는 그룹 혹은 개인이 릴한 자료)



통상적으로 어느 릴 그룹에서 릴한 자료는 별도의 *.nfo 파일을 포함하고 있거나,
별도의 폴더를 추가하여 놓습니다.

SHooTERS 라는 폴더를 들어가봅니다.

해당 폴더 안에는 정상적인 사용을 위한(정품 인증 회피를 위한) 방법과 필요한 파일들이 있습니다. 
이를 이용해 설치를 진행하도록 합니다.
(모든 복돌 프로그램의 공통사항이라 해도 과언이 아닙니다.)

다시 CD/DVD로 돌아와서 setup.exe를 실행하면,
다음과 같은 설치화면을 볼 수 있습니다.


License Manager를 먼저 설치해줍니다.

설치 경로 지정은 D드라이브로 하였습니다.
(기본은 C:\Cadence\LicenseManager 입니다.)



순조롭게 진행되다가, 다음과 같이 라이센스 파일의 위치를 지정하라는 메시지가 뜹니다.
라이센스 파일은 설치용 CD/DVD 안에 있는 파일을 지정해줍니다.
Browse 버튼을 눌러, (설치CD/DVD)\SHooTERS\license_manager\orcad_163.lic 의 경로를 지정해주시면 됩니다.


파일 경로를 지정한 모습. Next를 눌러줍니다.

파일 경로를 지정해준 뒤 뜨는 화면입니다.
다른 것은 변경하지 마시고, Host Name : 부분에 본인 컴퓨터의 이름만 적어줍니다.
혹 컴퓨터 이름이 한글로 되어있다면, 영문으로 변경하고 진행하셔야 합니다.
한글 컴퓨터 이름은 인식하지 않아 문제가 생깁니다.



이후 Next를 누르시면 설치가 끝납니다.

설치가 끝난 이후,
설치 CD/DVD의 다음 경로로 이동합니다.

\SHooTERS\license_manager



보이는 cdslmd.exe 파일을 복사하여,
다음의 경로에 붙여넣습니다.
C:\Cadence\LicenseManager\
(스크린샷에서는 D:\Cadence\LicenseManager)


이 과정까지 끝났다면,
제품 설치에 들어갑니다.


Product Installation을 선택하여 제품을 설치합니다.



공백으로 놔두셔도 큰 문제 없습니다.


설치 경로의 지정.


설치하려는 제품의 선택. 전 제품을 설치를 선택해봤습니다.


읽어보시고 적당한 것 선택하시면 되겠습니다.


기본 경로는 C드라이브입니다. (여기에서는 D드라이브로 변경)


설치를 위한 설정 사항을 한번 확인하시고, Next 한번, Install 한번을 누르면 설치가 시작됩니다.
설치 과정에서 기타 필요한 프로그램도 같이 깔립니다만, 별도 설정을 해주실 부분은 없습니다.


인스톨이 진행 중입니다. 대략 10분 가량이 소요되는 듯 합니다.


인스톨 마지막 과정에서 이런 화면이 나오면 Next를 눌러줍니다.
Next 클릭 이후 별다른 반응이 없다면, Alt-tab 키를 이용해서 다른 창이 뜨지 않았나 확인해보세요.

인스톨이 완료되었습니다. Finish 를 눌러줍니다.


설치 CD/DVD의 Shooters\경로로 가서, orcad_163.exe 파일을 복사합니다.


복사한 orcad_163.exe 파일을 C:\Cadence\ 경로에 붙여넣기 합니다.
붙여넣기 한 파일을 실행합니다.

orcad_163.exe 를 실행하시면 작은 도스창이 뜨고,
얼마간의 시간이 지난 후 자동으로 종료가 됩니다.
도스창이 종료되면 재부팅을 해줍니다.

재부팅이 끝나면, 프로그램을 실행해봅니다.





설치가 잘 되었습니다.

'Engineering > Using the ORCAD' 카테고리의 다른 글

[ORCAD] DRC 에러대처  (3) 2012.11.01

너무 오랜만에 포스팅을 하는거 같습니다..ㅠㅠ 몇달만인지...

그래서 하루방문자는..여전히..2자리에..1과~2를 왔다갔다..ㅋㅋ

이제부터 열심히 하겠습니다!ㅎ 그동안 쌓아놓은 자료들이 참 많습니다! ㅎ

여튼 여담은 여기서 끝내고 MCU 내부구조에 대해서 자세히 알아보겠습니다^^

-------------------------------------------------------------------------------

STACK POINTER 의 뒤를 이어서~ 이번에는 왼쪽 부분의 구조를 살펴보겠습니다.




6) 프로그램 카운터


프로그램 카운터는 내가 실행시킨 명령어의 주소를 가리키는 역할을 한다.

자 이게 무슨말이냐 하면 이전에 ATmega128은 플래시 프로그램 메모리를 128K 가지고 있다고 하였습니다.

이 메모리는 응용프로그램부 (사용자가 직접 코딩하여 만든 프로그램을 넣는공간)와 부트 프로그램부로 나눠지고

응용프로그램은 그냥 시스템에 전원이 들어오면 막 실행되는 것이 아니라 "프로그램 카운터"를 거쳐서 실행이 됩니다.

즉, 프로그램의 실행은 MCU가 프로그램카운터가 가리키는 주소의 명령어를 차례대로 실행시키는데 그 주소가 

아마 응용프로그램부의 프로그램을 가리키니깐 우리가 코딩한 프로그램이 실행이 되겠지요? ㅎㅎ


따라서, 

프로그램 카운터 = 줄여서 PC 라고 하겠습니다! 


PC의 크기는 16bit 이고~ 그래서 64[Kword](2x64Kbyte) = 128Kbyte)의 FLASH PROGRAM MEMORY 공간을 가리킬수 있습니다.


7) 명령어 레지스터 (Instruction register)


앞에서 PC는 명령어 실행을 위해 플래시 프로그램메모리의 주소를 가리키고있다고 했습니다. 그럼 가리키고만 있으면 무언가 실행이 될까요? 아마 안되겠죠? 그래서 명령어 레지스터는 해당된 주소의 저장된 명령어를 명령어 레지스터로 인출합니다 ^^

(그리고 각 명령어는 "명령코드,오퍼랜드,연산결과가 저장될 내용(항목)"들을 가지고 있습니다.)


(오퍼랜드 : 컴퓨터 프로그래밍에 있어서 연산 대상이 되는 값이나 변수를 지칭하는 말이다. 연산 내용을 나타내는 기호는 [연산자] 또는 [오퍼레이터(operator)]라고 한다. 예를들어 [A + 10]라는 식에서, [A]와 [10]은 오퍼랜드이며, [+]는 오퍼레이터이다. 기계어나 어셈블리 언어에서는 명령 대상이 되는 레지스터나 값을 오퍼랜드라고 부른다.)


8) 명령어 디코더 (Instruction decoder)


명령어 디코더는 명령어 레지스터로 가져온 명령어를 디코딩하여 명령코드에 해당하는 제어신호를 만듭니다.

따라서 위의 일련의 과정을 따라서 우리가 코딩한 프로그램이 PC를 통해 명령어 레지스터로 가져와지고 명령어 디코더로 해석되어져서 제어신호가 나오고 ALU로 전달되거나 그 결과값이 어딘가 저장되는 겁니다. 오해하시면 안되는 부분이 명령어를 해석하고 바로 I/O핀으로 출력신호가 나오는것이 아니라~ 이제 연산과정을 거치러 ALU로 이동한다는것입니다 ^^



**상태레지스터 예제문제**

이런건 시험에서 많이 출제하시더라구요..ㅎㅎ 제가 다니던 학교에서도 이걸 풀었습니다..ㅠㅠㅋㅋ 

아무쪼록 도움이 되었으면 합니다 ^^


I(7) : interrupt enable    1= 전체 interrupt enable, 0 = 전체 인터럽트 disable


T(6) : 비트 복사 저장,

      BST명령으로 레지스터의 한 비트를  T bit에 복사한다.

      BLD명령으로 T bit를  레지스터의 한 비트에 복사한다.


H(5): half carry flag  :   0000 1000 + 0000 1000 <-이와같이 연산결과 비트3에서 비트4로 캐리가 발생하면 1이 된다. half carry 발생

                                 이는 BCD연산에 유용하다.

 

S(4):  sign bit :  V 배타적 OR  N (XOR을 의미합니다)


V(3): overflow bit  :  2의 보수 오버플로 플래그 (그냥 오버플로가 아닙니다!), 비트7과6의 배타적 OR


N(2): negative bit :  연산결과가 MSB가 1이면 이 플래그가 1인된다. 음수라는 의미임


Z(1): zero bit : 연산결과 모든 비트가 0이면 이 플래그가 1이 된다. 0을 나타냄


C(0): carry bit : 연산결과 MSB에서 캐리가 발생하면 1이 된다.


[예제] 아래는 두수의 연산에 대한 결과를 상태레지스터로 나타낸 도표이다. 이를보고 두수의 관계를 설명하라.

 

 

 N

Z 

C 

관계 

설명 

 i = i - k;

1

0 

i < k

연산결과가 음수이며 캐리비트가 1이기 때문에 연산시 캐리를 빌려왔다. 따라서 i가 k보다 작다. 

 i = i + j;

 0

0 

알수없다 

결과가 음수인지 양수인지 알수없다. 단지 캐리비트가 1이라는 사실로는 아무것도 알수없다. 

 i = i - o;

0 

1 

i = 0 

Z비트가 1이면 연산결과가 0이다. 따라서 둘의 관계는 같다




**추가적으로 SREG는 가장 최근에 실행된 산술연산의 결과 정보를 저장합니다. 이 결과에 따라 다음에 실행되는 명령어에 영향을 끼치는 데요..문제는 ATmega128이라는 녀석은 인터럽트가 발생했을때 상태 레지스터를 하드웨어가 자동으로 저장않습니다. 따라서 소프웨어적으로 인터럽트 발생시 상태레지스터를 저장하고 인터럽트수행후 다시 복원을 해야 오류가 발생하지 않습니다.



갑자기 궁금해서 올려봅니다..ㅎㅎ BCH 와 BCD 란 무엇일까요? ---------------------------------


그전에 주의하실점은 같은 철자의 약자를 가진 BCH,BCD가 많다는 것입니다 ^^;

참고로 여기서 설명하는것은 MCU 프로그램을 코딩하실때 사용하시는 코드입니다~!


BCH (binary-coded hexadecimal) 

: 4자리의 2진법으로 표현된 16진법입니다!


16진 

BCH 

10진 

 0

0000

0001 

0010 

0011 


즉, BCH로 표현할수있는 숫자는 총 16가지 (2 X 2 X 2 X 2 = 16) 입니다. 0~15까지. 이는 하나의 BCH 숫자는 1개의 바이너리로 표현되기때문입니다. 또한, 이것은 C언어에서 사용하는 int형(signed)과 동일하겠군요..그럼 활용할수있는 방법이 떠오르시죠?..

그리고 AVR (저는 주로 AVR Studio를 사용합니다 ㅎ) 에서는 RAM주소와 같은것을 표현할 때 주로 사용합니다. 

ex) 0000H ~ FFFFH 따위로 표현.  

그렇지만 실제 코딩에서는 0X00  , 0X01 과 같은 1개의 자리가 16진을 의미하는 16진법형 표현을 가장 많이 사용합니다.

ex) 0x00 = 0000 0000 (2진법) = 0 (10진법) 을 의미합니다.

      0x10 = 0001 0000 (2진법) = 16 (10진법) 을 의미합니다.

      0x23 = 0010 0011 (2진법) = 35 (10진법) 을 의미합니다.


위의 예제를 보시면 이해가 아마 되실거라 생각됩니다. 나중에는 저 숫자들만 봐도 머릿속에서 자동으로 암산이 되실겁니다..^^:

실제적으로 가장많이 사용하는 형태이기때문에 헷갈리시지 않도록 잘 정리하시길 바랍니다.


BCD (binary-coded decimal) ------------------------------------------------------------------

: 2자리의 2진법으로 표현된 10진법입니다.



10진

BCD 

10

0001 0000 

12 

0001 0010 

32 

0011 0010 


+ Recent posts