Teclado USB con 18F2450, no funciona en MSDOS.

Tengo un teclado USB emulado con un PIC18f2450 y me funciona perfecto en Windows, pero cuando lo intento usar en MSDOS no detecta ninguna tecla, en cambio tengo otro teclado usb de la marca logitech y si funciona perfecto en MSDOS y en Windows, pero el micro solo en windows, alguien sabe a que se debe, ya intente de todo, copie el descriptor del logitech y solo consegui enumerarlo, pero me sigue sin leer las teclas, alguna idea?
 
Huele a conflicto del driver, pero la verdad es que poco te puedo decir...
 
Pues, debe de haber algo especial en la bios para que detecto los paquetes de datos, nose si tenga que ver la velocidad, al descriptor de modifique:

Código:
 //interface descriptor 1 (MOUSE)
         USB_DESC_INTERFACE_LEN, //length of descriptor      =9
         USB_DESC_INTERFACE_TYPE, //constant INTERFACE (INTERFACE 0x04)       =10
         0x00, //number defining this interface (IF we had more than one interface)    ==11
         0x00, //alternate setting     ==12
         1, //number of endpoints for this interface  //13
         0x03, //class code, 03 = HID     ==14
         0x01, //subclass code //boot     ==15    <---le cambie a 1 que es boot
         0x01, //protocol code       ==16    <----y el protocolo a 1 que es keyboard
         0x00, //index of string descriptor for interface      ==17
con ese codigo logre que la bios lo enumerara, pero no logro enviarle la cadena de datos. Utilizo la siguiente rutina pero no genera ningun caracter en pantalla:

Código:
void usb_keyboard_task(void) {
   //static char Char_Tx;
   //disable_interrupts(global); 
   if(hay_dato==1){
      hay_dato=0;
      tx_msg[3]=dato;
      usb_put_packet(1,tx_msg,sizeof(tx_msg),USB_DTS_TOGGLE);
      delay_ms(5);
                  }
   else{

      tx_msg[3]=0;
      usb_put_packet(1,tx_msg,sizeof(tx_msg),USB_DTS_TOGGLE);
      delay_ms(5);
       }
  // enable_interrupts(global);
}
Si alguien tiene alguna sugerencia se los agradeceria..
 
Tal vez si lo configuro en modo low speed, ya que el micro esta en full speed, pero no se como alguien sabe?
ya que cuando agrego esta linea:

Código:
#DEFINE USB_USE_FULL_SPEED FALSE
No me enumera windows el teclado. Como lo podre configurar en low speed?
 

Temas similares


Arriba