32 bit addressing over USB

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

cross mob
Anonymous
Not applicable

 Hey all -

   

 

   

The FX3 requires 32 bit addressing, but everything that goes over USB2 (and, at the very least, control endpoints on USB3) is 16 bits.  How are the extra 16 bits pushed to the FX3?  If you have the fields:

   

 

   

int requesttype, int request, int value, int index, char *bytes, int size, int timeout

   

 

   

... in your USB control message, are you pushing the extra 16 address bits over the index field?

   

 

   

Thanks for your time!

0 Likes
4 Replies
Anonymous
Not applicable

When you say 32 bit I assume you're talking about the GPIF II interface. The USB data is sent during the data phase, what you're looking at is the setup packet of control transfer. The data is packetized and sent during the data phase.

   

Regards,

   

Anand

0 Likes
Anonymous
Not applicable

 Anand -

   

 

   

Yes, I am talking about the GPIF II interface.

   

 

   

So there is a setup phase, and a data phase?  Can you link me to documentation about these two phases?

   

 

   

If not, at the very least, can you explain the format of the data that is sent in both?

   

 

   

Thanks for your time!

0 Likes
Anonymous
Not applicable

 Try http://www.beyondlogic.org/usbnutshell/usb-in-a-nutshell.pdf for the basic USB stuff. This has the necessary details.

   
   

Regards,
Anand

0 Likes
Anonymous
Not applicable

 Anand -

   

Okay, there was definitely a mis-understanding.

   

I now understand that the FX3 chip does _not_ use GPIF2 for firmware programming, which leaves me with my original question:

   

1) What commands are you sending the CPU to program the firmware?

   

This is a really simple question, and I would love to see a real explanation for how the firmware gets programmed into RAM.

   

Thanks for your time.

0 Likes