Hello, I have been using the CC3000 with a STM32F103x. My current implementation is working fairly well and on average I achieve about 3.5 Mbps with an SPI clock set to 9 Mhz, no complaints there.
I currently have a test server setup on my embedded system which receives data from a connected client and then echos the received data back (used to do data integrity testing). This is working pretty well, I can transfer GB's of data without error. The only issue I am running into is if I set a breakpoint or insert a large delay (50ms+) between the receive from the client and send/echo to the client, the CC3000 stops responding and I can no longer ping it.
It appears the CC3000 is having a RX buffer overflow issue from the wireless side. If I stop processing on the uC but continue to send from the PC then the CC3000 crashes.
Below is my basic test server code:
while(1) { //Receive data int32_t rcvlen = recv(cli_socket, (char*)rx_buf, 1500, 0); if(rcvlen > 0) { int32_t bytes_sent = 0; //Keep track of receive bytes total_bytes_received += rcvlen;
//NOTE:If delay or breakpoint put here then CC3000 stops responding! //Send all data back while (total_bytes_sent < total_bytes_received) { bytes_sent = send(cli_socket, &rx_buf[rcvlen - (total_bytes_received-total_bytes_sent)], total_bytes_received-total_bytes_sent, 0); if (bytes_sent > 0) total_bytes_sent += bytes_sent; } } }