MSP430 개발에 대해 글을 쓰기로 하였다. 목차는 아래와 같다. 목차 순서대로 글을 연재할 예정이다. 개발을 위한 준비물은 아래 세 가지다. TI사에서 제공하는 MSP430 런치패드인 MSP-EXP430G2ET 개발 보드를 이용한다.
Basic Clock Module+는 MSP430x2xx MCU에서 여러 가지 주파수의 클럭을 생성해내기 위해 지원하는 클럭 모듈이다. 아래의 4개의 클럭 소스를 이용하여 총 3가지의 클럭 신호를 생성해낼 수 있다.
Watchdog Timer+는 일종의 타이머 모듈로서, MCU의 동작을 모니터링하여 오동작 감지 시 시스템을 리셋시켜주는 역할을 한다. 오동작을 감지하자 짖어서 상황을 알리는 귀여운 개를 표현해보았다. 오동작에는 아래와 같은 것들이 있다.
GPIO란 General Purpose Input Output 약자로, 사용자가 SW를 통해 직접 용도와 동작을 정의할 수 있는 디지털 신호 핀을 의미한다. MSP430에서는 GPIO를 GPIO 포트와 GPIO 핀으로 구분한다.
Interrupt란 프로그램 실행 중 외부 입출력 처리나 예외 상황 처리가 필요한 경우 MCU에 이를 알리기 위한 신호를 말한다. 외부 입출력이나 예외 상황에 대해 CPU가 능동적으로 모니터링할 경우 자원 낭비가 크다.
MCU에서 말하는 타이머에는 두 가지 기능이 있다. 타이머 기능은 사용자가 설정한 시간이 경과되면 이를 MCU로 알려주는 기능이다. 한 번만 알려주도록 할 수도 있으며, 반복적으로 알려주도록 할 수도 있다.
USCI란 Universal Serial Communication Interface의 줄임말로, 모드 설정에 따라 여러 가지 통신 모드로 전환하여 사용할 수 있는 시리얼 통신 모듈이다.
ADC란 Analog-to-Digital Converter의 줄임말로, 아날로그 형태의 신호를 받아들여 디지털 프로세서 내에서 처리할 수 있는 디지털 신호로 변환해주는 기능을 말한다. MSP430x2xx 모델에서는 ADC10이란 모듈을 통해 ADC 기능을 지원한다.
SPI(Serial Peripheral Interface)란 UART와 마찬가지로 시리얼 통신 프로토콜 중 하나이며, 칩 간에 데이터를 주고 받기 위한 동기식 통신 프로토콜이다. MSP430x2xx 모델에서는 USCI 모듈의 SPI 모드를 이용하여 사용할 수 있다.
I2C는 Inter Integrated Circuit(IIC)의 약자이며, UART, SPI와 마찬가지로 칩 간에 데이터를 주고 받기 위한 시리얼 통신 프로토콜이다. MSP430x2xx 모델에서는 USCI 모듈의 I2C 모드를 이용하여 I2C 통신을 할 수 있다.
MSP430에서의 Comparator란 Vin+와 Vin-라는 두 입력핀에 들어온 아날로그 전압의 크기를 비교하여 결과값을 제공하는 모듈을 말한다. Vin+에 들어온 전압값이 Vin-보다 크다면 HIGH를, 작다면 LOW를 출력한다.
MSP430G2553의 Memory Architecture는 아래와 같다. 0x0부터 0x1FFFF까지 총 128KB 영역에 대해 용도가 정의되어 있으며, 워드 또는 바이트 단위로 접근할 수 있다.
회사에서 MSP430 MCU를 이용하여 제품 개발을 하고 있었다. 하지만 MCU 코드를 맨땅에서부터 새로 짜는 경우는 드물었다. 보통 칩 업체에서 출장을 오거나, 선임자가 담당했었다. 본 시리즈를 연재하면서 MCU 드라이버 코드를 짜는 법을 다시금 익히게 된 것 같다. 중간중간 쓰다가 멈춰서 미흡한 부분도 많다. 여유있을 때마다 채워나가려고 한다. 모...