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.

Porting the CC3000 Host Driver to MSP430f5438a

Other Parts Discussed in Thread: MSP430F5438A, MSP430F5438

As the title suggests, I am trying to port the libraries over.  I already have the libraries working on the 5739, but I need more memory for my application, and the 5438 has much more.  When trying to port over the SPI code, I noticed that it uses P2IE and P2IFG.  I was going to use the SPI port on port 9 of 5438, but when I changed P2IE to P9IE, the compiler told me that those do not exist.  Sure enough, only P1IE and P2IE are defined in <msp430f5438a.h>.  And unfortunately, there is no SPI port on port 1 or 2 of the 5438.  

What should I do?  Should I just move the interrupt pin to port 2, and leave the rest of the SPI on port 9?  

Are there any better porting guides than this one?

http://processors.wiki.ti.com/index.php/CC3000_Host_Driver_Porting_Guide

Thank you

  • Nathan,

    I am not sure which pin you're referring to, but IRQ pin must be placed in an interrupt capable port of the MSP430 which is usually only PORT 1 and 2.
    It doesn't matter which GPIO it is, just that it triggers it correctly. Therefore, you can carry the settings over from the Port 2 settings used for IRQ.

    There is no need to have the SPI physically on the same port as the IRQ and WLAN_EN.

    Regards,
    Gustavo

  • Nathan,

    Have you had a chance to look into the Basic WiFi App for the MSP430F5438?

    http://processors.wiki.ti.com/index.php/CC3000_Wi-Fi_MSP-EXP430F5438#Supported_Applications   

    Regards,

    Miguel

  • Miguel,

    Thank you! This will hopefully save me a lot of time.

    Nathan

  • Excuse me.

    Do you find solution to solve MSP430F5438 to link CC3000.
    I use http://processors.wiki.ti.com/index.php/ CC3000 _Wi Fi_ MSP-EXP430F5438。

    but it can not work

  • Hello Hsiung Chai-Wei,

    The following link should work for you: http://processors.wiki.ti.com/index.php/CC3000_Wi-Fi_MSP-EXP430F5438#Supported_Applications

    If that doesn't work, you can download the Basic Wi-Fi app for the 5438 directly from here: http://www.ti.com/lit/sw/swrc241/swrc241.zip

    Regards,

    Kelvin

  • Dear Kelvin,

    I have been use http://www.ti.com/lit/sw/swrc241/swrc241.zip for a long time.

    I use IAR "NEXT STATAEMENT and breakpoint" ,  but it shut down at  wlan_start(0).  P1.7 WLANENABLE is already high.

    My MSP430F5438 is not MSP-EXPF5438, but I already set pin P1.3 for IRQ
                                                                                                                    P1.7 for WLANENABLE

                                                                                                                    P5.6 for UART_PIN_TXD   
                                                                                                                    P5.7 for UART_PIN_RXD

                                                                                                                    P9.4 for RF_SPI_SIMO    

                                                                                                                    P9.5 for RF_SPI_SOMI

                                                                                                                    P9.0 for RF_SPI_CLK

                                                                                                                    P9.3 for RF_SPI_CS 

  • It is SHUT DOWN at  SimpleLink_Init_Start in wlan_start(0) .

  • Dear Kelvin,

    The same problem for me.  http://e2e.ti.com/support/low_power_rf/f/851/t/201415.aspx

    wlan_start(0) function call is blocking on 

    SimpleLinkWaitEvent(HCI_CMND_SIMPLE_LINK_START, 0);

    (within SimpleLink_Init_Start)

  • Hello Hsiung Chai-Wei,

    So are you testing this on a custom board?  If so, it may be easier for you to evaluate this solution with the experimenter board, which can be found here: https://estore.ti.com/MSP-EXP430F5438-MSP430F5438-Experimenter-Board-P1508.aspx  It sounds like something is going on with your SPI line.  Have you looked at the SOMI line to see if the CC3000 responds with anything on this line?

    Regards,

    Kelvin

  • Hi, 

    Did you see if the wlan interrupt was triggered. And how about the state of the SPI?

    Pedro 

  • DEAR Pedro5084,

    Wlan interrupt was triggered means WLAN IRQ high???

    And then,I should test SPI PIN.

    I will test it.

    THANKS


  • Dear Kelvin,

    I use customer borad.

    I will test SPI PIN.


    how should SPI pin status be?(HIGH or LOW)
    MISO    

    MOSI

    CLK
    STE

  • Hello Hsiung Chai-Wei,

    After a command is issued, the CC3000 should assert the IRQ line.  The master will then issue a read command, then the CC3000 will send the response data.  You should observe the CC3000 responce back on this MISO line.  The sequence of events is detailed further in the CC3000 Host Porting Guide here: http://processors.wiki.ti.com/index.php/CC3000_Host_Programming_Guide

     

    Regards,

    Kelvin

  • Dear Kelvin,

    I check SPI.

    void halRfSpiInit(void)
    {
        /* Setup CS to be used as GPIO */
        RF_PORT_SEL &= ~RF_SPI_CS;         
        RF_PORT_OUT |= RF_SPI_CS;
            RF_PORT_DIR |= RF_SPI_CS;
        
        // Set up pins used by peripheral unit
        RF_PORT_SEL |= RF_SPI_SIMO + RF_SPI_SOMI + RF_SPI_CLK;
        RF_PORT_DIR |= RF_SPI_CLK + RF_SPI_SIMO;
        RF_PORT_DIR &= ~RF_SPI_SOMI;
        
        RF_PORT_REN |= RF_SPI_SOMI;                                   // Pull-Ups on RF Interface SOMI
        RF_PORT_OUT |= RF_SPI_SOMI;                                   
        RF_PORT_SEL |= RF_SPI_SIMO + RF_SPI_SOMI + RF_SPI_CLK;

        // Initialize USCI_B1 for SPI Master operation
        UCB0CTL1 = UCSWRST;                                   // Put state machine in reset
        UCB0CTL0 |= /*UCCKPH +*/ UCMSB + UCMST  + UCMODE_0 + UCSYNC ; // 3-pin, 8-bit SPI master
        // Clock polarity select - The inactive state is high
        // MSB first
        UCB0CTL1 |= /*UCSWRST +*/ UCSSEL_2;                         // Use SMCLK, keep RESET
        
        UCB0BR0 = 0x10;                                          // Initial SPI clock must be <400kHz
        UCB0BR1 = 0;                                           // f_UCxCLK = 16MHz/16 = 1MHz
        // Release for operation
       UCB0IE &= ~(UCTXIE + UCRXIE);
           
        UCB0CTL1 &= ~UCSWRST;
        UCB0IFG &= ~UCRXIFG;
    }

    I didn't find where is wrong.

    This code is download from TI.

    Does UCCKPH   UCCKPL   is problem?

    Edward

  • Dear Kelvin,

    SIMO and CLK are always low.

    When WLAN_ENABLE

    IRQ goes to low first.

    When hci_command_send(HCI_CMND_SIMPLE_LINK_START, ptr, sizeof(SimpleLink_Init_Start_t));

    SOMI ,Cs,PWREN,VCC goes to low.

    Then it shut dowm at SimpleLinkWaitEvent(HCI_CMND_SIMPLE_LINK_START, 0);

    Edward