Other Parts Discussed in Thread: CC3100
Tool/software: TI-RTOS
Dear All,
I hope you are doing fine.
I am working with TI CC3100 booster pack module and before i continue with the question, given below is my code for Wi-Fi module configuration and initialization. Please have a look at it.
WiFiCC3100_Object wiFiCC3100Objects[EK_TM4C1294XL_WIFICOUNT];
const WiFiCC3100_HWAttrs wiFiCC3100HWAttrs[EK_TM4C1294XL_WIFICOUNT] = {
{
.irqPort = GPIO_PORTC_BASE,
.irqPin = GPIO_PIN_6,
.irqIntNum = INT_GPIOC,
.csPort = GPIO_PORTB_BASE,
.csPin = GPIO_PIN_4,
.enPort = GPIO_PORTC_BASE,
.enPin = GPIO_PIN_7
}
};
const WiFi_Config WiFi_config[] = {
{
.fxnTablePtr = &WiFiCC3100_fxnTable,
.object = &wiFiCC3100Objects[0],
.hwAttrs = &wiFiCC3100HWAttrs[0]
},
{NULL,NULL, NULL},
};
/*
* ======== EK_TM4C1294XL_initWiFi ========
*/
void EK_TM4C1294XL_initWiFi(void)
{
/* Configure EN & CS pins to disable CC3100 */
GPIOPinTypeGPIOOutput(GPIO_PORTB_BASE, GPIO_PIN_4);
GPIOPinTypeGPIOOutput(GPIO_PORTC_BASE, GPIO_PIN_7);
GPIOPinWrite(GPIO_PORTB_BASE, GPIO_PIN_4, GPIO_PIN_4);
GPIOPinWrite(GPIO_PORTC_BASE, GPIO_PIN_7, 0);
/* Configure IRQ pin */
GPIOPinTypeGPIOInput(GPIO_PORTC_BASE, GPIO_PIN_6);
GPIOPadConfigSet(GPIO_PORTC_BASE, GPIO_PIN_6, GPIO_STRENGTH_2MA,
GPIO_PIN_TYPE_STD_WPD);
GPIOIntTypeSet(GPIO_PORTC_BASE, GPIO_PIN_6, GPIO_RISING_EDGE);
SPI_init();
EK_TM4C1294XL_initDMA();
WiFi_init();
}
After calling EK_TM4C1294XL_initWiFi(), the following code is used to start a TI RTOS WiFi driver instance.
// Initialize Wi-Fi parameters
WiFi_Params_init(&wifiSimpleLinkParams);
// Open Wi-Fi instance
wifiSimpleLinkHandle = WiFi_open(Board_WIFI, Board_WIFI_SPI, NULL, &wifiSimpleLinkParams);
// Validate Wi-Fi handle
if (!wifiSimpleLinkHandle)
{
// Abort
System_abort("Wi-Fi did not open");
}
Everything works fine with this code and i am able to access CC3100 booster pack module version information using sl_DevGet(SL_DEVICE_GENERAL_CONFIGURATION, &pConfigOpt, &configLen, (unsigned char *)(&ver));.
Now, I need to change the irq port and pin for WiFi module from PORTC & pin #6 to PORTL & pin #5. The problem is that when i change .irqPort in wiFiCC3100HWAttrs to GPIO_PORTL_BASE and .irqIntNum to INT_GPIOL, my code crashes when executing "wifiSimpleLinkHandle = WiFi_open(Board_WIFI, Board_WIFI_SPI, NULL, &wifiSimpleLinkParams);". I looked into the code to find out exactly where the code is exiting. I found out that code crashes when call to following function is made in WiFiCC3100_open().
Hwi_construct(&(object->wifiHwi), hwAttrs->irqIntNum, hostDriverInterruptHandler, &hwiParams, NULL);
It would be really helpful if anyone who has encountered this problem before or has knowledge about it can share some thoughts.
Thanks,
Muhammad Shuaib