본문 바로가기

MSP430_STUDY

(26)
[MSP430] 풀업저항 설정 - 스위치 입력처리 [MSP430] 풀업저항 설정 - 스위치 입력처리 MSP430의 내부 풀업 저항 설정은 REN레지스터를 셋팅해 주면 된다. 내부 풀업을 사용할경우 저항이 고정되어 있어서 1.6uA정도가 소모된다.(MSP430자체는 nA단위로 소모한다.) 만약 저전류로 동작하기를 원한다면 외부에 더 큰저항으로 풀업 하는것이 좋다. #define SW_BIT (BIT0|BIT1|BIT2|BIT3) #define SW_PORT P1IN #define SwInit() Sbi(P1REN, SW_BIT);Cbi(P1DIR, SW_BIT); #define GetSw() ((~SW_PORT)&SW_BIT) main() { SwInit(); while(1) { sw_new = GetSw(); if(sw_new != sw_old) { }..
[MSP430F2274 EVM] SPI테스트 - 가속도 센서 테스트 [MSP430F2274 EVM] SPI테스트 - 가속도 센서 테스트 MSP430F2274 SPI 블록도 [MSP430F2274 EVM] 보드에서 SPI는 P3.0~P3.3에 할당되어 있는 UCB0-SPI를 사용하고 있다. spi.c 드라이이버 함수의 초기화 및 송수신 함수만 수정하면 기존 코드 그대로 사용할 수 있다. #define SPI0_WRITE_BYTE(x) UCB0TXBUF = (x); #define SPI0_READ_BYTE() UCB0RXBUF #define SPI0_WAIT_FOR_EN() while (!(IFG2&UCB0TXIFG)); #define SPI0_WAIT_FOR_SEND() while (UCB0STAT & UCBUSY); #define SPI0_WAIT_FOR_RX() whi..
MSP430F2274 UART 테스트 MSP430F2274 UART 테스트 MSP430F2x의 레지스터명이 많이 바꼈다. 그대로 동작을 하지 않아 새로 작성하면서 정리해 보았다. TI에서 제공하는 예제는 인터럽트 방식 밖에 없어서 폴링방식을 추가 해보았다. 데이터 전송 PutByte() 함수는 데이터 보내기전 UCAxSTAT레지스터의 BUSY비트를 체크하면 된다. UCBUSY Bit 0 USCI busy. This bit indicates if a transmit or receive operation is in progress. 0 USCI inactive 1 USCI transmitting or receiving 데이터 수신 GetByte()함수는 데이터를 받았는지 확인하기 위해 UC1IFG 레지스터의 UCA0RXIFG 를 확인하면 된다...
MSP430 I2C 테스트 - USCI(H/W SM) vs USI (MSP430F2013 S/W SM I2C) Universal Serial Interface MSP430F2013은 USI모듈로 SPI, I2C인터페이스를 제공한다. I2C는 USCI를 지원하는 상위 MSP430과 같은 풀 하드웨어로 동작하는것은 아니고 소프트웨어 State Machine를 구현해야 한다. 이때문에 약간 귀찮은 작업을 해 주어야 한다. 물론 속도도 느려지지만 그나마 소형 모듈에서 쉽게 구현할 수 있다는 장점이 있다. 소프트웨어 SM 구조 Slave 구현 1)Master에서 Start + (7bit+1bit)Address를 전송하고 NACK를 기다린다. 2)Slave에서 Address가 맞으면 NACK를 전송한다. 3)Slave에서 Data 전송한다. 4)Master에서 Data수신후 NACK를 송신 5)Slave에서 NACK수신 6..
[CCE] MSP430 Code Composer Essentials 개발환경 설정 MSP430 Code Composer Essentials 개발환경 설정 TI에서 제공하는 MSP430용 컴파일러 및 디버깅환경 CCE (Code Composer Essentials)을 사용해 보았다. 코드영역 16k 제한이 있는 버젼은 무료로 제공하므로 스터디 용으로 나쁘지 않은것 같다. 아래 링크에서 다운로드 가능하다. http://focus.ti.com/docs/toolsw/folders/print/msp-cce430.html 테스트한 프로젝트 파일 프로그램 실행하고 새로운 프로젝트를 만든다. 디바이스를 선택한다. 프로젝트가 생성되고 간단한 예제를 작성해 컴파일 할 수 있다. 프로젝트 옵션에서 디버깅 툴을 설정하여 디버깅 및 다운로드가 가능하다. MSP430 보드를 이용하여 LED제어 디버깅 디버깅 ..
[ MSP430_TSSOP EVM ] FND제어 [ MSP430_TSSOP EVM ] FND제어 프로젝트 파일 기본 드라이버 파일은 msp-tssop_LED.zip 를 이용하고 드라이버 파일이 있는 폴더에 압축 풀면 쉽게 테스트 할 수 있다. MSP430F1232를 이용하여 FND모듈을 테스트 하기 위해 회로를 아래와 같이 연결한다. FND모듈과 [MSP430 EXP] 모듈사이의 연결은 점퍼 케이블을 이용한다. FND모듈은 Shif resiter을 이용하여 제어 되고 [ /00_hal/shift_hal.h ]에 핀이 정의되어 있다. //shift resister관련 #define SHIFT_DATA_PORT P2OUT #define SHIFT_DATA_DDR P2DIR #define SHIFT_DATA_BIT BIT3 #define SHIFT_CLK_..
[MSP430 EXP]개발환경 설정 - IAR EW430 [MSP430 EXP]개발환경 설정 컴파일러 TI에서 무료로 제공하는 IAR Embedded Workbench Kickstart - Free 4KB IDE을 이용면 TI에서 제공하는 기본 예제는 충분히 테스트 할 수 있다. http://focus.ti.com/docs/toolsw/folders/print/iar-kickstart.html 에서 다운로드 받아을 수 있다. 로그인 해야 받을 수 있는데 TI ID가 없으면 여기서.. 프로그램을 실행하고 메뉴에서 [Project->Create New Project]로 새로운 프로젝트를 생성한다. 프로젝트명은 원하는 것으로 생성하면 되지만 하나 만든 프로젝트를 계속해서 복사해서 사용할 것이므로 이왕이면 대표적인 이름으로 생성해 두면 편리하다. 새로은 프로젝트가 생..
MSP430 Timer A 1 인터럽트 이용한 1초 만들기 MSP430 Timer A 1 인터럽트 이용한 1초 만들기 MSP430에서 타이머 기능은 여러가지가 있지만 간단히 타이머 인터럽트를 이용하여 1초마다 LED점등하도록 해서 테스트 해 보기로 한다. 일단 데이터 시트에서 타이머 블록도를 보면 아래 그림과 같다. 인터럽트 소스로는 ACLK, SMCLK, 포트가 있다. 이중에 기능에 맞게 사용하면 되는데 ACLK같은 경우 32.768khz 이기 때문에 시간체크 하면 좋을것 같고 1ms 정도로 인터럽트를 만들려면 SMCLK가 좋을것 같다. TACTL = TASSEL_2 + MC_2; // SMCLK, contmode 클럭 소스가 설정되면 이제 Count Mode를 설정해야 하는데 Stop, , Up to CCR0, Continous up, Up/Down의 모드가..