Guide for MSP430 Wireless Communication

xster
xster
Published in
2 min readApr 2, 2009

Trying to get a MSP430-based development board to talk to each other but simply don’t know where to start?

TI’s resources can be a hell to sort through. With all their documents (and software!!) creatively named something along the lines of SLAU0244 and SLAX00F, we can definitely see they’ve made their efforts to let developers find stuff easily.

If you already know your basic C for MSP430, here’s how I got mine eZ430-RF2500 to talk using TI’s SimpliciTI.

  • First get Code Composer Essential from TI. You can compile 16kb of code for free
  • Install SimpliciTI, TI’s proprietary wireless protocol that does all the messy job of SPI between MSP430 and CC2500, LED controls etc out of your way so you can program wireless applications. It’s free, free as Internet Explorer
  • In SimpliciTI’s install folder, there are examples of how to do a simple peer to peer program and more complex programs. Once you understand, port them for your own use. This can get messy as none of the example projects actually contain the class files so make sure to keep your own copies. Remember to relink the include files as well.
  • In the documentation folder, there are pdfs that will show you everything to get started. It’s pretty simple and you can understand by looking at the code. There are essentially just abou 5 commands to start sending messages.

Tips:

  • Power does matter! Connected through the USB debugger, it has trouble connecting and transmits 8 bytes every 2 seconds. Connected through a 3.3V DC supply, it transmits 800 bytes in the same time.
  • If you want to use I/O interrupt from PORT2, you must follow these steps or it will crash on connect
  • In your includes, find Components/bsp/boards/eZ430RF/bsp_external
  • Open mrfi_board.c and find BSP_ISR_FUNCTION()
  • Comment out the function but copy MRFI_GpioIsr()
  • In your own program, create the interrupt, such as:
#pragma vector=PORT2_VECTOR
__interrupt void Port_2(void)
{
if ((P2IN & 0x01) == 0x01)
{next = 1;}
P2IFG &= 0xFE;
MRFI_GpioIsr();
}
  • Include MRFI_GpioIrs() that you copied and do what you have to do in the interrupt

--

--