El teclado (Mini) USB tiene D- predeterminado alto

Tengo un teclado de una vieja funda de tableta con un conector mini-USB que quiero leer usando un microcontrolador PIC32.

Cuando aplico 5V al teclado (completamente independiente, sin ningún otro circuito alrededor), el teclado hace algo en las líneas de datos cuando presiono algunas teclas, pero no parece estar usando el protocolo que conozco :

ingrese la descripción de la imagen aquí

Aquí, D+ y D- parecen ser inversos entre sí la mayor parte del tiempo, y D- es bajo cuando está inactivo. Mi teclado no muestra el mismo patrón.

D- es alto cuando está inactivo. D+ también es alto cuando está inactivo, no solo cambié las líneas. No tengo las herramientas para realizar un análisis en profundidad, pero sé que las dos líneas no son simplemente iguales.

¿Hay teclados USB que tengan un protocolo diferente (por ejemplo, D-invertida o algo completamente diferente)? ¿Qué podría estar pasando aquí?

Respuestas (1)

Muchos teclados admiten PS/2 para compatibilidad con versiones anteriores: detectan si están conectados a un host USB y, si no, se comportarán como un teclado PS/2.

Es posible que esto sea lo que está viendo: si no ha conectado nada a las líneas D+/D-, el teclado determinará que no está conectado a un host USB y recurrirá a PS/2. Si no tuviera este modo, probablemente no vería nada en las líneas de datos ya que no hay un host conectado para emitir comandos.

Hay adaptadores USB a PS/2 que son básicamente pasivos y conectan las señales D+ y D- a las señales de reloj y datos del conector PS/2. Podría valer la pena probar uno de estos (si tiene uno por ahí y una computadora que tiene un puerto PS/2) para verificar.

Vale, eso es muy interesante, gracias. Además, cuando lo conecto al PIC, no funciona, lo que podría significar que el PIC está haciendo algo mal. ¿Sabes lo que debería ver en las líneas host si está 'escuchando'? Es decir, ¿qué verificaría el teclado para ver si está hablando con un host USB o PS/2?
@CamilStaps Eche un vistazo a la página 11 de esta hoja de datos . Es para un controlador de teclado que admite el modo dual. La página 11 muestra un diagrama de flujo de cómo realiza la detección, por lo que es posible que el suyo haga algo similar. Hay una explicación en la página siguiente.
Muchas gracias. Todavía no lo descubrí, si sigo ese diagrama de flujo en mi situación, detectaría un host USB. Pero ciertamente es útil, tengo una nueva dirección para buscar.