To use EP6IN as 1024 size better than 512.

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

cross mob
Anonymous
Not applicable

Hello,

   

On CY7C68013, I want to use 1024 size enpoint in packet better than 512 size for EP6.
It should be get more transfer speed.

   

I've modified below three parts only. But it operates incorrect.
Are there more parts to run as 1024 ?

   


1.  in FX2_to_extsyncFIFO.c file.

   

void TD_Init(void)       
{
  // set the CPU clock to 48MHz
  CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1);
  SYNCDELAY;

   

  EP2CFG = 0xA0;     // EP2OUT, bulk, size 512, 4x buffered
  SYNCDELAY;      
#if 0
  EP6CFG = 0xE0;     // EP6IN, bulk, size 512, 4x buffered    
  SYNCDELAY;

   

#else//test 1024 size packet
 EP6CFG = 0xE8;     // EP6IN, bulk, size 1024, 4x buffered    
 SYNCDELAY;
#endif

   


............

   

}

   

2. in Dscr.a51 file
;; Endpoint Descriptor
      db   DSCR_ENDPNT_LEN      ;; Descriptor length
      db   DSCR_ENDPNT          ;; Descriptor type
      db   86H                  ;; Endpoint number, and direction
      db   ET_BULK              ;; Endpoint type
   ;;   db   00H                  ;; Maximum packet size (LSB)
    ;;  db   02H                  ;; Maximum packet size (MSB)
      db   00H                  ;; Maximum packet size (LSB)
   db   04H                  ;; Maximum packet size (MSB) for 1024 size.

   

      db   00H                  ;; Polling interval

   

 

   

3.  in FX2_to_extsyncFIFO.c file.

   

BOOL DR_SetConfiguration(void)  
{
  if( EZUSB_HIGHSPEED( ) )
  { // FX2 enumerated at high speed

   


#if 0  //test 1024 size
 SYNCDELAY;                  //
    EP6AUTOINLENH = 0x02;       // set AUTOIN commit packet length to 512 bytes. high byte
    SYNCDELAY;                  //
    EP6AUTOINLENL = 0x00;  //low byte. thus, 0x200 = 512.
    SYNCDELAY;        
#else
 SYNCDELAY;                  //
    EP6AUTOINLENH = 0x04;       // set AUTOIN commit packet length to 1024 bytes. high byte
    SYNCDELAY;                  //
    EP6AUTOINLENL = 0x00;  //low byte. thus, 0x200 = 512.
    SYNCDELAY; 

   

#endif

   

 

   

...........

   

}

0 Likes
1 Solution
Anonymous
Not applicable

Dear Chris.R,

   

Thanks your advise

View solution in original post

0 Likes
5 Replies