

Also I'm able to recreate this behaviour 100% using several layouts (including the FTDI eval modules) with the FT245RL as well as the FT245RQ.
#FT245R USB FIFO DRIVER WINDOWS 7 GENERATOR#
I forced a retransmission by actively destroying the first packet (using a signal generator and some transistors I bodged into the USB wire) Note that the USB host used here is actually my PC with the most recent FTDI driver (2.12.10) so the embedded PC is not the issue here. In the retransmission this byte is changed to 0x41, which is the first bytee of the following packet.

Each packet begins with 0x31 0圆0 which is some protocol header internal to FTDI's driver. The data to be send is split into two packets.

Here the FT245R is used to send log entries. In the screenshot of my protocol analyzer I attached, you can see the capture of a test I did on another device. This time the USB-Host receives the packet correctly and because the checksum is correct, it forwards the corrupted data to the system. Even worse, it recalculates the packet checksum to reflect the corrupted byte. Now when the FT245R "resends" the packet, it overwrites the first byte of the retransmission with the first byte from the next (yet to be send) packet and thereby corrupting the data. In the meantime further data was written to the FIFO by the uC on the device. This is within USB spec, so no problem here. it found a checksum error (even though my protocol analyzer said otherwise) and issues a retransmission of the USB packet. For some reason the host controller decides the packet wasn't transferred correctly, i.e. The data is transferred into the FIFO chip correctly and transmitted to the USB-Side correctly. After investigating the issue it seems as if our problem is caused by the combination of a somewhat picky USB-Host and the FT245R chip: Data is transmitted from the device to the PC. Recently we spotted some protocol errors on one device communicating with an embedded PC. Hi Forum! I have been in contact with FTDI support for some weeks now, but so far I havn't gotten much of an answer besides them never having heard of my problem.
