Estoy un poco confundido acerca de los requisitos de USB 2.0 de alta velocidad.
USB 2.0. La velocidad de transferencia máxima de alta velocidad es de 480 Mbit / s. Por lo tanto, desde mi punto de vista para utilizar completamente esta velocidad de datos, se debe usar IC (uC o FPGA) con una frecuencia de al menos 480 MHz.
Pero, por ejemplo, el microcontrolador de la serie STM32 F4 ofrece compatibilidad con USB 2.0 de alta velocidad, aunque la frecuencia máxima en la que se ejecutan es de 180 MHz.
También Atmel SAM3U admite USB de alta velocidad, a pesar de la frecuencia máxima absoluta de 192 MHz.
¿Como es eso?
Para Atmel noté que tienen un reloj adicional de 480 MHz solo para USB. Esto es aún más confuso, ya que si el microcontrolador solo es capaz de 192 MHz, ¿cómo debería comunicarse con el periheral USB interno que funciona a 480 MHz?
Para STM32 también es raro, en su software CubeMX parece que funcionan con USB desde un reloj de 48 MHz. Buscando en la hoja de datos, solo mencioné lo que encontré fue
Bit 15 PHYLPCS:
Selección de reloj de baja potencia PHY Este bit selecciona el modo PHY de 480 MHz o 48 MHz (bajo consumo). En los modos FS y LS, el PHY generalmente puede operar en un reloj de 48 MHz para ahorrar energía.
0: 480 MHz reloj PLL interno
1: 48 MHz reloj externo
En el modo de 480 MHz, la interfaz UTMI funciona a 60 o 30 MHz, dependiendo de si se selecciona el ancho de datos de 8 o 16 bits. En modo 48 MHz, la interfaz UTMI opera a 48 MHz en los modos FS y LS.
Supongo que utiliza un reloj de 48 MHz para generar 480 MHz a través de PLL. Pero una vez más, si el microcontrolador solo puede subir a 180 MHz, ¿cuál es el punto del USB de 480 MHz?
Los FPGA son aún más confusos (muchos de ellos funcionan a menos de 480 MHz), pero aún no he investigado mucho sobre FPGA, así que no preguntaré nada (pero si puedes dar algún consejo / educar sobre FPGA, eres bienvenido , Estoy interesado).
La pregunta es: si usamos un microcontrolador de 180 MHz y queremos transferir datos con un periférico USB de 480 MHz, ¿cómo se ajusta a la frecuencia? ¿Cuál es el proceso?