본문 바로가기

MSP430

(63)
MSP430™ MCU를 위한 새로운 μC/OS-II RTOS MSP430™ MCU를 위한 새로운 μC/OS-II RTOS TI MSP430용 uCOS RTOS를 공개 하고 있다. [TI 무료 MSP430 RTOS SYS BIOS 사용하기] 의 TI RTOS도 나쁘지 않았는데... uCOS를 밀고 있네... MSP430에 사용하기는 좀금은 무거운 감이 있긴 했는데 안정성을 강조하고 있다. "의료용 및 기타 안전 중심 애플리케이션 설계 시, 마이크리움의 µC/OS-II™ 및 µC/OS-III™ 실시간 운영 체제 코드 예제 모두를 MSP430 마이크로컨트롤러에 사용할 수 있습니다. 이는 안전 중심 애플리케이션용으로 특별히 설계된, 업계 유일의 실시간 운영 체제입니다. µC/OS-II 및 µC/OS-III를 업계 최저전력 마이크로컨트롤러인 MSP430 MCU와 결합하면 ..
[MSP430F5529 EVM] GPIO토글 속도 측정 [MSP430F5529 EVM] GPIO토글 속도 측정 MSP430F55xx 시리즈는 클럭이 최대 32Mhz까지 입력 가능하므로 이전 MSP430보다는 많이 빨라 졌다. USB기능이 추가 되었기 때문에 속도도 중요한 요소가 되었기 때문이지 않을까... 아무튼 저렴하고 저전력의 MSP430코어가 속도도 빨라졌기 때문에 응용해 적용해 볼곳이 많이 있을것 같다. MSP430F5529/MSP430F5510 GPIO토글 속도 테스트 [참고] MCU속도 측정 결과 24Mhz 클럭 이용시 -> GPIO 토글 속도 1.7Mhz 33Mhz 클럭 이용시 -> GPIO 토글 속도 2.35Mhz 39 while(1) 40 { 41 Led1Toggle(); \ ??main_1: \ 00005C D2E36302 XOR.B #0x..
[MSP430] WATCHDOG 사용하기 [MSP430] WATCHDOG 사용하기 MSP430에서 Watchdog 사용하기위해 WDTCTL레지스터를 설정하면된다. 디폴트로 와치독은 동작하도록 되어 있고 내 코드에서는 SystemInit() 함수에서 와치독 사용하지 않도록 설정하고 있다. void SystemInit(void) { int result,i; WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer WDTCTL레지스터를 제어하기 위해서는 Passwoard를 상위 레지스터가 기입해야 하는데 0x69를 입력하면 된다. 아래는 WDTCTL레지스터 이다. 와치독 사용하기 위해서는 WDTHOLD, WDTTMSEL 비트를 0으로 설정하면된다. 와치독 타이머 초기화는 WDTCNTL비트를 셋하면 초기화되어 와치독 리셋을..
[MSP430] 외부 인터럽트 [MSP430] 외부 인터럽트 외부 인터럽트 초기화 //외부 인터럽트 설정 Sbi(P1IE, SCLK_BIT); //interrupt enabled Cbi(P1IES, SCLK_BIT); //edge 선택 0:라이징, 1:폴링 Cbi(P1IFG, SCLK_BIT); //IFG cleare 인터럽트 처리 핸들러 #pragma vector=PORT1_VECTOR __interrupt void Port_1(void) { if(P1IFG&SCLK_BIT) { Led1Toggle(); Cbi(P1IFG, SCLK_BIT); } }
[MSP430 PWM] MSP430F2013 PWM [MSP430 PWM] MSP430F2013 PWM MSP430의 PWM 출력은 TA0, TA1에서 가능한데 P1.1, P1.2 (P1.5, P1.6)에서 출력 가능하다. PWM 초기화 void PwmInit2(void) { Sbi(P1DIR, BIT2); // P1.2 output Bit(P1SEL, BIT2); // P1.2 TA1 options CCR0 = PWM_PERIOD; // PWM Period/2 CCTL1 = OUTMOD_6; // CCR1 toggle/set CCR1 = PWM_PERIOD/2; // CCR1 PWM duty cycle TACTL = TASSEL_2 + MC_3; // SMCLK, up-down mode } PWM출력 #define SetPWMp2(Percent) CCR..
[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) { }..
MSP430 소비전류 측정 실험 MSP430 소비전류 측정 실험 MSP430F2013 기준으로 소비전류를 측정해 보았다. 우선 MSP430 데이터시트를 보면 아래와 같이 나타나 있다. Low Supply Voltage Range 1.8 V to 3.6 V Ultra-Low Power Consumption Programming Voltage Needed, Programmable - Active Mode: 220uA at 1 MHz, 2.2V - Standby Mode: 0.5uA - Off Mode (RAM Retention): 0.1uA 우선 가장 기본 코드로 루프를 돌면서 3초에 한번씩 LED를 순간적으로 On/Off하는 코드를 돌려보았다. 기본코드는 1Mhz에서 동작한다. 측정 결과 340uA정도로 측정된다. 3.3V이므로 데이터시..
MSP430F55xx USB 출시 MSP430F55xx USB 출시 MSP430코어에 USB기능이 추가된 MSP430F5521 이 출시되었다. 저전력 기능에 USB기능까지 포함되어 상당히 기대를 했는데... 너무 늦게 출시되지 않았나 하는 생각이 든다. 요즘에 USB포함되고도 워낙 저렴한 MCU들이 많이 출시되므로 별로 반응이 없는것 같다. 단적으로 STM32의 경우 Cortex-M3 코어에 USB기능을 넣고도 2.5$이면 가능한데 MSP430F55xx는 4$대 이다. 물론 48핀의 저렴한 패키지가 출시 예정이라고 하지만 기능상 미흡한점이 많다. 하지만 저전력을 요하고 PC와 연결되어야 하는 핸드 핼드 제품에는 충분히 가치가 있지 않을까... MSP430F5x 블럭도 MSP430F5x 핀맵 또한가지 아쉬운점은 기존 핀맵과의 호환이 안된다..