cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

jacky_m
New Contributor

Hi

Originally, these two fields are filled with 0, and it can work normally.
But now there is the issue of voice synchronization, It seems that these two fields must be filled.

I have read the explanation of UVC spec, but still don't understand

I want to understand how they calculate. Can you give me a tutorial or a simple example?

Do I need to update PTS field once per frame? And how is SCR calculated?

Thank you !

0 Likes
1 Solution
Rashi_Vatsa
Moderator
Moderator

Edited:

Hello,

Is my understanding of the PTS field correct?

>> As per the UVC spec, PTS is the source clock time in native device clock units when the raw frame capture begins. The PTS is in the same units as specified in the dwClockFrequency field of the Video Probe Control response.

In the default UVC firmware (AN75779), the dwClockFrequency in probe control structure is set as 384 MHz which is the SYSTEM CLOCK of FX3.

0x00, 0x60, 0xE3, 0x16, /* Device Clock */

Please refer to this thread  Solved: CX3 timestamp - Cypress Developer Community  

Please refer to this KBA for getting 0.1us timestamp  How to Get a 0.1-µs Unit Timestamp with FX3 – KBA2... - Cypress Developer Community  

Q: Assuming that 0.033 (s) has passed, this value must be filled in 0.033 / (1/1000) = 33?

>> D42..D32 represents the frame number at the time the STC was sampled.

Regards,
Rashi

View solution in original post

0 Likes
3 Replies
Rashi_Vatsa
Moderator
Moderator

Hello,

Please refer to table 2-6 of UVC v 1.5 specification. It mentions that PTS may be repeated for
multiple payload transfers comprising a single video frame, with the restriction that the value shall remain the same throughout that video frame.

scrSourceClock has two components :  STC and 1KHz SOF token counter. The STC clock resolution shall be according to the dwClockFrequency field of the Probe and Commit response of the device

You can refer to the details in table 2-6 of spec. The payload header sent for a video frame will be same. 

Regards,
Rashi
0 Likes
jacky_m
New Contributor

hi Rashi

thanks for reply.
The following is my understanding:

- dwPresentationTime

Assuming FPS = 30, dwClockFrequency = 15MHz
The first frame timestamp = 0 (s) --> PTS = 0
The second frame timestamp = 0.033 (s) --> PTS = 0.033 / (1/15000000) = 495000
Is my understanding of the PTS field correct?

 

- scrSourceClock 

- (D31..D0) System Time Clock (STC)

- The clock resolution shall be according to the dwClockFrequency

- This value shall comply with the associated stream payload specification.

Q: How is the calculation method of this field different from dwPresentationTime?

 

- (D42..D32) 1 KHz SOF counter

- This field indicates how many SOFs have passed so far?

Q: Assuming that 0.033 (s) has passed, this value must be filled in 0.033 / (1/1000) = 33?

 

thanks !

0 Likes
Rashi_Vatsa
Moderator
Moderator

Edited:

Hello,

Is my understanding of the PTS field correct?

>> As per the UVC spec, PTS is the source clock time in native device clock units when the raw frame capture begins. The PTS is in the same units as specified in the dwClockFrequency field of the Video Probe Control response.

In the default UVC firmware (AN75779), the dwClockFrequency in probe control structure is set as 384 MHz which is the SYSTEM CLOCK of FX3.

0x00, 0x60, 0xE3, 0x16, /* Device Clock */

Please refer to this thread  Solved: CX3 timestamp - Cypress Developer Community  

Please refer to this KBA for getting 0.1us timestamp  How to Get a 0.1-µs Unit Timestamp with FX3 – KBA2... - Cypress Developer Community  

Q: Assuming that 0.033 (s) has passed, this value must be filled in 0.033 / (1/1000) = 33?

>> D42..D32 represents the frame number at the time the STC was sampled.

Regards,
Rashi

View solution in original post

0 Likes