¿Cómo diseñar un circuito de teclado que pueda usar un adaptador pasivo de USB a PS / 2?

4

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 PIC16F1454 que tiene un en 3.3V LDO, trancievers y todo para USB mi plan era conectarlo así:

NecesitoconectarRA4/5porqueD+yD-solopuedenusarsecomoentradassinoseusanparalacomunicaciónUSB.RA4yRA5normalmentetendríantresestados,porloquenoentraránenconflictoconelUSB,ysielmodoPS/2estáhabilitado,D+yD-sedeshabilitarándemanerasimilar.

NopreveoningúnproblemaimportanteporqueD+/D-son3.3VyPS/2es5V.Debidoaque PS / 2 está usando una configuración open-collector , Cualquier error que provoque que 5V se apague en el USB D + / D- tendrá una impedancia muy alta y no debería romper nada.

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.

    
pregunta pipe

1 respuesta

3

En lugar de seguir el comentario anterior, es más probable que el éxito detecte si los dos pines se elevan a 5V. (Asegúrese de usar una MCU que tenga pines GPIO compatibles con 5V) . PS / 2 se ejecuta como colector abierto, pero en el intervalo inmediato después de que la fuente de alimentación esté en un nivel válido, la interfaz seguirá inactiva y las dos líneas PS / 2 no estarán controladas y serán altas a 5V. Esto puede requerir que agregue algunos circuitos adicionales para detectar esto en lugar de algunos niveles de señal USB más bajos.

¿Cuál es el incentivo para apoyar PS / 2 en este día y edad?

Información agregada

La hoja de datos de su PIC16F1454 indica que la conexión de las líneas de señal PS / 2 al USB D + y D- puede no ser recomendable. La sección Clasificación máxima absoluta tiene esto que decir acerca de los pines D + y D:

Con esta información en la mano, no se recomienda someter los pines D + y D a más de 3.3V + 0.5V = 3.8V y ciertamente NUNCA más de 4.6V.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas