Program to update the Firmware of the CC3000 wlan module

Dependencies:   NVIC_set_all_priorities cc3000_hostdriver_mbedsocket mbed

The program will update the firmware version of the CC3000 wlan module to version 1.32. The update itself is cut off the texas instruments updater for the msp430 based code.

Connect the mbed with a serial terminal with 115200bd . The program read out the actual firmware version and ask to update. You have to press 'y' to start the update.

serial output:

***************************************
* CC3000 firmware update  1.32        *
***************************************
Checking connection to cc3000 chip ...
Found Firmware Version :  1.24
Found MAC Address : 70:FF:76:01:7F:F1
press y to start update
 update wlan driver ... Update wlan driver sucessfull
 update wlan firmware ... Update firmware driver sucessfull
 New Firmware Version :  1.32
***************************************
*           END                       *
*************************************** 

init.cpp

Committer:
dreschpe
Date:
2015-01-20
Revision:
0:638c06c36bc5

File content as of revision 0:638c06c36bc5:

/* mbed Microcontroller Library
 * Copyright (c) 2006-2013 ARM Limited
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#include "main.h"
#include "mbed.h"

#if (MY_BOARD == WIGO)

#include "NVIC_set_all_priorities.h"

/**
 *  \brief Wi-Go initialization
 *  \param none
 *  \return none
 */
void init() {
    DigitalOut PWR_EN1(PTB2);
    DigitalOut PWR_EN2(PTB3);

    // Wi-Go set current to 500mA since we're turning on the Wi-Fi
    PWR_EN1 = 0;
    PWR_EN2 = 1;

    NVIC_set_all_irq_priorities(3);
    NVIC_SetPriority(SPI0_IRQn, 0x0);     // Wi-Fi SPI interrupt must be higher priority than SysTick
    NVIC_SetPriority(PORTA_IRQn, 0x1);
    NVIC_SetPriority(SysTick_IRQn, 0x2);  // SysTick set to lower priority than Wi-Fi SPI bus interrupt
    PORTA->PCR[16] |=PORT_PCR_ISF_MASK;
    PORTA->ISFR |= (1 << 16);
}

#elif (MY_BOARD == WIFI_DIPCORTEX)

/**
 *  \brief Wifi DipCortex initialization
 *  \param none
 *  \return none
 */
void init() {
    NVIC_SetPriority(SSP1_IRQn, 0x0);
    NVIC_SetPriority(PIN_INT0_IRQn, 0x1);

    // SysTick set to lower priority than Wi-Fi SPI bus interrupt
    NVIC_SetPriority(SysTick_IRQn, 0x2);
}

#else

/**
 *  \brief Place here init routine for your board
 *  \param none
 *  \return none
 */
void init() {

}

#endif