This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ez430RF2500 getting started help

Other Parts Discussed in Thread: CC2500

I just got the ez430RF2500 kit. So far its been fun. I ran the senor monitor demo and executed a simple TX/RX code. I am looking for a tutorial or a document that explains all the various files that are used in a RF2500 project, like the simple Rx/Tx. Something like making your own RF2500 project would be great.

 

 

  • Which IDE are you using? IAR or CCE.

  • The MSPF2274 MCU is the one used in the MSP430-RF2500 and its data sheet is here http://focus.ti.com/lit/ds/symlink/msp430f2274.pdf  You will find it has the details unique to the F2274. The MSP430x2xx  User Guide at http://focus.ti.com/lit/ug/slau144e/slau144e.pdf has a much better description of the MSP430x2xx and all of the registers.

    There are code examples for feature such as ports,  the ADC, using interrupts, UART, etc for the F2274 at http://www.ti.com/lit/zip/slac123  I would suggest becoming experienced at opening and modifying the examples in IAR and being able to step through them using the full IAR debugger capability to include watch boxes, register view, memory view, etc. You should be able to write a stand alone program to blink the LEDs using timers and interupts to control their flash rate.

    Once comfortable with the MSP-430 MCU move on the CC2500 data sheet and program the MSP430 to control it for simple packet send and receive or jump directly into the SimpiliciTi software by looking at the examples provided with the SimpiliciTi Software installation, they are a good source for understanding how to write your own application layer using the SimpiliciTi I  protocol.

    It may seem like a long path but being familiar with IAR and the basics of the MSP-430 does not take long and will make understanding SimpiliciTi software a whole lot easier.

    If you get stuck along the way we are here to help.

     

  • Here may be the type of document you were looking for. There is another one with more detail. If I locate it I will post it.

    SimpliciTi-AN-swru130b.pdf
  • Stewart,

     

    Thanks for the reply. I am familiar with the MSP430. Not an expert, But I am comfortable.

    But using it with the CC2500, I am not so comfortable yet. I did an example yesterday - Simple Rx/Tx. I press a button on one module, a Red LED lights up on the other module.

    In that example there are so many header files and C files. I don't understand many of them. I came across slaa325a.pdf, which helped a bit. But I need something better.

     

     

  • I believe slaa325a.pdf is as good as it gets and is better than what is available for most of the other kits. I piece a overview together with snippets out of various documents.

    The two primary tools to get through all of the includes are "find in files"   in IAR to get through the cascaded #defines, track down variables,  and using the debugger to single step through the code and also to see the actual instruction sequence in order by looking at the labels in the disassembler.  This will give you a pretty good snap shot of the code actually used for a particular application (EP vs AP) in all of the those files.  As you progress through the code with single step you can set a break point and use run to cursor to get to a new start for single stepping without single stepping from "main".

  • Alright. I think I have a lot of work . For starters can you tell me what this function does

    #define MRFI_CONFIG_GDO0_PIN_AS_INPUT()       st( P2SEL &= ~BV(__mrfi_GDO0_BIT__); )

    I don't understand what st and ~BV do.

    I hate it when they define a function using #define. I guess I have to get used to it.

    Also, I read in MSP430 user guide that writing to P2IES can set the corresponding interrupt flag. How do you avoid this? Just clear the particular flag?

  • Hithesh said:
    st( P2SEL &= ~BV(__mrfi_GDO0_BIT__); )

    P2SEL can effect Port 1 or 2 depending which bit is set to 1 or 0.

    So read this line as P2SEL is AND with not bit value __mrfi_GDO0_BIT_ So which ever bit is __mrfi_GDO0_BIT_ it is being set to 0

    Using "find in files" you will find
    BV = #define BV(n)      (1 << (n))

    and  __mrfi_GDO0_BIT_ is
    #define __mrfi_GDO0_BIT__                     6

    P2SEL register bit 6 is set to 0

    I used the IAR Edit / Find and Replace / Find in Files to search the ez430-RF2500 files even though I do not have that project open. It is a life saving tool once you get use to it.

  • Ps  Now use Find to search the MSP-430 user guide for P2SEL to see the function of P2SEL bit 6

  •  

    Great! Things are becoming clear. I will start using the find in files utility.

    H Stewart said:

    P2SEL can effect Port 1 or 2 depending which bit is set to 1 or 0.

    How can P2SEL affect Port 1?

    When P2SEL bit 6 is set to 0, P2.6 becomes General I/O instead of Xin. In the mrfi_board_defs.h, I don't see P2DIR being set anywhere. Will P2.6 be input or output?

    Isn't explicitly writing (1<<(n)) more clear, than using a BV?

     

     

     

     

  • Hithesh said:
    How can P2SEL affect Port 1?

    This comment relates to the MSP430 devices with a PxSEL and a PxSEL2 and setting peripheral priorities. This is not related to the F2274 in the ez430 kit.

    Hithesh said:
    I don't see P2DIR being set anywhere.

    Using find in files I see many cases of P2 pins being set by P2DIR in led_defs.h, DEMO_ED.c etc. I do not know which project you have loaded so I do not know if your project uses this port. Reviewing the schematic (found at http://focus.ti.com/docs/toolsw/folders/print/ez430-rf2500.html#Technical Documents under Hardware design)  for the ez430-RF2500 pin 2.6 goes to P13 on the circuit board and is labeled as the output for GDO0 which could be used to monitor the radio. Be sure you are searching project and all include files  by ticking the box in find in files.

    Hithesh said:
    Will P2.6 be input or output?

      After a reset or power up all I/O defaults to inputs (per page 2-4 para 2.1.2. in the 22x2 user guide)  therefore if P2.6 is not specifically set to an output with P2DIR it will be an input.

    Hithesh said:
    Isn't explicitly writing (1<<(n)) more clear, than using a BV?

    Yes....

     

  • Thanks for the reply.

    I just thought setting/Resetting P2DIR after configuring P2SEL would have been more clear, rather than doing it in a different file.