[MSP430]/MSP430_AFE2012. 10. 29. 18:26

[MSP430AFE EVM] 24bit ADC테스트 - LCD에 ADC24 데이터 그래프 표시하기

[MSP430AFE EVM] 24bit ADC테스트 - LCD에 ADC24 데이터 그래프 표시하기

 

 

MSP430AFE2xx 의 가장 큰 특징은 24bit ADC를 내장하고 저전력, 저가격의 MCU이다.

ADC특징을 보면 아래와 같다.

 

Features of the SD24_A include
-Up to three 24-bit second-order ΣΔ ADC
- Differential inputs o Simultaneous sampling
- Oversampling of up to 1024
- Integrated Programmable Gain amplifier of gains up to 32
- Integrated temperature and voltage sensor
- Integrated accurate 1.2V ADC reference with 18ppm/ ºC

 

 

MSP430AFE253은 DIFF 3채널의 24bit ADC가 있다.

 

 

 

 

MSP430AFE2xx ADC24블록도

 

 

 

 

MSP430 ADC24 출력 포멧

24bit ADC 이지만 출력레지스터 SD24MEMx는 16비트 레지스트 이고 24bit를 읽기 위해서는 SD24CCTLx의 SD24LSBACC비트를 설정해 주어야 한다.

SD24LSBACC = 0 -> 상위 16비트

SD24LSBACC = 1 -> 하위 16비트

 

 

 

MSP430 AFE ADC24 초기화

    SD24CTL = SD24REFON+SD24SSEL0;            // 1.2V ref, SMCLK
    SD24CCTL0 |= SD24IE + SD24DF;            // CH0, enable interrupt

 

    for (i = 0; i < 0x3600; i++);             // Delay for 1.2V ref startup

 

 

 

ADC 인터럽트 처리 코드

24bit로 데이터 받으면 값이 좀 이상하다.(아무래도 오버샘플링으로 비트수를 늘이는것 같은데, 이부분은 좀더 들여다 봐야 할것 같다.)

우선 상위 16비트만을 이용해 처리하도록 했다.

 #pragma vector=SD24_VECTOR
__interrupt void SD24AISR(void)
{
  switch (SD24IV)
  {
  case 2:                                   // SD24MEM Overflow
    break;

 

  case 4:                                   // SD24MEM0 IFG

      //하위 16비트 데이터
      Sbi(SD24CCTL0, SD24LSBACC);
      adc_value = SD24MEM0;

 

      //상위 16비트 데이터

      Cbi(SD24CCTL0, SD24LSBACC);
      //adc_value = (SD24MEM0<<16) | adc_value;

      adc_value = (SD24MEM0);
    break;


  case 6: 


    break;
  case 8:                                   // SD24MEM2 IFG
                       // Save CH2 results (clears IFG)
    break;
  }

   __bic_SR_register_on_exit(LPM0_bits);    // Exit LPM0
}

 

 

 

 

 

MSP430AEF ADC24 테스트 동영상

24bit ADC A0, A1에 연결되 VR값을 TFT LCD에 출력하는 예제를 테스트 했다.

 

Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430_AFE2012. 10. 27. 23:00

[MSP430AFE EVM] 24bit ADC MSP430 보드 제작

 [MSP430AFE EVM] 24bit ADC MSP430 보드 제작

 

 

 

MSP430코어에 24bit ADC를 내장하고 저렴한 MSP430AFE 시리즈를 표준 핀맵인 s-Type 형태로 제작 했다. 저전력 에너지 미터링 용으로 사용하기 좋다고 하는데.. 소형이라 여러가지 어플리케이션에 적용하기 좋을것 같다.

성능은 아직 어떨지 모르겠지만 24bit ADC를 내장한 MCU 중에는 가장 저렴한것 같다.  

 

핀맵은 표준을 따르고 최대한 심플하고 소형으로 제작 해보았다. 전원은 아날로그를 위해 안정적인 레귤레이터로 LP2985를 사용했다.

 

 

표준 핀맵으로 다양한 확장보드에 연결하여 테스트 가능하다.

 

 

 

 

[MSP430AFE EVM] 핀맵

 

 

 

 

 

 

 

OnBoard LED

디버깅을 위한 LED로 P1.0에 연결되어 있다

 

 

 

VREF

MSP430AFE 내부에 1.2V REF가 있지만 추가로 필요한 경우를 대비해 가변 REF인 0.1% tolerance를 가진 LM4041을 사용할수 있도록 했다.

Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430_AFE2012. 6. 19. 11:26

[MSP430AFE] 24bit ADC MSP430

[MSP430AFE] 24bit ADC MSP430

MSP430 코어에 24bit ADC가 포함된 MSP430AFE시리즈가 출시되었다. 저전력 저비용 계측 솔루션으로 사용하면 좋을것같다.

 

- 2400:1 동작 범위에서 우수한 0.1% 오차의 정밀성을 지원하는 싱글-페이즈 계측 아날로그 프론트 엔드 
- 싱글-페이즈 계측 및 무단조작 방지를 위해 동시 샘플링 기능을 가진 세 개의 24bit 시그마-델타 ADC(analog-to-digital converters)

- 최적의 공간 절약형 소형 24 핀 TSSOP 패키지

 

 

msp430afe253.pdf

 

 

 

 

 

 

 

 

 

Posted by nexp

댓글을 달아 주세요

  1. 비밀댓글입니다

    2012.10.21 16:30 [ ADDR : EDIT/ DEL : REPLY ]

[MSP430]/MSP430_EVM2012. 2. 9. 22:00

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와 결합하면 초소형 플래시와 RAM 메모리 풋프린트를 사용하는 510(K) 및 PMA 의료용 디바이스를 설계할 수 있습니다.
µC/OS-II는 이미 안전 중심이므로 새로운 의료용 제품 개발로 인한 출시 시간 또한 단축할 수 있습니다."



MSP430 MCU용 µC/OS-II™ , MSP430 MCU용 µC/OS-III™ 다운로드
http://micrium.com/page/downloads/ports/ti/msp430


Posted by nexp

댓글을 달아 주세요

[MSP430]/MSP430F5x2011. 11. 26. 17:30

[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   #0x1, &0x263
   \   000060   FD3F         JMP     ??main_1
   \   000062   0343         NOP



단순 On/Off 하는데 걸리는 시간 90 ns 대략 3Mhz
33Mhz 클럭 이용시 -> GPIO On/Off속도 4.1Mhz

     39              while(1)
     40              {
     41                  //Led1Toggle();
     42                  PORT8 = 1;
   \                     ??main_1:
   \   00005C   D2436302     MOV.B   #0x1, &0x263
     43                  PORT8 = 0;
   \   000060   C2436302     MOV.B   #0x0, &0x263
   \   000064   FB3F         JMP     ??main_1
   \   000066   0343         NOP



참고로 외부 클럭을 32Mhz로 사용하기 위해  TI에서 제공하는 코드(HAL_UCS)를 system.c 에 추가 하였다.
#if (__SYS_CLK__ == SYS_CLK_32MHZ_XTAL) 
    // Startup HF XT2 crystal
    P5SEL |= BIT2+BIT3;                       // Port select XT2 
    do{
        status = XT2_Start_Timeout(XT2DRIVE_0, 50000);
    }while(status == UCS_STATUS_ERROR); 

    SELECT_SMCLK(SELS__XT2CLK);               // Select XT2 as SMCLK source
    SELECT_MCLK(SELS__XT2CLK);
#endif

Posted by nexp

댓글을 달아 주세요