• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » Low Power RF & Wireless Connectivity » Low Power RF Hardware & Tools Forum » CC2500 + MSP430F2013 and Ez430-RF2500 with slaa325a
Share
Low Power RF & Wireless Connectivity
  • Forums
  • Announcements
  • Files
  • E2E Wiki
Options
  • Subscribe via RSS

Forums

CC2500 + MSP430F2013 and Ez430-RF2500 with slaa325a

This question is answered
Andrea TI
Posted by Andrea TI
on Mar 24 2012 09:06 AM
Prodigy40 points

Hello all,

Im trying to send a packet from  CC2500 + MSP430F2013 to Ez430-RF2500 using the CC1100/2500 Code Library (slaa325a).
In the Ez430-RF2500 it works fine, but in the CC2500 + MSP430F2013 it doesnt work and in this last configuration I ve fixed all in the library im using except the "GDO0" cause i really dont know where i can joint it(i didnt have much Pins MSP430F2013). The code is compiled well and i can run it as well, but the radio doesnt send anything to the Ez430-RF2500. my question is: do you have any ideas about this problem??

So please help me.

Regards


Andrea

slaa325a Ez430-RF2500 CC2500 MSP430F2013
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • john doe95743
    Posted by john doe95743
    on Mar 25 2012 13:43 PM
    Intellectual570 points

    Hi.

    Since you have the ez430-rf2500 did you manage to get a successful communication between the two rf2500t boards?

    When i tried the slaa325a library i noticed that most of the time the data were corrupted and the device didn't behave exactly as expected. I also found out that some TI notes pointed out some of the problems of the library ( i didn't find where or how though ).

    From what i remember about that library is that while issuing the commands over the spi, the interrupts aren't blocked and thus, i suspect, they can get corrupted. Did you manage to solve that problem? If not, probably you should check that out.

    Regards.

    JD

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Andrea TI
    Posted by Andrea TI
    on Mar 25 2012 16:29 PM
    Prodigy40 points

    Hi, thanks a lot, the two rf2500t boards work perfectly with that library, but i vent understood the part about the interrupts: can you explain it better? when the CC2500 + MSP430F2013 arrive to the function void RFSendPacket(char *txBuffer, char size)" , on the rf2500t board' side nothing happens.


    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • john doe95743
    Posted by john doe95743
    on Mar 25 2012 17:32 PM
    Verified Answer
    Verified by Andrea TI
    Intellectual570 points

    Andrea TI

    Hi, thanks a lot, the two rf2500t boards work perfectly with that library,

    the led it is supposed to switch each time you push the button. In my case, the led sometimes switched, sometimes blinked, sometimes did nothing at all. If in your case it works fine well...

    lucky you :)

    Andrea TI
    but i vent understood the part about the interrupts: can you explain it better?

    If you look at the code related to the spi primitives you may notice that there's nothing that prevent an ISR from switching the context of the primitive itself. That means that an external event a glitch o anything else, may trigger an interrupt, and thus an interrupt service routine, which will corrupt the transmission over the spi, and the command given to the CC2500.

    If you look at the mrfi layer of the SimpliciTI, you may notice that most of the spi primitives contains 4 macro preprocessors, two of them, at the beginning of the routine, store the interrupt state and disable all the interrupts, the other two, at the end, restore the interrupt state, and enable the interrupt again. Those macro prevent an interrupt from triggering during the transmission over the spi, avoiding the corruption of the command given to the CC2500.

    Another proof of that may be ( I'm not so sure about that ) the fact that if you step through the code by means of the debugger, the device lock itself when reaching the waiting loops.

     

    Andrea TI
    when the CC2500 + MSP430F2013 arrive to the function void RFSendPacket(char *txBuffer, char size) , on the rf2500t board side nothing happens.

    Since you receive something when you transmit using the rf2500t, but you do not if you transmit using the MSP430F2013, you may try to step through the code to see what happening in both cases. I'm afraid i can't be very helpful on this matter since i'm not an expert, but you may need to check which pins have been used to connect the cc2500 to the MSP430F2013, and verify that the preprocessor macros have been adjusted properly and accordingly to the pinout.

    Regards.

    JD.


    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Andrea TI
    Posted by Andrea TI
    on Apr 04 2012 04:54 AM
    Prodigy40 points

    yes, i've disable Interrupt, I/O ecc.. before RFSetting and now works!

    It is working perfectly.

    Thank you very much.

    Regards, Andrea

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • john doe95743
    Posted by john doe95743
    on Apr 04 2012 09:56 AM
    Intellectual570 points

    Glad to hear that...

    Regards.

    JD

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • YongXiu Lim
    Posted by YongXiu Lim
    on Apr 16 2012 07:51 AM
    Prodigy80 points

    HI HI! :D Erm I also doing something similar to your coding. >.< if you don't may I ask you how to transfer data from your MCU to CC2500 and then transmit to eZ430 RF2500? 

    Which code should I debug? I also looking at the slaa325a. 

    THANK YOU! 

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • YongXiu Lim
    Posted by YongXiu Lim
    on Apr 16 2012 07:51 AM
    Prodigy80 points

    HI HI! :D Erm I also doing something similar to your coding. >.< if you don't mind I ask you how to transfer data from your MCU to CC2500 and then transmit to eZ430 RF2500? 

    Which code should I debug? I also looking at the slaa325a. 

    THANK YOU! 

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Andrea TI
    Posted by Andrea TI
    on May 12 2012 08:13 AM
    Prodigy40 points

    you need add this code:

     
      WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT

         //input_data=P1IN;          //Read only register
      P1OUT = 0x00;               // The outputs are low
      P1SEL = 0x00;               // Peripheral module function: I/O function is selected.
      P1DIR = 0x01;               // 1 -> Output; 0 -> Input;  
      P1REN = 0x00;               // Pullup/pulldown resistor disabled
      P1IES = 0x00;               // Interrupt Edge Select Registers
      P1IE = 0x00;                // Disable all PORTx interrupts
      P1IFG = 0x00;               // Clear all interrupt flags

       //input_data=P2IN;          //Read only register
      P2OUT = 0x00;               // The outputs are low
      P2SEL = 0x00;               // Peripheral module function: I/O function is selected.
      P2DIR = 0x00;               // 1 -> Output; 0 -> Input
      P2REN = 0x00;               // Pullup/pulldown resistor disabled
      P2IES = 0x00;               // Interrupt Edge Select Registers
      P2IE = 0x00;                // Disable all PORTx interrupts
      P2IFG = 0x00;               // Clear all interrupt flags

    before the SPI comunication with the radio ..

      // 5ms delay to compensate for time to startup between MSP430 and CC1100/2500
      __delay_cycles(5000);
      TI_CC_SPISetup();                         // Initialize SPI port

      TI_CC_PowerupResetCCxxxx();               // Reset CCxxxx
      writeRFSettings();                        // Write RF settings to config reg
      TI_CC_SPIWriteBurstReg(TI_CCxxx0_PATABLE, paTable, paTableLen);//Write PATABLE

    ecc...

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use