Tratar de hacer esto para USB en general probablemente no sea sensato, es bastante complicado y mucho más complicado de lo necesario para lograr el objetivo establecido.
Sería mejor crear un esquema personalizado para transmitir datos del teclado y luego volver a convertirlo en USB en un dongle que se conecta a la PC. (Por supuesto, puede comprar un teclado inalámbrico disponible en el mercado, a menos que esté fuera por razones de confiabilidad, interferencia o seguridad).
Sería más fácil construir el proyecto si obtiene un teclado de interfaz PS / 2 heredado, ya que la interfaz síncrona se puede administrar desde casi cualquier microcontrolador. Sin embargo, también puede alojar un teclado USB desde una MCU. He tenido un poco de suerte con la serie KL25Z en PCB personalizados, así como con la versión del "tablero de la libertad" de Kinetis, y también con STM32F4 en las placas personalizadas y Nucleo. Si bien no pude obtener un MCU de la serie K20 para mi periférico de interés específico sin teclado, creo que el código de modo de host provisional para los tableros Teenys3.x puede admitir teclados.
Para el enlace intermedio, es probable que desee un esquema de serie asíncrono. Si necesita una verdadera comunicación bidireccional (¿desea activar esos LED de teclado?), Podría considerar algo así como los típicos protocolos semidúplex RS845, solo con señalización de terminación única.
En el extremo del dongle de la PC, puede elegir cualquier micro útil con una interfaz de dispositivo USB. Personalmente, podría elegir el mismo que usé en el extremo de transmisión, ya que la mayoría de los hosts USB integrados también pueden ser un dispositivo. Hice una placa KL25Z que puede ser cualquiera de las dos: instale un conector USB hembra en la parte superior de la placa y programe como host, o inviértalo e instale el conector macho en ese lado con el firmware en modo dispositivo.