CY7C68013A Bulk interrupt packet size

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

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?

Thanks,

-- Conor

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

0 Likes
1 Reply
Hemanth
Moderator
Moderator
Moderator
First like given First question asked 750 replies posted

Hi Conor,

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.

Regards,

Hemanth

Hemanth
0 Likes