Recently, I programmed with Arduino Due (84 MHz ARM-M3 ) board and try to get the max data rate of XBee Wi-Fi through SPI interface.
I simulate data with ASCII code from "A " to “Z” and set the test frame size into 1024 Bytes, and set the SPI clock into 1 MHz, 2MHz and 3MHz.
When set to 1 MHz, the speed rate is around 430 Kbps, then when increasing it into 2MHz and send data into Xbee wi-fi again, the speed rate do not increase, the speed rate is still around 430Kbps.
Same thing happen when set into 3 MHz SPI clock.
Is there any bottleneck inside XBee wifi to send continuous data with speed higher than 430Kbps ?
The reason might be the on-board MCU of XBee Wi-Fi module; it is only a low power consumption solution. When it receive the raw data from Arduino Due through SPI interface, TCP/IP header will be added to raw data and transfer into another SPI interface, which connecting with Wi-Fi chip. So not matter how much we increasing the input rate of XBee (e.g. from 1 MHz to 3MHz), the bottleneck is the on-board ARM of XBee Wi-Fi module itself, since this ARM could not re-package the input data to compliable with TCP/IP protocol and transfer them over 430Kbps.
Is this reason right?