SavageChicken, acabo de descubrir este hilo y me has dejado anonadado, asombrado y maravillado.

Una pregunta: ¿Has implementado en tu firmware la respuesta estándar al PC cuando inicializa el teclado?
Hola RedPic.
Es un honor para mi que leas este post, ya que la información más vital para el desarrollo del presente apartado ha sido justamente provista por ti en el famoso:
Emulación Teclado PS/2 con PIC (Engañe a su PC y dele gato por liebre)Antes de contestarte, te comento que el artilugio es transparente al host y "casi" transparente al teclado, y paso a explicar esto.
La forma en que está pensado el aparatito, hace que todo lo que el teclado quiera transmitirle al host sea enviado en forma inmediata al host y viceversa, esto hace innecesario implementar la inicialización del teclado en ningún sentido, porque entre ellos conversarán como si estuviesen conectados directamente.
Esto es muy sencillo de hacer, basta con leer permanentemente el clock y el data del teclado y mandarlo a los pines donde tengo conectado el host y viceversa.
El truco está en que el PIC debe simultáneamente identificar las pulsaciones de teclas y determinar si debe hacer algo o no.
En caso de ser un SI, inhibe al teclado de comunicarse con el host, poniendo a nivel bajo el pin del clock del teclado y entonces enviarle "los teclazos" que se estimen convenientes al host y luego volver a liberar al teclado para que siga comunicándose en forma normal.
Lo que si está implementado es el envío de comandos al teclado, lo que permitiría cambiar el "typematic rate" o pedirle al teclado que haga un reset, por ejemplo.
Otro detalle, como ya había aclarado, los datos mandados por el host como los mandados por el teclado son enviados via RS232 en tiempo real a 115200 baudios.
Otro dato interesante, es que utilizando el USART en modo síncrono y con 9 bits de datos, podría emularse un teclado, ya que estudiando la comunicación del teclado y comparándola con la comunicación serie antes mencionada, veo que son compatibles, eso si, el baud rate debería ajustarse a un valor poco estándar, pero nada complicado.
Aprovecho de aclarar que los pines que estoy usando en la última versión difieren de los pines presentados en los primeros post, ya que en un intento de utilizar interrupciones fueron utilizados los pines RB4-7Salud
