Elección del intervalo del servicio del descriptor de punto final isócrono

0

Aquí está el descriptor de punto final isócrono:

0x07,                           /* Descriptor size */
CY_U3P_USB_ENDPNT_DESCR,        /* Endpoint descriptor type */
CONSUMER_ENDPOINT,              /* Endpoint address and description */
CY_U3P_USB_EP_ISO,              /* Iso endpoint type */
0x00,0x04,                      /* Max packet size = 1024 bytes */
0x04,                           /* Servicing interval for data transfers: 1ms*/

El último argumento es el intervalo de servicio. Actualmente, es 0x04, lo que significa que el período de sondeo es 8, es decir, cada intervalo de bus de ochos. Sé que puedo establecer dicho intervalo con valores 0x01,0x02,0x03,0x04, lo que significa cada microFrame, cada segundo, cada cuarto y cada microfono de ochenta respectivamente. ¿Sería posible tener un intervalo de 0x8 para realizar un sondeo en cada 16 trama (cada segundo trama)?

    
pregunta Nazar

2 respuestas

1

El valor de 5 le da 2 ^ (5-1) = 2 ^ 4 = 16. El período de alta velocidad será 16 * 0.125 = 2 ms. Por lo tanto, esto especifica el intervalo deseable entre cada microtrama 16.

Para obtener un período, debe multiplicar el valor resultante a 0.125 ms o a 1 ms, según la velocidad de su bus USB.

    
respondido por el Sergii
1

La especificación USB (2.0) dice acerca de bInterval :

  

Para puntos finales isócronos de velocidad completa / alta, este valor   debe estar en el rango de 1 a 16.

Por lo que podría tener un intervalo de hasta 32768 microframas.

    
respondido por el CL.

Lea otras preguntas en las etiquetas