4 Replies Latest reply on Mar 18, 2014 8:06 AM by vavc

    FX2LP-CY7C68013A Isochronous 3pkts/uFrame autoin not working!


      Hi everybody,


      I'm getting a strange error with CY7C68013A.


      An image sensor is filling the endpoint FIFOs in AutoIN mode and data is sent through an Isochronous pipe. If I send 1pkt/uFrame, data are correctly received by the host, if I send 2 or 3 iso pkts/uFrame, I get an error from the host controller (E0000B00:Iso Request Failed and every packet has status E0000011: XACT error).


      FIFO is configured with AUTOIN and ZEROLENIN.


      Here is the code:

                   case Alt3_IsocIN:                 // Only using endpoint 2, zero the valid bit on all others                 EP2CFG = 0xD8;  // EP2 is DIR=IN, TYPE=ISOC, SIZE=1024, BUF=4x                 SYNCDELAY;                  EP2FIFOCFG = 0x0d;                 SYNCDELAY;                                  EP1OUTCFG = EP1INCFG = EP4CFG = EP6CFG = EP8CFG = 0x00;                 SYNCDELAY;                      // Clear out any committed packets                 FIFORESET = 0x80;                 SYNCDELAY;                 FIFORESET = 0x02;                 SYNCDELAY;                 FIFORESET = 0x00;                 SYNCDELAY;                      // This register sets the number of Isoc packets to send per                 // uFrame.  This register is only valid in high speed.                 EP2ISOINPKTS = 0x03; // with EP2ISOINPKTS = 0x01 WORKS!!!

      and the descriptor:

      ;; Isoc OUT Endpoint Descriptor       db   DSCR_ENDPNT_LEN   ;; Descriptor length       db   DSCR_ENDPNT       ;; Descriptor type       db   02H               ;; Endpoint 2 and direction OUT       db   ET_ISO            ;; Endpoint type       db   00H               ;; Maximun packet size (LSB)       db   14H               ;; Max packect size (MSB) 10100b 3x1024 byte packets/uFrame       db   01H               ;; Polling interval

      I tried to manual flush the FIFO and in this case I correctly receive 3 pkts/uFrame!!!


      Unfortunately I've no hardware protocol analyzer, so I cannot give deeper info about the isochronous transaction!


      Thank you in advance!