This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC3000 taking to long time to send message in a loop

1512.teratermandShark.zipHi

I have written simple form based application which perform following task with adapter
1.  PC application transmit 20 bytes of data to adapter (Adapter is connected to CC3000 via SPI)
2.  On reception of 20 bytes adapter send 8 bytes of data to PC application
3.  On reception of this 8 bytes PC application repeat process again from step 1.
So my application is basically making a loop where application is sending a 20 bytes of data only when it receives ack of 8 bytes from adapter. This process will make sure 20 bytes of data completely received by adapter.
So I am doing above operation for 1000 cycle and calculate the amount of bytes transmitted per second which is coming around 1000 bytes/sec ( 50 MSG'S of 20 bytes per second)

This operation seems very slow to me as per stated speed of CC3000 device.
I am attaching a NS_UARTD logger along with Wireshark trace.
Please let me know if all the time is consumed in between PC and CC3000 means there is delay in between CC300 device and PC network card.
From Wiresark trace it look like one cycle of the operation(Sending 20 bytes and receiveng 8 bytes) taking itself long period of time and making overall process slow.

Please confirm if this shortcoming is from CC3000 itself or if there is any fix for it.
I used the latest patch available in web to perform this test

  • The CC3000 "speed" you are referring to is likely for transmitted a large chunk of data into the air. The problem here is you are transmitting a small chuck and waiting for an ack. So between each transmission you have network and processing latencies. In addition to this there is the SPI bottle neck between your MCU and the CC3000.

    If the ACK is only ensuring that 20 bytes of data was received by the remote host, you can probably get rid of it. TCP has its own overhead as part of the protocol which ensures that the data is received in order.

  • This 8 byte is not only an ack for transmitted message but in actual scenario it will confirm if all the operations in adapter are completed successfully.

    But in the above mention scenario I am only sending 20 bytes of data and receiving 8 bytes of data from adapter and adapter is not performing any other task.

    I just wanted to calculate the throughput of Tx Msg in this scenario.

    Is it possible to do the same operation at your end and comment on Tx rate?

    I am sharing client code implemented in C# and server code implemented for adapter. You can integrate this code in your adapter's firmware.

    I just wanted to verify if you are also getting the same throughput.

    Any comment on this will really help me a lot. I would really appreciate if you can share your input on this.

    0741.ToShare.zip