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.

Simple Link to FR5738

Other Parts Discussed in Thread: MSP430FR5739, MSP430F249

Hi,

I am porting sensor application code to FR5738 and while debug the code gets stuck up in  wlan_start(0);

And void WriteWlanPin( unsigned char val ) is pin 4.1, but i have commented out P4.1 as i have different board. May i know how to go around when i have different board and run cc3000 module. The code is written according to MSP430FR5739 EVM module. I am getting difficulties with editing this code as per my board.

  • Hello Nikit,

    on the FR5739 board pin 4.1 is tied to the CC3000 PWR_EN pin.  As the pin name implies this pin is used to enable power to the CC3000.  You will need to map a pin from the MSP to the CC3000 PWR_EN pin.  You can't just leave this pin tied high in most cases either as it is useful to be able to reset the CC3000 under different circumstances such as changing into smartconfig mode.


  • Thank you for reply. My VBAT_EN of c3000 is connected to J.3 of FR5738. I enabled these pin and made changes. My code is getting stuck in 

    if (ulSpiIRQState)
    {
    //
    // wait till the IRQ line goes low
    //
    while(tSLInformation.ReadWlanInterruptPin() != 0)
    {
    }
    }

    My SPI_IRQ line is P1.4 from P2.3 and VBAT_EN is P4.1 to J.3

    Why am i getting stuck in code?

  • I assume VBAT_EN  is the same as PWR_EN?

    Is this a custom board you developed?  If so, is the VCC_3.3V rails capable of supplying 1.0 A during start-up?  if the power isn't good when the CC3000 is enabled it won't start reliably.

    Have you used a scope to verify that the PWR_EN pin is going high and the SPI_IRQ isn't going low? 

  • I haven't checked. Its my custom board. I am still stuck there. And it has to supply 1A as it does in 5739 EVM. I am giving supply through USB same like 5739 EVM board. Code stuck's in 

    if (ulSpiIRQState)
    {
    //
    // wait till the IRQ line goes low
    //
    while(tSLInformation.ReadWlanInterruptPin() != 0)
    {
    }

    It reads wlaninterruptpin from 

    long ReadWlanInterruptPin(void)
    {
    // Our code is P1.4
    //return (P2IN & BIT3);
    return (P1IN & BIT4);
    }

    And this bit is always on if i check in registers in debug mode?

    What is the problem?

  • Hi,

    The USB can only supply 500mA (if supported, some USB ports only can supply 100mA).  The 1A requirement is for the 3.3V voltage regulator.  The regulator (with bypass caps) needs to be able to supply a 1.0A  transient roughly for 20uS.

    I am questioning this because I assume you are using a FR5739 Demo application unmodified except for the pin remapping.  If you send me your schematic I will have a look for you.

  • Yes i haven't changed much code  as only two pins are changed and i am using basic wifi application code. Have sent you my schematic. Let me know soon what is the problem.

    Thank you.

  • Hi,

    Thanks for the schematic.  do you have another page that shows the 5V to 3.3V regulator?  Also, I don't see were VCC_HOST comes from; it only appears to be connected to VIO.

    I will review further

  • I am not able to trace any code how cc3000 makes IRQ line low? As, ASSERT_CS makes SPI_CS line low. There's no function for SPI_IRQ.

  • I am not able to trace any code how cc3000 makes IRQ line low? As, ASSERT_CS makes SPI_CS line low. There's no function for SPI_IRQ.

  • And they have told in host programming guide that SPI_IRQ line is made low by cc3000. I am not able to trace any code how cc3000 makes IRQ line low? As, ASSERT_CS makes SPI_CS line low. There's no function for SPI_IRQ. It happens in SPI ISR code or hardware does this?

  • First, I still don't see the 5V to 3.3V regulation section in the schematic.  What is the Voltage regulator part#?

    Second, the IRQ line is driven by the slave (CC3000) only.  This is an input line to the Host (MSP) used by the Slave to:

    a) notify the Host that there is a message pending

    b) as a handshaking line to the Host that the Slave is ready to receive data.

    Please follow this diagram for reference:

    http://processors.wiki.ti.com/index.php/CC3000_Host_Programming_Guide#First_Host_Write_Operation

    It appears as though you are stuck at (b) in the diagram.  Very little has happened between the host and the slave at this point.  If (b) reliably fails then I suspect the hardware but please verify on the scope the signalling to at least (b).

  • I don't know part number.

    You are right, I am stuck at(b) in diagram. How does this line goes low? Its done through code or cc3000 makes it low when it is on.? 

    And if CC3000 automatically makes IRQ line low, does my hardware pin not responding when cc3000 tries to make pin low?

  • When the CC3000 first powers up (PWR_EN pin goes high) the CC3000 forces its IRQ pin low to indicate to the HOST processor that it has powered up and booted OK.  Therefore, I suggest it hasn't powered up OK.  Can you find out what the part# is?

  • Does this CC3000 has external supply of 3.3V rather than USB supply? If it has external so only my device is not starting and of that external supply device you asking me part number?

  • I'm sorry, I don't understand your comment.  What I am asking for is the part-number of the 5V to 3.3V Voltage regulator because if this part is inadequate than the CC3000 will not start correctly.

  • Hello schneiderham,

    I had a problem with cc3000 chip wifi when I tried to communicate between msp430f249 and cc3000. As a result,

    it stuck forever at  LINE 1. I think that it may be relative to voltage regulator 5to3 V. I will send to you my schematic and datasheet of this voltage regulator 5to3 V 4265.tc55microchi[p.pdf. Hopely, you can help me as soon as possible. Thank you so much!

    ////

        //
        tSLInformation.WriteWlanPin(WLAN_ENABLE); // VBAT_SW_EN

        if (ulSpiIRQState)
        {
            //
            // wait till the IRQ line goes low
            //
            while(tSLInformation.ReadWlanInterruptPin() != 0)
            {

            }
        }
        else
        {
            //
            // wait till the IRQ line goes high and than low
            //
            while(tSLInformation.ReadWlanInterruptPin() == 0)
            {

            }

            while(tSLInformation.ReadWlanInterruptPin() != 0)
            {

                        LINE 1
            }

        }

    //////////

**Attention** This is a public forum