[MSP430]/MSP4322016. 5. 6. 18:06

MSP432 성능 테스트 - GPIO토글

MSP432 성능 테스트 - GPIO토글



MSP432는 Cortex-M4 코어의 최대 48Mhz로 동작하는 저전력 MCU이다. 단순 비교는 의미 없기는 하지만 간단히 GPIO토글 속도로 성능 테스트를 진행 해 보았다.



MSP432의 CPU성능 테스트를 위해 TI에서 제공하는 기본 MSP432 GPIO 토글 예제를 구동해 보았다.


MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P7, GPIO_PIN6);


GPIO토글 속도는 16khz로 측정 된다.

너무 느리다.

MSP432 클럭 설정을 좀 들여다 볼 필요가 있을것 같다.



MSP432는 10kHz ~ 48Mhz로 구동 가능하고 2개의 외부 클럭과, 5개의 내부 클럭 소스로 구성된다.



MSP432의 클럭 소스

LFXTCLK 외부 클럭 Low-frequency oscillator (LFXT)에서 32768Hz 등을 이용 가능 (32kHz 이하 주파수)

VLOCLK 내부 클럭 : 10KHz 정도의 VLO (Very low power low frequency oscillator) 시계

REFOCLK 내부 클럭 : 32k 또는 128KHz의 REFO (low-power low-frequency oscillator) 시계

DCOCLK 내부 클럭 : DCO (digitally controlled oscillator) 클럭 주파수 선택 가능

MODCLK 내부 클럭 : 24MHz의 low-power oscillator

HFXTCLK 외부 클럭 : 고속 클럭 HFXT (High-frequency oscillator) 1MHz ~ 48MHz 범위

SYSOSC 내부 클럭 : 5MHz






물론 클럭 별로 파워 선택이 필요하고 제약사항도 따른다. 최대한의 저전력 구동을 위해 이런 구조가 된것 같지만 개발자는 신경 써야 할 부분이 많아 져서 부담으로 다가올것 같다.







우선 클럭 속도를 좀더 올리기 위해 코드 수정이 필요한데

system_msp432p401r.c

파일에서 설정 가능하다.


48Mhz로 설정해서 구동해 보자.

//  CPU Frequency

//     <1500000> 1.5 MHz

//     <3000000> 3 MHz

//     <12000000> 12 MHz

//     <24000000> 24 MHz

//     <48000000> 48 MHz


//#define  __SYSTEM_CLOCK    1500000


#define  __SYSTEM_CLOCK    48000000



48Mhz 설정하고 GPIO 토글 속도를 측정해 보면

1Mhz

로 측정된다.


   127                  MAP_GPIO_toggleOutputOnPin(GPIO_PORT_P7, GPIO_PIN6);

   \                     ??main_1: (+1)

   \   00000014   0x2140             MOVS     R1,#+64

   \   00000016   0x2007             MOVS     R0,#+7

   \   00000018   0x.... 0x....      BL       GPIO_toggleOutputOnPin

   \   0000001C   0xE7FA             B.N      ??main_1

   \   0000001E   0xBF00             Nop      

   \                     ??main_0:

   \   00000020   0x02000864         DC32     0x2000864




TI제공 함수를 이용하지 않고 레제스터 직접 제어 해 보았다.

2Mhz

로 측정된다.

다른 회사의 Cortex-M4 코어에 있는 GPIO토글 레지스터가 있으면 좋을것 같은데... 

#define OFS_LIB_PAOUT   ((uint32_t)&P1->OUT - (uint32_t)P1)

#define PORT7           ((uint32_t)P7 + OFS_LIB_PAOUT)  



       98                  HWREG16(PORT7) ^= GPIO_PIN6;


   \                     ??main_1: (+1)

   \   00000016   0x8801             LDRH     R1,[R0, #+0]

   \   00000018   0xF081 0x0140      EOR      R1,R1,#0x40

   \   0000001C   0x8001             STRH     R1,[R0, #+0]

   \   0000001E   0xE7FA             B.N      ??main_1

   \                     ??main_0:

   \   00000020   0x02000864         DC32     0x2000864

   \   00000024   0x40004C62         DC32     0x40004c62



토글 하지 않고 직접 On/Off를 반복해서 측정 해 보니 

12Mhz로 측정이 된다.


와 비교해 보면 비슷한것 같은데... 저전력 기능을 감안하면 성능면에서는 나쁘지 않은것 같다.


Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP4322016. 5. 5. 23:30

MSP432 개발환경 설정하기

MSP432 개발환경 설정하기




TI 제공 테스트 예제는 아래 링크에서 다운 받을 수 있다.

http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPWare/latest/index_FDS.html


MSP432_drv_code.zip



MSP432 는 Cortex-M4 코어 이므로 IAR EWARM에서 컴파일 가능하다. EWARM 7.4이상 버전이 필요하다.



IAR 환경설정

$PROJ_DIR$\

$PROJ_DIR$\..\..\..\..\driverlib\MSP432P4xx\

$TOOLKIT_DIR$\inc\TexasInstruments

$TOOLKIT_DIR$\inc\TexasInstruments\CMSIS

$TOOLKIT_DIR$\CMSIS\Include



ewarm

TARGET_IS_MSP432P4XX

__MSP432P401R__





TI에서도 다양한 툴을 제공한다. 

그중 PinMux 는 핀설정을 좀더 쉽게 할 수 있도록 제공하는 툴로 웹상에서 실행 가능하며 나름편리하게 구성되어 있다.

https://dev.ti.com/

https://dev.ti.com/pinmux/






MSP432 DriverLib 


MSP432 DriverLib available as source

Always the latest, most updated version 

Library available as BSD source = industry standard

Flexibility for users to further customize/enhance


MSP432 DriverLib implemented & tested in ROM

ROM has lower current consumption

No wait-state [ even @ max speed = 48MHz]

Frees up flash space (25kB) for application code

Fully validated & robust ROM code: no future major changes










Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP4322016. 5. 5. 23:00

MSP432 EVM - 저전력 MSP432 MCU 보드 제작

MSP432 EVM 보드 제작


TI사의 새로운 저전력 MCU인 MSP432 EVM 보드를 M-Tupe EVM 형태로 제작 했다.

48Mhz Cortex-M4 코어를 적용하고 기존 저전력 MCU인 MCP430보다 코어 속도 및 FPU가 추가되어  저전력 이면서 성능 향상시킨 모델이다.





MSP432 EVM 회로도









MSP432 EVM 보드는 M-Type EVM 형태의 표준 핀맵으로 제작 해서 기존의 다양한 확장 보드에서 테스트 가능하다.





Ethernet W5500, W5200 테스트 확장보드




MP3, Ehternet 확장 테스트 보드




TFT-LCD 확장 테스트 보드










Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP4322016. 5. 5. 11:54

MSP432 - Cortex-M4 저전력 MCU 출시

MSP432 - Cortex-M4 저전력 MCU 출시


TI에서 MSP430 시리즈를 좀더 업그레이드 해서 MSP432시리즈를 출시 했다.

Cortex-M4 코어의 48Mhz로 동작하는 저전력용 MCU이다. 

MSP430 코어를 업그레이드 했으면 좀더 좋았을것 같은데 Cortex 코어로 넘어가서 다양성 측면에서 보면 아쉬운점이 있다.

(MCU코어 시장이 Cortex가 거의 평정하고 있는 시점에서 다양한 코어가 계속 발전 했으면 하는 엔지니어적인 생각이다.)



어째거나 Cortex-M4 의 FPU까지 포함되어 있고 저전력을 지원한다면 저전력 분야에서 적용될 부분이 많을것 같다.





MSP430 코어와 비교해 보면 아래와 같이 성능 향상이 되어 있다.














Posted by nexp
TAG MSP432

댓글을 달아 주세요