[MSP430]/MSP430-S2011. 3. 25. 15:03

[MSP430L092] 단일셀 밧데리 구동 MSP430L 관련자료

[MSP430L092] 단일셀 밧데리 구동 MSP430L 관련자료




1 Sel Battary 용 저전압 MSP430이 나왔다.
업계최소 0.9V 부터 동작한다고 광고하고 있다.
단일셀 밧데리라 응용할때가 많을듯한데... 자세히 보니 동작전압이 0.9~1.5V 이다. 기존 MSP430개발장비는 3.3V IO기준이라 전압변환이 필요하다. 개발보드 하나 만들어 두면 쓰임이 있을것 같다. 태양열 판넬쪽에 써도 좋을것 같고...


MSP430L092 관련자료


MSP430L092 예제소스코드



MSP430L092 의 주요 기능 및 장점
- 3개의 0.9V MCU 제품 MSP430L092(RAM), MSP430C091(1kB ROM) MSP430C092(2kB ROM)은 각각 최대 2kB RAM과 2kB ROM을 제공하며 양산을 위한 다양한 선택 경로 제공

- 통합 A-POOL(Analog Functions Pool)은 ADC(analog-to-digital converter), DAC(digital-to-analog converter), SVS(system voltage supervisor), 온도 센서, 콤퍼레이터로 사용될 수 있고 외부 부품이 필요없어 전체 BOM 절감

- 프로그래머블 A-POOL은 다양한 아날로그 주변장치 설정을 사용자 상호작용 없이 연속적으로 동작하여 향상된 유연성 제공

- 외부 EERPOM을 포함한 툴 키트와 ROM-플로우 프로세스 가이드를 통해 개발에서 최종 생산까지 신속한 이동 지원
 
- 45μA(Active mode) 초저전력 소모 특성과 5μs 이하의 웨이크업(Wake-up) 시간 0.9V 동작과 결합해 배터리 사용 최적화






MSP430L092 블록도
JTAG가 기존 MSP430G시리즈와 같이 2핀이아니라 4핀이다. 이건뭐... 왜 왔다갔다 하는건지..



MSP430L091 핀맵
사이즈는 동일한데... 핀맵이 기존 MSP430G시리즈와 다르다. 전압레벨 때문에 이렇게 한건가? 그냥 동일하게 가면 좋을련만... 다시 PCB제작해야겠군




MSP430L092 핀맵



MSP430L092에서 새롭게 선전하는 A-POOL 라는 기능이 있다. 아날로그 기능을 칩하나로 해서 간단히 설정할 수 있도록 되어 있다. 이 기능은 마음에 든다.






좀더 자세한 사항

http://www.ti.com/ww/en/mcu/multimedia/L092_Introduction/

Posted by nexp
TAG MSP430L

댓글을 달아 주세요

[MSP430]/MSP430-S2011. 3. 16. 15:38

무선 깜박이 신호 전송장치 - MSP430F2013 (MSP430F2231) 선정

무선 깜박이 신호 전송장치 - MSP430F2013 (MSP430F2231) 선정
소형에 UART가 가능한 그리고 저렴한 MCU를 선택해야 한다.
0.5$ 대로 구매 했던 MSP430이 좋을것 같다. 얼마전 소프트 UART도 테스트 했으니  UART도 문제 없고, 클럭 필요 없고 플래시 라이트도 간한하니 소형으로 만들기 좋을것 같다.

기능은 차량 깜박이 신호를 감지해서 무선으로 전송하면 된다. 이런 기능이로 쓰기는 딱 좋은것 같다. 뒷면에 MSP430F2013 (MSP430F2231)이 실장되어 있다.



Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430-S2011. 3. 4. 11:31

[MSP430G ] 양방향 Soft UART 테스트

[MSP430G ] 양방향 Soft UART 테스트



MSP430G2231을 이용하여 양방향 UART통신을 테스트 해 보았다. MSP430G 시리즈는 저전력, 저렴함을 강점으로 내새우기 때문에 UART가 없어 소프트웨어 UART를 이용하는데 지난번에는 간단히 송신만 테스트 했었다. 이번에는 송수신 모두 되도록 수정해서 테스트 해 보았다.

실험 결과 8Mhz에서 115200bps까지 통신이 잘된다.



UART 드라이버 함수의 U0_PutByte(), U0_GetByte() 부분을 수정하고 나머지는 TimerA인터럽트에서 처리 하면 간한히 송수신 가능하다.
[config.h]
#define  TXD  BIT1    // TXD on P1.1
#define  RXD  BIT2    // RXD on P1.2

#define SOFT_UART_INIT()  P1SEL |= TXD;\
        P1DIR |= TXD;\
        P1IES |= RXD;\
        P1IFG &= ~RXD;\
        P1IE |= RXD;


[serial.c]
void U0_PutByte(unsigned char Data)
{
 TXByte = Data;
 
 while(isReceiving);   // Wait for RX completion
 TXByte |= 0x100;   // Add stop bit to TXByte (which is logical 1)
 TXByte = TXByte << 1;   // Add start bit (which is logical 0)
 BitCnt = 0xA;    // Load Bit counter, 8 bits + ST/SP

 CCTL0 = OUT;    // TXD Idle as Mark
 TACTL = TASSEL_2 + MC_2;  // SMCLK, continuous mode
 CCR0 = TAR;    // Initialize compare register 
 CCR0 += Bit_time;   // Set time till first bit 
 CCTL0 =  CCIS0 + OUTMOD0 + CCIE;  // Set signal, intial value, enable interrupts
 while ( CCTL0 & CCIE );   // Wait for previous TX completion
}

unsigned char U0_GetByte(void)
{
 while(!hasReceived);

 // Clear the flag 
 hasReceived = 0; 
    return RXByte;
}




MSP430G2231 Soft UART 테스트 예제 코드
#include "system.h"
#include "serial.h"

void main(void)
{
 //System Initialize
 SystemInit();
 
 //UART초기화
 U0_Init(BAUD_115200);
 
 Led1Init();
 Led1On();

  U0_PutStr("MSP430 Serial Test\r\n"); 
 
 while (1)
 {
  if(U0_IsGetByte())
  {
   switch(U0_GetByte())
   {  
    case '0':
     Led1Off();
     U0_PutStr("Led1Off()\r\n"); 
     break;
     
    case '1':
     Led1On();
     U0_PutStr("Led1On()\r\n");      
     break;   
   }
  }




MSP430G2231 UART테스트 동영상



핸드폰과 Bluetooth을 이용한 램프제어 테스트 동영상
Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430-S2010. 9. 4. 15:22

[MSP430G2213 적용 사례] 저전력에 저렴한 MCU

[MSP430G2213 적용 사례] 저전력에 저렴한 MCU

멀티 채널 MIC입력 프로젝트 진행중 저렴한 MCU를 선정해야 하는데... 회사에 많이 가지고 있는것 중에 MSP430G2231(MSP430F2013)이 있다.
14핀 크기작고 클럭 내장이고 0.5$대라 사용하기 좋은것 같다.
기능은 단순하다. 스위치 입력 받고 I2C로 게인 설정하는 역할만 하면된다. 이런 용도로 사용하기 딱 좋은것 같다.


Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430-S2010. 7. 17. 12:20

[MSP430G2231] ADC테스트

[MSP430G2231]ADC테스트


MSP430G2231에는 10비트 ADC가 내장되어 있다. VR을 이용해 간단히 ADC테스트를 해 보았다.
외부 ADC입력으로 P0.0~P0.7에 8채널 입력 가능하다. P1.1에 VR을 연결하여 전압변화를 측정할 수 있도록 했다.

ADC 레지스터 초기화 설정
//클럭설정
#define ADC10SHT_0          (0*0x800u)   /* 4 x ADC10CLKs */
#define ADC10SHT_1          (1*0x800u)   /* 8 x ADC10CLKs */
#define ADC10SHT_2          (2*0x800u)   /* 16 x ADC10CLKs */
#define ADC10SHT_3          (3*0x800u)   /* 64 x ADC10CLKs */

#define ADC10ON             (0x010)     /* ADC10 On/Enable */

#define ADC10IE             (0x008)     /* ADC10 Interrupt Enalbe */

ADC_Init(void)

   ADC10CTL0 = ADC10SHT_2 + ADC10ON + ADC10IE; // ADC10ON, interrupt enabled
}

#define ADC_Start()              ADC10CTL0 |= ENC + ADC10SC;             // Sampling and conversion start
#define ADC_Read()             ADC10MEM    //read ADC


MSP430G2231 ADC테스트 코드
void main(void)
{
 //System Initialize
 SystemInit();

  FndInit();
  ADC_Init();
 
 while (1)
 { 
    ADC10_Channel(1);
    temp = ADC_Read();

   FndOut(value/10);
   Delay(50);
 }
}

// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR (void)
{
  __bic_SR_register_on_exit(CPUOFF);        // Return to active mode
}


MSP430G2231 ADC테스트 동영상
가변저항 값에 따라 ADC값을 FND모듈에 표시
Posted by nexp

댓글을 달아 주세요