¿Cómo puedo conectar un teclado USB a un DE1-SoC?

0

Recientemente obtuve una placa de desarrollo DE1-SoC de Intel y quería usarla para crear una instancia del diseño de computadora que creé mientras seguía el curso de Nand2Tetris en Coursera. Desafortunadamente, este diseño requiere que se conecte un teclado a la placa y no tengo teclados PS2 (solo USB) o adaptadores de USB a PS2. Si bien puedo ir y obtener el hardware requerido, creo que los teclados PS2 se están quedando obsoletos, por lo que quiero poder usar mi teclado USB. La placa tiene 2 puertos USB y de acuerdo con este documento , deben Ser capaz de interactuar con el tejido FPGA. Desafortunadamente, esta guía solo especifica cómo crear una instancia de un puerto USB OTG y cómo conectar su reloj al diseño de nivel superior. No especifica cómo acceder a los datos procedentes del USB. He buscado instrucciones específicas en línea, pero hasta ahora no he encontrado nada. ¿Hay alguna manera de, por ejemplo, mostrar el código de escaneo de la tecla presionada en un teclado USB en los LED de la placa?

    
pregunta Guacho Perez

1 respuesta

1

El DE1-SoC Cyclon-V es un sistema en chip, con procesadores ARM9 duales. La placa del sistema DE1 tiene un puerto ULPI conectado a ULPI PHY, que está conectado a un concentrador USB con dos puertos de usuario.

Según entiendo de las especificaciones, AN702 , y de los comentarios de Chris Stratton, el SoC proporciona dos "Controladores USB On-the-Go (OTG)". El USB 2.0 Hi-Speed On ‑ The ‑ Go DWC_otg controller (ver Capítulo 18) es algo que fue creado por Sinopsis, un proveedor de IP dura, en lugar de más extendido y establecido controlador EHCI .

Para conectar un teclado a este sistema a través de USB, necesita hacer que el sistema sea un host USB. Para convertirlo en un host USB, debe habilitar el controlador DWC_otg. Para cruzar a través del hub USB soldado, necesitará soporte de transacciones divididas. Para que DWC_otg sea operativo, debe cargar el sistema operativo Linux completo con soporte de concentrador USB, lo que significa que necesita un sistema operativo en funcionamiento completo con soporte DWC_otg patentado (las hojas de datos reales para el acceso basado en registros, AFAIK, están disponibles solo bajo NDA).

Por lo tanto, el acceso USB está "interconectado con el tejido FPGA" a través del controlador DWC_OTG, solo necesita un software adecuado para usarlo. Solo así podrá comunicarse con el teclado USB en el DE1-SoC Cyclon-V.

Lo bueno es que parece que el hardware DWC_otg también se usa en Broadcom BCM2836 SoC, que es el núcleo de Raspberry Pi, por lo que el software podría ejecutarse de manera más o menos fluida. Sin embargo, hay que tener en cuenta que a Microsoft le llevó alrededor de 15 años hacer que el host EHCI USB se ejecutara en las PC, por lo que puede esperar algunas fallas en el camino con DWC_otg.

Alternativamente, puede seleccionar tres GPIO a un nivel de CMOS de 3.3 V, y emular toda la funcionalidad del host USB (solo LS) a través de bit banging. O cree su propio controlador de host LS con su propia interfaz propietaria, para controlar la interfaz ULPI y PHY directamente.

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas