2 MSP430x4xx 의 구조

  1. 구조

그림 1

 

MSP430은 16bit RISC구조의 CPU, 주변장치(peripherals), 사용자에 의해 조절이 가능한 클럭을 가지고 있습니다. 어드레스 버스와 메모리버스가 하나로 통합되어 있으며, 메모리 MAP 내에 아날로그와 디지털 주변장치가 포함되어 있어 많은 신호가 포함된 장비에 효과적으로 사용 될 수 있습니다.

 

MSP430은 Ultralow-power 시스템이라고 자랑할 만큼 전력 소모량이 적으며 그 때문에 battery 시스템에도 효과적입니다. (예를 들어 RAM에 Data를 보유만 할 경우 0.1uA , Real-time 동작시 0.8uA, 일반 동작 중에는 250uA의 전류를 소모한다고 되어 있습니다.)

 

정밀한 아날로그 회로가 포함 되어 있으며 살펴보면 ADC,DAC,비교기,전압 감시기 등 입니다.

ADC의 경우 12bit 또는 10bit의 ADC로 200ksps속도와 온도센서 레퍼런스가 포함되어 있습니다.

DAC의 경우에도 12bit 두개로 구성되어 있습니다. (모델별 세부사항은 틀릴 수도 있습니다.)

 

MSP430은 16bit RISC 구조로 16bit명령어를 사용하여 명령처리를 위한 병목현상이 제거 되었으며, 작은 core 구조설계로 소비전력이 줄어들었으며, 고급 프로그래밍(C 언어등을 사용한)위해 명령이 체적화 되었습니다. 예를들어 ASM명령어는 27개만 존재하나 7개의 어드레스 모드가 존재해 사용상의 불편이 없습니다. 그와 더불어 다양한 인터럽트 백터를 가지고 있어 활용이 용이 하도록 하였습니다. MSP430은 In-system programmable 한 Flash를 가지고 있어 사용 중 코드변경이 용이합니다.

 

 

  1. 클럭시스템

 

클럭시스템은 전지를 사용한 어프리케이션에 사용될 수 있을 정도로 저전력으로 디자인 되어 있습니다. 저전력모드에 가장 큰 특징은 클럭시스템 이 동작모드에 따라 변경된다는 점입니다. 예를 들어 ACLK는 32Khz부터 동작이 가능합니다. ACLK는 Real-time 클럭이나 Wake-up 함수 동작용으로 사용되면 좋도록 되어있습니다. 그러나 고속으로 사용시에는 DCO를 이용하여 CPU에서 사용되는 고속의 기준 클럭(MCLK)을 만들어 낼 수 있습니다. 고속 클럭 전환 후 대략 6us 이내에 클럭 이 안정화가 됩니다. 일반적으로 낮은 주파수의 보조 클럭은 저전력을 위한 대기모드에서 사용되며 고속 처리로 전환 시 DCO에서 고속 기준 클럭을 발생해 사용하게 됩니다.

 

 

  1. Emulation

 

MSP430은 내부에 Emulation 을 할수 있도록 Jtag/debug 블록을 가지고 있습니다. 이는 Jtag장비를 이용해 MSP430의 동작을 확인할 수 있으며 장비 개발 시 아주 유용하게 사용될 수 있습니다. 예를 들어 최고 속도로 MSP430이 동작하는 중에도 break point나 single step디버깅이 가능합니다. 물론 내부 레지스터나 메모리의 값도 확인 및 수정이 가능합니다. (자세한 사항은 WIZ MSP430 JTAG 매뉴얼을 참고하여 주세요. )

 

 

  1. 메모리

 

MSP430은 von-Neumann 구조를 바탕으로 한 어드레스 공간내에 SFR, 주변장치(peripherals), RAM, FLASH/ROM 등이 존재합니다. (비슷한 어드레스 구조를 가지고 있는 것으로는 68HC11이 있으며 AVR이나 8051등과는 다른 어드레스 구조를 지닙니다.)

그림 2는 메모리 MAP에서 위에 설명을 보기 편하도록 되어 있습니다. 단 주의할 사항으로는 code는 even address 에서만 읽는 것이 가능하며, data는 byte 또는 word (2byte) 또는 두 가지 모드를 전부 지원하기도 합니다. 그러므로 쓰고자 하는 어드레스에서 어떤 식으로 읽고 써야 하는지를 판단해서 사용해야 합니다. 그리고 메모리의 모든 공간은 64kbyte로 한정되어 있습니다.

 

그림 2

 

FLASH/ROM은 사용되는 디바이스에 따라 차지하는 어드레스 양이 달라집니다. 그러나 모든 FLASH/ROM의 끝은 0xFFFF 입니다. FLASH 는 code 또는 data 용으로 모두 사용될 수 있습니다.

여러 word 또는 byte단위의 자료를 RAM에 저장한 후 복사하여 FLASH/ROM에 저장할 필요 없이 바로 저장 할 수 있습니다. 인터럽트 벡터가 FLASH/ROM의 0xFFE0부터 16word를 사용하므로 이 부분사용은 주의해야 하며, 우선순위가 가장 높은 인터럽트 벡터는 0xFFFE 번지에 들어갑니다.

 

RAM 은 0x0200번지부터 시작됩니다. 사용되는 디바이스에 따라 어드레스 공간이 달라지며, RAM 또한 code 또는 data로 사용될 수 있습니다. 메모리 공간은 사용자의 필요에 따라 임의대로 사용 할 수 있어 그만큼 편리합니다.

 

  1. 주변장치(peripherals),SFR

 

주변장치(peripherals)는 0x0100에서 0x01FF 사이에 16bit구조로 되어 있습니다. 이 공간은 word 단위의 명령으로만 읽는 것이 가능하며 만약 byte단위로 읽으면 even 어드레스에서 만 값이 읽어지며 그 외 어드레스에서는 0이 출력됩니다. 그 외에 8bit 방식의 주변장치는 0x0010에서 0x00FF 까지 존재합니다. 이곳은 byte 단위의 명령만 사용될 수 있으며 word 단위 명령 사용하여 읽기를 하면 낮은 byte의 값만 정확하며 높은 byte의 값은 예상치 않은 값이 나올 수 있으므로 주의해야 합니다. 이곳에서 Word 단위의 쓰기명령은 낮은 byte만 써지고 높은 byte는 무시됩니다.

SFR(special function Registers)는 0x0000에서 0x000F까지 사용되며 몇 가지 주변장치를 설정할 때 사용됩니다. Byte 명령에 의해 조작이 가능합니다. SFR(special function Registers)와 주변장치(peripherals)의 자세한 사항은 해당 매뉴얼을 참조해야 합니다.

 

  1. 메모리의 사용

 

메모리에 data를 저장할 때 주의해야 할 점이 있는데, 그림3과 같이 byte는 순서대로 위치됩니다. 그러나 word는 high byte는 high address에 low byte 는 low address 에 위치됩니다. 특히 어셈을 이용한 프로그램을 할 경 우 주변장치(peripherals)등을 참조 시 주의해야 합니다.

그림 3

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

[MSP430] MSP430 자료 6  (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
[MSP430] MSP430 자료 2  (0) 2012.11.15

+ Recent posts