Estoy diseñando un dispositivo pequeño que actuará como un teclado USB HID, pero también debe funcionar con hosts PS / 2. Me gustaría realmente poder usarlo con uno de estos adaptadores pasivos ingeniosos de USB a PS / 2 que solían venir con todos los teclados USB (no estoy seguro de si todavía lo hacen, no ¡Compré un teclado en muchos años!). El problema es, ¿cómo puedo detectar si utilizo USB o PS / 2 en mi circuito?
Conexióneléctrica
Yaqueestoyusandoun
NecesitoconectarRA4/5porqueD+yD-solopuedenusarsecomoentradassinoseusanparalacomunicaciónUSB.RA4yRA5normalmentetendríantresestados,porloquenoentraránenconflictoconelUSB,ysielmodoPS/2estáhabilitado,D+yD-sedeshabilitarándemanerasimilar.
NopreveoningúnproblemaimportanteporqueD+/D-son3.3VyPS/2es5V.Debidoaque
Lógico
Ahora, aquí está el principal problema. No estoy seguro de cómo realizaría mi procedimiento de inicialización para detectar PS / 2 o USB en el inicio.
Un problema es que, según entiendo, no hay una asignación estándar única entre el USB D + / D- y los pines de Reloj / Datos PS / 2 en estos adaptadores pasivos. O bien D + está conectado a Reloj y D- a Datos, o viceversa. Esto también lleva a la primera pregunta real: ¿Existe una asignación de pines estándar? Si no es una norma oficial, tal vez una norma de facto? Si no hay, no creo que haya un problema detectando esto en el software.
La segunda pregunta es, bueno, ¿cómo detecto si el host me está hablando con USB o PS / 2? Preferiblemente de una manera confiable. Como cada teclado que tengo aquí funciona con uno de esos adaptadores sin excepción, no puede ser tan difícil. ¿El estándar USB tal vez discute esto? En realidad, pocos adaptadores llevan el logotipo de USB, por lo que no creo que esto sea algo que el estándar de USB fomente.