[MSP430] MSP430 Architecture

pikamon·2020년 12월 26일
0

MSP430

목록 보기
12/13

본 글은 MSP430G2553 MCU를 기준으로 작성되었습니다.
세부적인 내용은 제품군마다 조금씩 다를 수 있습니다.


어쩌면 가장 먼저 작성했어야 했던 글일지도 모르겠다.

1. Overall Architecture

MSP430G2553 MCU의 구성은 아래와 같다.

  • 1.8-V to 3.6-V operation
  • 16-Bit RISC architecture up to 16-MHz system clock
  • 16KB of flash memory and 512 bytes of SRAM
  • 8-channel 10-bit ADC
  • 8-channel comparator
  • Two 16-Bit Timers with three capture/compare registers Timer_A)
  • 24 GPIOs
  • One universal serial communication interfaces (USCI_A) supports UART, IrDA, and SPI
  • One USCI (USCI_B) supports SPI and I2C

MSP430의 가장 대표적인 특징은 16비트 프로세서라는 점이다.
(int형과 short의 처리 시간에 차이가 있음을 직접 확인한 적이 있다.)

정격전압 3.3V에서 16MHz로 동작한다. 클럭 속도는 변경 가능하다.
G2553에서는 Flash Memory와 SRAM의 크기를 각각 16KB, 512B짜리를 사용한다고 한다.

이하 Peripheral 명세는 필요 시 데이터시트에서 직접 확인할 수 있다.

< 추가 설명 >
The MSP430 incorporates a CPU, peripherals, and a flexible clock system that interconnect using a von-Neumann common memory address bus (MAB) and memory data bus (MDB) (see Figure 1-1). Partnering a modern CPU with modular memory-mapped analog and digital peripherals, the MSP430 offers solutions for demanding mixed-signal applications.

읽어보면 전형적인 MCU에 대한 설명임을 알 수 있다. 간혹 ARM의 Cortex-A 시리즈처럼 고성능의 SoC에서 CPU 코어가 여러 개인 경우도 있지만, 대부분의 MCU는 싱글 코어 CPU를 사용한다.

필요 시 참고.

2. CPU Architecture

필요 시 참고.

3. Memory Architecture

MSP430G2553의 Memory Architecture는 아래와 같다. 0x0부터 0x1FFFF까지 총 128KB 영역에 대해 용도가 정의되어 있으며, 워드 또는 바이트 단위로 접근할 수 있다.

Special Function Register 영역은 예를 들면 IE 레지스터나 IFG 레지스터처럼 MCU의 각종 상태를 제어하기 위해 사용했던 레지스터들이 memory-mapped 되어있는 영역이다. 16바이트 할당되어 있으며, 바이트 단위로만 접근 가능하다.

Peripheral Modules 영역은 우리가 GPIO, USCI, Timer 등 MCU의 기능들을 사용하기 위해 이용했던 각종 레지스터들이 memory-mapped 되어있는 영역이다. 8비트 영역은 총 224바이트이며 바이트 단위로만 접근하며, 16비트 영역은 총 256바이트이며 워드 단위로만 접근한다.

0x200부터는 RAM 영역이며, MCU에서 사용하는 RAM의 크기에 따라 영역의 크기가 결정되는 듯하다(적어도 Non-RTOS 환경이라면). MSP430G2553은 512바이트의 SRAM을 사용하기 때문에 0x200~0x3FF까지의 영역을 사용할 것으로 보인다. 테스트해보진 않았다.

Flash Memory 접근용 주소가 0x10000부터 0x1FFFF까지 64KB의 영역이 할당되어 있다. 하지만 MSP430G2553은 16KB 짜리 Flash Memory를 사용하기 때문에 실제론 0x10000~13FFF의 영역만 사용된다.

profile
개발자입니당 *^^* 깃허브 https://github.com/pikamonvvs

0개의 댓글