USBUART not sending 0 length packet after sending 64 bytes | Cypress Semiconductor
USBUART not sending 0 length packet after sending 64 bytes
There is a KB article that mentions that a bug is there in the USB component in Psoc Designer. The same bug was found in USBFS in creator as well. KB article: http://www.cypress.com/?id=4&rID=38107 I have added some more analysis on the problem from the PC side.
The problem is that when a few packets of size 64 bytes is sent; the data is received, but not shown by the Hyperterminal/ any Serial Port Application. But when we constantly send a lot of data over the Hyperterminal in 64 bytes size packets, we are able to see that data on the Hyperterminal. This happens because the application has a buffer where it keeps the data and waits for a smaller size packet/ zero length packet to indicate the finish of transfer. If the data transferred is more than the buffer size, the data is displayed. This is what happens when you send a lot of data continuously on the USBUART.
This buffer size was found to be 4K for Tera Term and Cool Term Applications.
If you send suppose 3K bytes of data (in 64 bytes packets), you will not see the data displayed. Now, if you send another 3K bytes of data (in 64 bytes packets) you will see the first 4K data on the display of the application and the rest 2K would be in the buffer. To confirm this, now send 2K bytes of data (in 64 bytes packets). You will see 4K bytes of data getting displayed, with the last 2K as what you last sent.