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.

CC3000 Initialization Problems on Hardware Variants

Other Parts Discussed in Thread: MSP430G2553, MSP430F5529

I'm using the Adafruit CC3000 module with the TI MSP430 Launchpad with an installed MSP430G2553 and I am having trouble with some of the WiFi modules. I ordered 4 Adafruit Wifi Moldues and received what appears to be 2 hardware variants of the CC3000 chipset. One of the variants works perfectly, while the other hangs in the initialization of the driver in the hci_event_handler at:

if (tSLInformation.usEventOrDataReceived != 0)

I've kept everything the same and simply swap CC3000 modules and have confirmed the error only occurs on one variant. I have updated the driver and firmware packages on all modules. I have attached an image showing the two variants. The top chip (13220 85) is the one that hangs, while the bottom chip (12480 45) is the one that works fine.

I posted a similar question on the Adafruit forum but the problem seems to be in the variants of the TI CC3000 chipsets.  Are there any differences between these two chipsets?


Any suggestions how to debug this problem would be greatly appreciated.

  • After further investigation the problem appears to be updating the patches and firmware.  When I use CCS to load the driver patch the program gets stuck in the hci_event_handler at:

    if (tSLInformation.usEventOrDataReceived != 0  

    Any suggestions as to how to go about debugging this?  This is exactly the problem I'm trying to resolve by patching the device in the first place.

  • It appears as though the problem I am having is similar to that described in this thread:

    http://e2e.ti.com/support/low_power_rf/f/851/t/265783.aspx

    However, I am not entirely clear how to modify the patch programmer code to fix this issue.  

    Regardless, why might I be seeing this error despite using unmodified code and a TI MSP430 Launchpad with the stock MSP430G2553? 

  • Hi,

    Can you please check the IRQ line? Seems like the host MCU is missing the interrupts, and the host driver is not receiving any response for the command it sent.

    Ideally, this shouldn't be the case. But If you want to make any changes in the host, you need not use the patch programmer as such. You can change the host driver configuration from MSP430G2553 projects and download using CCS.

    Thanks & Regards,

    Raghavendra

  • I am having the exact same problem. I designed custom hardware and using an MSP430F5529 as the host. The CC3000 module I have looks like the problematic one described above.

    Before even trying to use the example applications, I downloaded the latest patch programmer for the MSP-EXP430F5529, and modified the hardware abstraction layer to reflect my pinout. I also changed the code to run at 8MHz since I don't have an external crystal.

    After tracing the software execution, I can see that the MCU is definitely receiving interrupts. I set a few breakpoints in the interrupt vector code and it is definitely hitting the breakpoint.

    The execution thread looks like this:

    Main (PatchProgrammer.c)
     initDriver (PatchProgrammer.c)
      wlan_start (wlan.c)
       SimpleLink_Init_Start (wlan.c)
        SimpleLinkWaitEvent (event_handler.c)
         hci_event_handler (event_handler.c)

    I also noticed that the MCU is receiving something from the CC3000 the first time it hits this point. When it executes this part of the code:

    if (*pucReceivedData == HCI_TYPE_EVNT)

    It jumps to the else:

     else

    {

    pucReceivedParams = pucReceivedData;

    STREAM_TO_UINT8((char *)pucReceivedData, HCI_PACKET_ARGSIZE_OFFSET, ucArgsize);

    And it continues to execute the function, until it gets stuck here:

    if (tSLInformation.usEventOrDataReceived != 0)

     

     

     

  • Hi Gerardo,

    Upto what stage are you able to progress exactly with respect to the SPI communication with the CC3000 (as per http://processors.wiki.ti.com/index.php/CC3000_Serial_Port_Interface_(SPI))?

    Thanks & Regards,

    Raghavendra

  • Thanks for the prompt reply Raghavendra.

    I kept playing with my custom boards a bit and decided to use a 2nd test unit to see if I was able to get further along. Fortunately, the 2nd unit went through the entire patch programmer code!

    Using the 2nd test unit (the good one), I set a breakpoint under event_handler.c at this line:

    if (hci_unsol_event_handler((char *)pucReceivedData) == 0)

    And noticed that the usReceivedEventOpcode, had a value of 0x4000 (HCI_SIMPLE_LINK_START) the first time it hit the breakpoint. I let it run again, and every time it would hit the breakpoint with different opcodes. Eventually, it successfully flashed the CC3000. Also noticed the board gets pretty warm.

    I plugged back the first unit, and I am not seeing the same opcode (0x4000) the first time it breaks. After I run it again, it just gets stuck waiting for data in the line I mentioned before. The board also does not get warm at all, so I am guessing either the module is broken or it is installed incorrectly.

    One last question though, I downloaded the patch programmer for the MSP430F5529LP which has a NEW icon on it to compare the files. I noticed that PatchProgrammer.c has a newer version of CC3000 firmware:

    This has not been advertised elsewhere. Which one should I use?

  • The version on the right ending in .24 looks like the current firmware release.  The one on the left is the previous firmware version. 

    Yes, the cc3000 boards with the FCC ID are newer and all the ones I have seen have come with the .24 (aka. v1.11) firmware on them. 

  • I am using the adfruit cc3000 board connected with Tm4c123Gxl .

    i am running the basic application on ccs. But irq line is always low. it is not responding and program is hanging there only..

    Please give me some suggestions.

    Please provide the information to start with CC3000