How to different the delta and bus interval counter in ITP packet?

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

cross mob
Anonymous
Not applicable

 Hi 

   

 

   

Good day. In Superspeed, there are two 3 info that we need to retrieve from the ITP packet. However i am not sure how to retrieve them from the 32 unsigned bit from ITP in Cypress.

   

 

   

There are 3 info: 

   

1) Bus interval counter

   

2) Delta

   

3) Bus Interval Adjustment Control

   

 

   

I am using 

   

apiRetStatus = CyU3PUsbGetDevProperty (CY_U3P_USB_PROP_ITPINFO, &ITP_value);

   

to get the value from DevProperty. So now i got 32 bit ITP_value, but how can get each info separately?

Besides that, how to check for Delay Flag(DF) in Link control Word of ITP packe??

Really appreciate who can help. Thanks.

   

 

   

Best Regards
ChongHan

0 Likes
6 Replies
Anonymous
Not applicable

 Hi guys

   


Can help for the problem above? I am still can't find the solution yet. I didn't have any Hardware Analyzer to see it. 

Thanks guy. 
 

0 Likes
Bob_Marlowe
Level 10
Level 10
First like given 50 questions asked 10 questions asked

When nobody here has the knowledge to answer your quest, there is the choice to create a "MyCase" which will be ansewerd by Cypress directly. To do so, at top of this page "support&Community -> Technical Support -> Create a MyCase".

   

 

   

Bob

0 Likes
Anonymous
Not applicable

 Thanks Bob, just know it can be done by this way. 

0 Likes
Anonymous
Not applicable

The CyU3PUsbGetDevProperty function, when used as you have done, will return a 32-bit value in "ITP_value".

   

Here, ITP_value[13:0] == ITP_value & 0x3FFF == microframe counter which indicates which of the 8 125-microsecond micro-frames last occurred... This is based on ITPs recieved from Host

   
    and ITP_value[26:14] == (ITP_value >> 14) & 0x0FFF == The delta value in the last ITP received   
   
        
   
        
   
    For bus interval adjustment control, you need to send a DEV_NOTIFICATION with BUS_INTERVAL_ADJUSTMENT_MESSAGE as the notification subtype and the interval adjustment value in the body of the packet. See the link      http://www.cypress.com/?app=forum&id=167&rID=97628 where I've explained how to do this.   
   
        
   
        
   
        
   
    However, there is no way to get the LCW bits (including DF and DL) of any TP (including ITP).   
0 Likes
StSt_296371
Level 1
Level 1

Hello,

   

I read this entry and I would like to know if any ITP is notified to the application regardless whether the DL flag in the LCW is set or not? Because there is a hint in the USB 3.0 spec that in case the DL flag is set a device may ignore that ITP.

   

What does the FX3 in such a case?

   

Regards,

   

stz

0 Likes
Anonymous
Not applicable

Fx3 device ignores ITP's with DL bit set.

   

This cannot be worked around as the silicon is designed that way.

0 Likes