Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

06/03/2013 #1

Avatar de MULTIWATT

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?
06/03/2013 #2

Avatar de Scooter

Huele a conflicto del driver, pero la verdad es que poco te puedo decir...
06/03/2013 #3

Avatar de MULTIWATT

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..
06/03/2013 #4


te refieres a msdos o a una ventana de dos en windows
06/03/2013 #5

Avatar de MULTIWATT

analogico dijo: Ver Mensaje
te refieres a msdos o a una ventana de dos en windows
Me refiero en si a MSDOS, lo hago arrancar con una memoria USB Booteable..
08/03/2013 #6

Avatar de MULTIWATT

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?
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.