We have been using FX2 CY7C68013A for over 10 years.
Recently, we discovered that on certain Dell servers, a feature of our product stopped working. This feature depended on EP1 OUT which was configured as a bulk endpoint with a max packet size of 64 bytes. On the failing machines, the bulk transfers on this endpoint were 512 bytes.
I noticed that before re-enumeration, the FX2 sets EP1 OUT as having a max packet size of 512. On the failing machines, our product after re-enumeration gets assigned the same USB address as it had before enumeration.
I have seen Claudio Reginelli's post, which *could* be explained by the same root cause: FX2LP CY7C68013A Hi Speed Bulk problem on latest generation laptops
Can anyone point me in the direction of where this bug might be?
Update: The issue appears to be caused by the Texas Instruments USB ports. Intel-based ports on the same machine do not exhibit the same problem.
The faulty ports are on a 3-port PCI card. The driver is tihub3.sys v1.12.18
Message was edited by: Conor McQuaid
In the above post you mentioned the following:
"I noticed that before re-enumeration, the FX2 sets EP1 OUT as having a max packet size of 512."
- This should not be the case. The EP1 endpoint is a 64 byte endpoint.
So your descriptor of the EP1 endpoint should be as follows:
;; Endpoint Descriptor
db DSCR_ENDPNT_LEN ;; Descriptor length
db DSCR_ENDPNT ;; Descriptor type
db 01H ;; Endpoint number, and direction
db ET_BULK ;; Endpoint type
db 40H ;; Maximun packet size (LSB)
db 00H ;; Max packect size (MSB)
db 00H ;; Polling interval
Notice above that Max packet Size is 0x0040H
So, please make sure that the MaxPacket size is reported correctly as 64 and not as 512
Let me know if it is already done this way.