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

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

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

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



Posted by nexp

댓글을 달아 주세요

[INTERFACE]/ZIGBEE2011. 1. 7. 22:10

[Zigbee] 무선모듈을 이용한 가속도 센서 데이터 전송 테스트

[Zigbee] 무선모듈을 이용한 가속도 센서 데이터 전송 테스트



Zigbee기반의 RF2UART 모듈의 성능 테스트를 위해 가속도 센서 데이터를 무선으로 전송하는 테스트를 진행했다.

기존 Zigbee모듈들은 UART를 지원하지만 속도가 느리거나 패킷방식으로 전송해야 되서 디버깅에 어려움이 많아 USB2UART를 대체하는 용도로 제작해 보았다. (아래 동영상은 115200에서 100Hz로 데이터 전송하는 예이다. 다른 Zigbee모듈로는 20Hz이상 힘들었다)
MCU입장에서는 그냥 시리얼 통신으로 보면 된다. USB2UART모듈과 핀맵이 호환되므로 개발및 디버깅때는 유선으로 테스트 하고 최종적으로 모듈만 변경하면 무선으로 데이터 송수신 할 수 있다.

테스트 동영상
아래 테스트 동영상은 STM32를 이용하여 가속도 센서 데이터를 수집하고 100Hz주기로 UART로 전송하면 Zigbee 무선모듈으로 PC에 전송하여 표시하는 테스트이다.

Posted by nexp

댓글을 달아 주세요

[INTERFACE]/ZIGBEE2010. 10. 22. 21:30

[CC2500] 소형 Zibee 모듈 제작

[CC2500] 소형 Zibee 모듈 제작


소형의 RF to UART모듈을 제작 했다. 기존 USB2UART, Bluetooth2UART 모듈과 호환되는 핀맵으로 제작하여 기존 보드에 연결하여 무선으로 시리얼 데이터 전송이 가능하다.
UART로 입력되는 데이터를 UART로 전송하고 수신된 데이터를 UART로 출력한는 기능을 한다.

기본적으로 모듈간 시리얼 통신을 무선으로 변경해 주는 기능을 하지만 PC에 연결도 가능하다. 만들면서  STM32를 이용하여 USB2UART 도 함께 제작하였다. 장점이라면 펌웨어를 수정할 수 있기 때문에 보레이트나 기타 여러 기능을 추가 할수 있다.




Posted by nexp

댓글을 달아 주세요

  1. 설동국

    관리자의 승인을 기다리고 있는 댓글입니다

    2011.07.16 10:31 [ ADDR : EDIT/ DEL : REPLY ]

[INTERFACE]/ZIGBEE2010. 8. 16. 14:51

[CC2500] ez430-RF2500 가지고 놀기1 - LED, Switch 제어

[CC2500] ez430-RF2500 가지고 놀기1 - LED, Switch 제어
ez430-RF2500 키트를 이용하여 몇가지 테스트를 진행해 보았다.
TI에서 제공되는 예제는 코드 스타일이 나하고 맞지 않고 뭔가 수정하려고 해도 너무 복잡하게 되어 있어 전체적인 해도하고 원하는 형태로 쉽게 변경하기 위해 새롭게 작성해 보았다.




LED
먼저 LED를 깜박이는 예제를 작성해 보자.
LED는 P1.0에 Red, P1.1에 Green LED가 연결되어 있다.
ez430-RF2500 예제는 8Mhz에서 돌아 가므로 SystemInit()함수에서 8Mhz로 돌아 가도록 설정하고(SYS_CLK_8MHZ),  LED Driver 은 간단히 아래와 같이 작성하면 된다.
[config.h]

#define __SYS_CLK__     SYS_CLK_8MHZ
//-----------------------------------------------------------------------------
// On board LED Driver
//Red
#define LED1_BIT     BIT0
#define Led1Init()     Sbi(P1DIR, LED1_BIT)
#define Led1Off()     Cbi(P1OUT, LED1_BIT)
#define Led1On()     Sbi(P1OUT, LED1_BIT)
#define Led1Toggle()    Tbi(P1OUT, LED1_BIT)
//Green
#define LED2_BIT     BIT1
#define Led2Init()     Sbi(P1DIR, LED2_BIT)
#define Led2Off()     Cbi(P1OUT, LED2_BIT)
#define Led2On()     Sbi(P1OUT, LED2_BIT)
#define Led2Toggle()    Tbi(P1OUT, LED2_BIT)
//-----------------------------------------------------------------------------


아주 심플하다...
#include "system.h"

//-----------------------------------------------------------------------------
void main(void)
{
    SystemInit();
   
    Led1Init();
    Led1On();
 
    Led2Init();
    Led2Off(); 

    while(1)
    {
  //Led Toggle..
        Led1Toggle();
        Led2Toggle();  
        Delay(300);  
    }
}
//-----------------------------------------------------------------------------



스위치
디버깅용으로 스위치 누를때 마다 CC2500을 이용하여 RF로 데이터를 전송하도록 하기 위해서 스위치를 사용하면 좋다. 스위치는 P2.2에 연결되어 있고 내부 풀업을 사용해야 한다. 아래와 같이 스위치 드라이버를 작성하면 되겠다.
[config.h]

//-----------------------------------------------------------------------------
//Switch Driver
#define SW1_BIT      BIT2
#define SW1_PORT     P1IN
#define Sw1Init()     Sbi(P1REN, SW1_BIT);Cbi(P1DIR, SW1_BIT);
#define GetSw1()     (!(SW1_PORT&SW1_BIT))
#define WaitForSw1()    while(GetSw1())
//-----------------------------------------------------------------------------



간단히 스위치를 누르면 LED를 깜박이도록 했다.
#include "system.h"

//-----------------------------------------------------------------------------
void main(void)
{
    SystemInit();
   
    Led1Init();
    Led1On();
 
 Sw1Init();
 
    while(1)
    {
        if(GetSw1())Led1On();
        else Led1Off();
    }
}
//-----------------------------------------------------------------------------



Posted by nexp

댓글을 달아 주세요

  1. nazzoo

    관리자의 승인을 기다리고 있는 댓글입니다

    2011.06.16 17:17 [ ADDR : EDIT/ DEL : REPLY ]
  2. pia

    관리자의 승인을 기다리고 있는 댓글입니다

    2012.01.11 10:18 [ ADDR : EDIT/ DEL : REPLY ]

[INTERFACE]/ZIGBEE2009. 9. 13. 17:58

[CC2500] 2.4Mhz RF 전송 속도 테스트

[CC2500] 2.4Mhz RF 전송 속도 테스트



TI에서 제공하는 eZ430-RF2500 모듈을 이용하여 RF전송 속도 테스트를 하였는데... 물론 고속 전송 보다는 저전력에 타겟을 둔 키트이지만 그대로 사용하기에는 좀 문제가 있는것 같다.
우선 eZ430키트에서 제공하는 USB동글은 UART의 최대 속도가 9600이다. 9600이상 보레이트를 올리면 데이터가 깨지는 현상이 있다. 그래서 myUSB2UART를 이용하여 115200으로 변경해서 테스트 진행 했다.
(-> 설정에 문제 인지 ez430 키트의 TUSB3410 펌웨어에 문제인지 알수가 없지만 아무튼 115200으로 했을때 다른 USB2UART는 잘 전송되는데 ez430 동글은 데이터가 깨지는 현상이 있다.)

그리고 하드웨어상 RX, TX핀이 확장 커넥터로 나오지 않아서 P3, P4에 점퍼를 날려야 했다. 뭔가 확장하기에는 상당히 힘들도록 제작한 보드인것 같다.

AP(서버)에 해당하는 코드를 PC에 연결할 수 있도록 USB2UART로 연결하여 End Device로 부터 전송되는 데이터를 115200bps로 출력하도록 했다.  



MSP430의 속도를 8Mhz하고 최대로 빠르게 전송해 본결과 버퍼를 240Hz로 보낼수 있었고 클럭을 올려도 더이상 변화가 없었다.
최대 전송 타이밍이다. 물론 버퍼를 키우면 되지만  인식이 정상적으로 안되는 현상이 발생했다.
스펙상 500Kbps이지만 스텍 올라가면서 이 속도가 최대가 아닐까...

CC2500 전송 속도 테스트 동영상 


Posted by nexp

댓글을 달아 주세요