Other Parts Discussed in Thread: MSP432E401Y, UNIFLASH, CC3135
Hardware: MSP432E401Y (Clock 120MHz) + CC3135MOD on a custome PCB
Software: CCSv10 + TI-RTOS + Simplelink WiFi
Hi.
I am using the WiFi module in transceiver mode (raw socket). I find that if I call the sl_Send() or sl_Recv() functions repeatedly the microcontroller will either crash on a Hardware Fault or the Simplelink driver will have a Fatal Error event.
The only way to prevent a crash is to call Task_sleep(2) after each sl_Send() or sl_Recv() function. However, this is not very efficient and slows down the communication process resulting in packets being missed.
Is there any way to remedy this problem so that I do not have to continuously call Task_sleep(2) after each sl_Send() or sl_Recv() function?
Is there a way to poll the Simplelink driver to see if sl_Send() or sl_Recv() are ready before calling them to prevent a crash?
I have tried to increase the Simplelink SPI bus speed and the DMA size but this has very little effect.
const SIMPLELINKWIFI_HWAttrsV1 wifiSimplelinkHWAttrs =
{
.spiIndex = MSP_EXP432E401Y_SPI3,
.hostIRQPin = CC3135_IRQ_INTR,
.nHIBPin = CC3135_nHIB,
.csPin = CC3135_SPI_CS,
.maxDMASize = 10240,
.spiBitRate = 20000000
};
const uint_least8_t WiFi_count = 1;
const WiFi_Config WiFi_config[1] =
{
{
.hwAttrs = &wifiSimplelinkHWAttrs,
}
};