8051 레지스터 자료 입니다.

 

어디서 받았는지 기억이 없습니다.

 

이 자료 만드신분에게 감사 드립니다.

 

 

8051레지스터.pdf

'공부 > 8051' 카테고리의 다른 글

ABOV 8051 On-Chip Debugger  (0) 2014.06.19
ABOV MC9x Code Generator  (0) 2014.06.19
[ADUC831] ADUC831 간단 매뉴얼 6  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 5  (0) 2012.11.12
[ADUC831] ADUC831 간단 매뉴얼 4  (0) 2012.11.12

인터넷 검색중 RS485 의 TX Enable 을 자동으로 해준다는 회로를 찾았다.

 

555 타이머를 이용하는 것인데 나중에 시험을 해봐야 겠다.

 

 

'공부 > 전자회로_부품' 카테고리의 다른 글

추천 반도체 개념  (0) 2012.11.15
Tri Color LED 드라이버 검색 자료  (0) 2012.11.15
전선 규격  (0) 2012.11.14
RTC용 Lithium-Ion 건전지  (0) 2012.11.14
고 전류RELAY  (0) 2012.11.14

LCD 관련 프로그램을 하다보면 다양한 이미지를 코드에 맞추어 변경해 주는 작업을 해야한다.

 

가잡 쉽게 하는 것이 BMP2C 프로그램을 이용해서 C 코드 형태로 변경해서 사용하는 것이다.

 

조금 어렵게 간다면 파일시스템을 만들고 이미지 파서를 넣어서 이미지 분석하면서 뿌리는 방법이 있다.

 

이중 코드 형태로 변경할 경우 사용하기 편리한 프로그램을 링크를 걸어본다.

 

http://laeubi-soft.de/downloads/tools/grafikkonverter-tool-fuer-mikrocontroller.html

 

이미지를 원하는 방법으로 변경한후에 bit열을 LSB나 MSB 형태로 변경 가능하고 오른쪽에서부터

 

만들지 왼쪽부터 만들지 원하는데로 하기 좋다.

 

 

[MSP430] 회로도

 

 

SCHEMATIC1_PAGE(20040108).pdf

 

SCHEMATIC1_PAGE(20040116).pdf

'공부 > MSP430' 카테고리의 다른 글

[MSP430] MSP430 자료 9  (0) 2012.11.15
[MSP430] MSP430 자료 8  (0) 2012.11.15
[MSP430] MSP430 자료 7  (0) 2012.11.15
[MSP430] MSP430 자료 6  (0) 2012.11.15
[MSP430] MSP430 자료 5  (0) 2012.11.15

 

10. Watchdog Timer

 

10.1    기본사항

 

MSP430은 Watchdog timer 의 주 기능은 프로그램을 잘못 짜 문제가 있을 때 재 기동을 하기 위해 존재 합니다. Watchdog Timer에 설정되었던 시간이 끝나면 시스템이 재기동 되어 집니다.

기능은 8개의 시간 설정가능, Watchdog mode, Interval 타이머 모드, WDT 보호를 위해 암호존재, RST/NMI pin 제어, Clock source 설정, 전원보호를 위해 정지 가능, PUC후에 WDT모듈은 DCOCLK를 사용해 최초 32ms대기를 합니다. 그러므로 32ms 이전에 WDT상태를 다시 설정 해야 합니다.

 

 

그림 10 - 1

 

10.2    Watchdog Timer의 동작

 

WDTCTL레지스터는 Watchdog 타이머의 대기시간을 설정 할 수 있습니다. 더불어 RST/NMI pin을 설정하기 위한 bit를 포함하고 있다. WDTCTL 은 16bit로 상위 8bit는 password 입니다. 그래서 접근하기 위해서는 0x5A를 사용합니다. 읽힌값은 상위 byte는 0x69로 읽혀집니다.

 

WDTCNT는 16bit UP counter 입니다. WDTCTL의 값에 따라 카운터 됩니다. WDTCNT는 ACLK 또는 SMCLK를 기준 클럭으로 사용하여 동작합니다. 기준클럭은 WDTSEL bit로 선택 되어 집니다.

 

PUC후 WDT모듈은 DCOCLK를 사용해 최초 32ms를 대기 하고 있습니다. 32ms 완료전에 WDT를 제거 하거나 다시 WDT 을 Reset 해야 합니다. 안그러면 PUC가 발생 합니다. 또한 부정확한 암호에 의해 WDTCTL을 사용하면 PUC가 발생하고 WDT 는 Reset 되고 RST/NMI pin능 Reset 모드로 변경됩니다.

 

10.3    Interval Timer의 동작

 

WDTTMSEL bit를 1로 설정하면 Interval Timer 모드를 설정 됩니다. 이 모드는 주기를 제공 하기위해 사용 될수 있습니다. 이 모드에서 시간 간격이 만료되면 WDTIFG가 설정되며 이때 PUC는 발생이 안됩니다. 예상외에 PUC 발생을 피하기 위해 WDT의 인터벌 시간의 변경은 WDTCNCTL =1 로 한 후 해야 합니다. WDT 의 Clock source를 변경하기 전에는 WDT를 정지한 후 해야 한다.

 

10.4    Watchdog Timer의 인터럽트 동작

 

Watchdog timer를 인터럽트로 사용하기 위해 IFG1.0 (WDTIFG) 와 IE1.0 (WDTIE)를 사용됩니다. WDT가 Watchdog mode 일때 WDTIFG flag는 Reset Vector 인터럽트 발생을 나타냅니다. WDTIFG는 Reset Vector 인터럽트 서비스 루틴에 의해 사용되어 집니다.

 

10.5    Watchdog Timer의 저출력 모드에서의 동작

 

MSP430은 몇 개의 저출력 모드가 있는 것을 알고 있을것입니다. 저출력모드에서는 Watchdog Timer 의 사용을 주의 해야 합니다. 예를 들어 WDT가 워치도그 모드일 때 SMCLK는 WDT의 소스로 사용되어지면 안됩니다. 만일 LPM3 모드가 되면 SMCLK는 정지합니다. 그래서 WDT도 작동하지 않습니다. 이럴때는 WDTHOLD를 이용해 WDT를 사용안할수 있습니다. 사용안하면 그만큼의 소비전력도 줄일수 있습니다.

 

WDTCTL (Watchdog Timer Register)

BIT 

15 

14 

13 

12 

11 

10 

9 

8 

명칭

읽을 때 무조건 0x69 이 읽힘

쓸 때 0x5A를 사용

초기값

읽고쓰기

 

BIT 

7 

6 

5 

4 

3 

2 

1 

0 

명칭

WDTHOLD 

WDTNMIES 

WDTNMI 

WDTTMSEL 

WDTCNTCL 

WDTSSEL 

WDTISx 

초기값

0 

0 

0 

0 

0 

0 

0 

0 

읽고쓰기

R/W 

R/W 

R/W 

R/W 

R 

R/W 

R/W 

 

WDTHOLD: Watchdog timer 의 정지 또는 동작을 설정합니다.

    ( 0: 동작 , 1: 정지)

WDTNMIES: Watchdog Timer NMI의 edge 선택

이 bit의 변경시 NMI 발생이 가능 변경전에 WDTNMI = 0 으로 설정 해야 한다.

     (0: 상승에지( rising edge) 1:하강 에지( falling edge))

WDTNMI: Watchdog 타이머의 NMI 선택 RST/NMI pin 기능 선택 가능

    (0: Reset 기능 , 1: NMI 기능 )

WDTTMSEL: Watchdog 타이머 모드 변경

    ( 0: Watchdog 모드 , 1:인터벌 타이버 모드)

WDTCNTCL: Watchdog 타이머 Reset, Watchdog 타이머 를 자동 0으로 만들어 준다.

    ( 0: 동작 없음 , 1: 클리어 클리어후 자동으로 0으로 변경된다.)

WDTSSEL: Watchdog timer 클럭 소스 설정

    (0 : SMCLK , 1:ACLK)

WDTISx: Watchdog timer 대기시간 설정

 

WDTISx 

동작

0 

0 

Watchdog timer 클럭 소스/32768

0 

1 

Watchdog timer 클럭 소스/8192

1 

0 

Watchdog timer 클럭 소스/512

1 

1 

Watchdog timer 클럭 소스/64

 

IE1 (Interrupt Enable Register 1)

BIT 

7 

6 

5 

4 

3 

2 

1 

0 

명칭

             

WDTIE 

초기값

             

0 

읽고쓰기

             

R/W 

 

WDTIE: Watchdog 타이머 인터럽트 enable

    이 bit는 인터벌 모드에서 WDTIFG 에 의해 인터럽트 발생이 가능 하게 합니다.

이 bit는 WDT mode에서는 설정할 필요가 없습니다.

     ( 0: 인터럽트 발생 불가 , 1: 인터럽트 발생 가능)

 

IFG1 (Interrupt Flag Register 1)

BIT 

7 

6 

5 

4 

3 

2 

1 

0 

명칭

             

WDTIFG 

초기값

             

0 

읽고쓰기

             

R/W 

 

WDTIFG: Watchdog 타이머 인터럽트 발생 플레그

WDTIFG는 프로그램에 의해 제거될때까지 설정되어 있습니다. 인터벌 모드에서 WDTIFG는 인터럽트 서비스 루틴에서 자동으로 Reset 될수도 있도 프로그램에 의해 리셋 될수도 있습니다.

    

     ( 0: 동작없음 , 1: 인터럽트 발생 인터럽트 서비스루틴 기다림)

 

 

'공부 > MSP430' 카테고리의 다른 글

[MSP430] 회로도  (0) 2012.11.15
[MSP430] MSP430 자료 8  (0) 2012.11.15
[MSP430] MSP430 자료 7  (0) 2012.11.15
[MSP430] MSP430 자료 6  (0) 2012.11.15
[MSP430] MSP430 자료 5  (0) 2012.11.15

 

9. Digital I/O

 

9.1    기본사항

 

MSP430은 P1 – P6 까지 6 PORT의 Digital I/O를 가지고 있습니다. 각각의 PORT는 8개의 PIN이 존재 합니다.

모든 I/O는 입력 또는 출력을 각각 선택가능하고, 각 입출력라인은 개별적으로 입출력용으로 사용 할 수 있습니다. 또한 P1,P2는 개별적으로 외부 인터럽트 기능이 있으며 인터럽트는 상승 또는 하강 에지( rising edge or falling edge)만 검사 할 수 있습니다.

 

9.2    Digital I/O의 사용

 

I/O는 사용자가 초기에 S/W 적으로 설정 해야 합니다. PnIN레지스터는 I/O의 입력되고 있는 상태를 나타 냅니다. PnOUT 레지스터는 출력 값을 설정할 수 있습니다. PnDIR은 각각의 Pin의 입출력을 설정할 수 있습니다. Bit의 값이 0이면 입력이 되고,1 이면 출력이 설정 됩니다. PnSEL은 각각의 PIN에 명기된 기능으로 연결 되도록 설정 할 수 있습니다. Bit가 0 이면 I/O기능으로 설정하는 것이고 1이면 Pin에 명기된 기능으로 연결되어 집니다. 주의 할 것은 연결되어진 특수기능이 출력이 되어야 한다면 해당 PnDIR을 출력으로 설정해야 한다. P1SEL와 P2SEL가 설정되면 해당 Pin의 인터럽트는 사용이 금지 됩니다. 즉 P1IE나 P2IE와 관계없이 인터럽트가 발생되지 않을 수 있습니다.

Pin이 명기된 기능의 입력으로 선택되어지면 PIN의 값은 LATCH로 입력됩니다. 이때 PnSELx = 1 이라면 입력신호는 Pin의 실제 신호를 따라갑니다. 그러나 PnSELx = 0 이라면 현재의 신호를 그대로 유지합니다.

 

9.3    P1,P2의 인터럽트 사용

 

P1,P2 PORT 는 PnIFG, PnIE, PnIES 레지스터로 인터럽트 기능을 설정할 수 있습니다.

P1의 모든 인터럽트 소스는 한 개의 인터럽트 백터에서 처리 되며, P2또한 한 개의 인터럽트 백터에서 처리 됩니다. 각각의 Pin에 인터럽트 상태가 발생되면 해당 PnIFG 의 bit가 설정됩니다. PnIFG bit 가 설정되었을 때 해당 PnIE bit가 설정되어 있고 GIE bit가 설정되어 있다면 인터럽트는 발생됩니다. PnIFG bit를 S/W 적으로 설정 할 수 도 있습니다. PnIFG 인터럽트 발생 후 해당 루틴 실행 중에 인터럽트가 다시 걸린다면 다시 인터럽트 처리를 한다. 그러나 인터럽트가 발생하려면 MCLK의 1.5배 이상의 인터럽트가 발생할 상태가 유지 되어야 합니다. PnIES bit는 인터럽트 발생을 위한 상승 또는 하강 에지( rising edge or falling edge)를 선택 할 수 있습니다. 0면 상승에지 를 선택 하며, 1이면 하강 에지를 선택 하는 것입니다.

인터럽트가 발생되려면 PnIE의 해당 bit를 1로 설정해야 한다. 쓰지않는 Pin은 소비전력을 줄이기 위해 출력으로 설정하고 다른 곳에 연결하지 않도록 합니다.

'공부 > MSP430' 카테고리의 다른 글

[MSP430] 회로도  (0) 2012.11.15
[MSP430] MSP430 자료 9  (0) 2012.11.15
[MSP430] MSP430 자료 7  (0) 2012.11.15
[MSP430] MSP430 자료 6  (0) 2012.11.15
[MSP430] MSP430 자료 5  (0) 2012.11.15

 

8. Hardware Multiplier

 

8.1    기본사항

 

하드웨어 곱셈기는 MSP430의 CPU와는 별도로 동작합니다. 계산은 부호 있는 곱셈, 부호 없는 곱셈, 부호 있는 곱셈 accumulate , 부호 있는 곱셈 accumulate를 이용합니다. 연산 단위는 16*16bit ,16*8bit , 8*16bit , 8*8 bit가 수행 될 수 있습니다.

 

그림 8 - 1

8.2    Hardware Multiplier 사용

 

하드웨어 곱셈기를 사용하기 위해 2개의 16bit 연산 레지스터(operand register) 가 존재하며 그것은 OP1, OP2 이다. 3개의 연산결과를 출력하는 레지스터 RESLO,RESHI,SUMEXT 가 있다. RESLO는 결과 word의 low값, RESHI는 결과 word의 high 값, SUMEXT는 확장된 결과값을 나타낸다. 결과는 OP2에 쓰고 난후 다음 명령에서 읽어 질수 있다. 그러나 간접 어드레스 지정 모드에서는 제외된다.

OP1은 MPY,MPYS,MAC,MACS 의 어드레스를 나타낸다. 각각의 어드레스는 그림8-2와 같다.

그림 8 - 2

OP1에 어드레스를 선택하는 것은 명령형식을 선택 하지만 명령을 처리 하지는 않습니다. OP2에 값을 넣는 것으로 연산을 시작합니다. 결과는 RESLO,RESHI,SUMEXT에 저장 됩니다. OP1의 값이 계속 연산에 사용된다면 다시 OP1에 값을 넣을 필요는 없습니다.

RESHI 값은 그림 8-3과 같이 넣어 질 수 있다.

그림 8 - 3

SUMEXT는 그림 8-4와 같이 나타난다.

그림 8 - 4

 

곱셈기는 MACS 모드에서는 underflow 또는 overflow 를 검사하지 않습니다.

정수의 범위는 0 – 0x7FFFFFFF 까지 이며 0x80000000 - 0xFFFFFFFF 까지 입니다. SUMEXT는 오버 플로우 일 때 0xFFFF를 표시합니다. 곱셈기 사용 중 에는 인터럽트를 사용하지 마십시오

 

; 16x16 Unsigned Multiply

MOV #01234h,&MPY ; Load first operand

MOV #05678h,&OP2 ; Load second operand

; ... ; Process results

 

; 8x8 Unsigned Multiply. Absolute addressing.

MOV.B #012h,&0130h ; Load first operand

MOV.B #034h,&0138h ; Load 2nd operand

; ... ; Process results

 

; 16x16 Signed Multiply

MOV #01234h,&MPYS ; Load first operand

MOV #05678h,&OP2 ; Load 2nd operand

; ... ; Process results

 

; 8x8 Signed Multiply. Absolute addressing.

MOV.B #012h,&0132h ; Load first operand

SXT &MPYS ; Sign extend first operand

MOV.B #034h,&0138h ; Load 2nd operand

SXT &OP2 ; Sign extend 2nd operand

; (triggers 2nd multiplication)

 

; ... ; Process results

; 16x16 Unsigned Multiply Accumulate

MOV #01234h,&MAC ; Load first operand

MOV #05678h,&OP2 ; Load 2nd operand

; ... ; Process results

 

; 8x8 Unsigned Multiply Accumulate. Absolute addressing

MOV.B #012h,&0134h ; Load first operand

MOV.B #034h,&0138h ; Load 2nd operand

; ... ; Process results

 

; 16x16 Signed Multiply Accumulate

MOV #01234h,&MACS ; Load first operand

MOV #05678h,&OP2 ; Load 2nd operand

; ... ; Process results

 

 

; 8x8 Signed Multiply Accumulate. Absolute addressing

MOV.B #012h,&0136h ; Load first operand

SXT &MACS ; Sign extend first operand

MOV.B #034h,R5 ; Temp. location for 2nd operand

SXT R5 ; Sign extend 2nd operand

MOV R5,&OP2 ; Load 2nd operand

; ... ; Process results

 

 

; Access multiplier results with indirect addressing

MOV #RESLO,R5 ; RESLO address in R5 for indirect

MOV &OPER1,&MPY ; Load 1st operand

MOV &OPER2,&OP2 ; Load 2nd operand

NOP ; Need one cycle

MOV @R5+,&xxx ; Move RESLO

MOV @R5,&xxx ; Move RESHI

 

 

; Disable interrupts before using the hardware multiplier

DINT ; Disable interrupts

NOP ; Required for DINT

MOV #xxh,&MPY ; Load 1st operand

MOV #xxh,&OP2 ; Load 2nd operand

EINT ; Interrupts may be enable before

; Process results

 

 

'공부 > MSP430' 카테고리의 다른 글

[MSP430] MSP430 자료 9  (0) 2012.11.15
[MSP430] MSP430 자료 8  (0) 2012.11.15
[MSP430] MSP430 자료 6  (0) 2012.11.15
[MSP430] MSP430 자료 5  (0) 2012.11.15
[MSP430] MSP430 자료 4  (0) 2012.11.15

 

7. Supply Voltage Supervisor

 

7.1    기본사항

 

Supply voltage supervisor(SVS)는 AVCC 또는 외부 전압을 감시하기 위해 사용되어 입니다. SVS는 AVCC 또는 외부전압이 사용자에 의해 선택되어진 전압이하로 떨어질 경우 플레그를 Set하거나 POR Reset을 수행 할수 있습니다.

SVS의 기능을 살펴 보면 AVCC 모니터링, 선택가능 한 POR 발생, S/W적으로 처리 가능한 SVS 출력, S/W적으로 설정가능 한 14개의 전압 Level을 들 수 있습니다. 주의 해야 할 것은 MSP430x41x는 특이하게 설정된 한 개의 전압레벨 검출만 수행 가능하다는 것입니다. 또한 VLDx =0 이면 SVS 는 정지 되고 아닐 경우 1.9V 전압레벨로 고정됩니다.

 

그림 7 - 1

 

7.2    SVS 의 동작

 

SVS는 AVCC전압이 선택된 레벨 아래로 떨어지는 것만 측정합니다. 저 전압 조건에 따라 POR Reset이 작동되거나, 저 전압 상태 flag를 생성 시킬 수 있습니다. SVS는 전류 소비를 줄이기 위해 POR Reset 작동 후 사용이 중지 됩니다. 재사용을 위해서는 다시 설정 해야 합니다.

VLDx bit를 이용해서 14개의 전압 비교 레벨을 선택가능하고 bit가 0 이면 SVS는 정지 됩니다. SVSON bit를 이용해 SVS를 정지하거나 실행 시킬 수 있습니다.

저전압 조건이 발생하면 SVSFG bit가 선택되어 집니다. PORON이 선택되어져 있으면 SVSFG가 설정되면 POR을 생성합니다. SVSFG는 소프트웨어적으로 Reset 되어야 다음 상태를 확인 할 수 있습니다.

 

 

그림 7 - 2

 

SVSCTL (SVS Control Register)

 

BIT 

7 

6 

5 

4 

3 

2 

1 

0 

명칭

VLDx 

PORON 

SVSON 

SVSOP 

SVSFG

초기값

0 

0 

0 

0 

0 

0 

0 

0 

읽고쓰기

R/W 

R/W 

R/W 

R/W 

R/W 

R 

R 

R/W 

 

VLDx : voltage level 을 선택한다.

    0000    : SVS off    0001    : 1.9V        0010    : 2.1V        0011    : 2.2V        0100    : 2.3V        0101    : 2.4V       

    0110    : 2.5V        0111    : 2.65V        1000    : 2.8V        1001    : 2.9V        1010    : 3.05V        1011    : 3.2V

    1100    : 3.35V        1101    : 3.5V        1110    : 3.7V        

    1111    : SVSin에 들어오는 전압을 1.2V와 비교

 

PORON    : POR reset On/Off

    ( 0: SVSFG가 설정되어도 POR 발생안함 , 1:SVSFG가 설정되면 POR reset 발생)

SVSON : SVS On/Off

    ( 0: SVS 사용 안함 , 1: SVS 사용 함)

SVSOP: SVS 비교 출력

    ( 0 : SVS 출력핀을 high , 1: SVS 출력핀은 low)

SVSFG : SVS flag

    (0 : low전압으로 안 떨어짐 , 1: low 전압으로 떨어짐)

 

 

'공부 > MSP430' 카테고리의 다른 글

[MSP430] MSP430 자료 8  (0) 2012.11.15
[MSP430] MSP430 자료 7  (0) 2012.11.15
[MSP430] MSP430 자료 5  (0) 2012.11.15
[MSP430] MSP430 자료 4  (0) 2012.11.15
[MSP430] MSP430 자료 3  (0) 2012.11.15

+ Recent posts