Autor Tema: Usar AN1212 usb host hid keyboard en pic24FxxGBxxx  (Leído 5484 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Usar AN1212 usb host hid keyboard en pic24FxxGBxxx
« en: 01 de Junio de 2012, 19:44:46 »
Tremendos dolores de cabeza que me esta dando con esto.
Estoy intentando usar el AN1212 en un pic24FJ, primero estuve usando el pic24fj32gb002 y no funcionaba, lo pasé a un pic24fj64gb110 e igual.

La situacion es la siguiente, he probado el code example en el ethernet starter kit y va bien, de lujo diria yo, ahora cambio de micro y placa casera y ya no funciona, el reporte que me da es el siguiente:
Código: Text
  1. ***** Microchip Explorer USB Keyboard Host Demo  *****
  2.  
  3. HOST: Initializing DETACHED state.
  4. [>HOST: Starting settling delay.
  5. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~HOST: Resetting the device.
  6. HOST: Low Speed!
  7. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~HOST: Reset complete.
  8. ~~~~~~~~~~~HOST: Reset complete.
  9. HOST: Getting Device Descriptor size.
  10. !!!HOST: Getting device descriptor.
  11. !!!!!HOST: Validating VID and PID.
  12. HOST: Device not yet validated
  13. HOST: Setting device address.
  14. !!HOST: Getting Config Descriptor size.
  15. !!!HOST: Getting Config Descriptor.
  16. !!!!!!!!!!HOST: Client driver found.
  17. HOST: Client driver found.
  18. HOST: Parse Descriptor success
  19. HOST: Determine OTG capability.
  20. HOST: ...No OTG.
  21. HOST: Set configuration.
  22. !!HOST: Initializing client drivers...
  23. HOST: Scanning interfaces.
  24. HID: USBHostHIDInitialize(0x00)
  25. HID: Checking descriptor 1 ...
  26. HID:  Checking interface...
  27. HID:  Checking interface...
  28. HID: Valid device info
  29. HID:  Checking interface...
  30. HID: Valid device info
  31. HID: Interrupt endpoint IN: 82 Interrupt endpoint OUT: 00
  32. HID: USBHostHIDInitialize(0x00)
  33. !!!!!!!!!!!HID: Memory for Report Descriptor: 34
  34. HID-HOST: ... 2nd Parse
  35. !!!!!!!!!!!!!!!HID: Memory for Report Descriptor: B4
  36.  
  37. HID Error Reported :  01

Haciendo seguimiento al codigo, en el usb_host.c, hay la función usb_task() y alli va todo vien, la situación creo que va por el HID.

Buscando en los archivos veo que el error 01 viene desde el usb_host_hid_parser.c, _USBHostHID_Parse_Report.
y segun el reporte el error en  usb_commom.h es USB_INVALID_STATE.

Y pues alli me quedé, el teclado que estoy usando funciona correctamente, ya lo probe con la PC y con el ethernet starter kit.
El ckto que estoy usando es el que se indica en el USB PICTAIL sin usar el divisor de voltaje a entrada analogica, no hay reporte de sobrecorriente asi que no creo que ese sea el error, adjunto imagen. Segun veo en el archivo del AN1212 se puede usar en la EXPLORER16 asi que asumo que el ckto está bien, ademas en la datasheet del micro indica la misma conexion.

Lo particular es que tengo conectado cristal de 8Mhz segun el EXPLORER16, pero asi ni el uart2 debug funciona bien, envia caracteres pero no coinciden en tiempo con los baudios seteados 57600 y muestra basurita, mas si uso el oscilador interno si funciona el uart2 debug, talvez este por alli el problema y que el modulo usb no este a buena frecuencia, les dejo los fuses que estoy usando:

Fuses que no funciona bien:
        _CONFIG2(FNOSC_PRIPLL & POSCMOD_HS & PLL_96MHZ_ON & PLLDIV_DIV2) // Primary HS OSC with PLL, USBPLL /2
        _CONFIG1(JTAGEN_OFF & FWDTEN_OFF & ICS_PGx2)   // JTAG off, watchdog timer off
Fuses que va bien:
        _CONFIG2(FNOSC_FRCPLL & POSCMOD_NONE & PLL_96MHZ_ON & PLLDIV_NODIV) // Primary HS OSC with PLL, USBPLL /2
        _CONFIG1(JTAGEN_OFF & FWDTEN_OFF & ICS_PGx2)   // JTAG off, watchdog timer off

Nótese que cuando saco el conector usb del teclado el debug me indica USB DETACHED y cuando lo conecto hace nuevamente la evaluacion del dispositivo hid.

Otra: al principio use el switch del starter kit sin buenos resultados de alli cambie al ckto del usb pictail.

Alguien me da una mano.

saludos.


« Última modificación: 01 de Junio de 2012, 19:51:06 por KALLITOS »
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Usar AN1212 usb host hid keyboard en pic24FxxGBxxx
« Respuesta #1 en: 02 de Junio de 2012, 02:15:29 »
Además de cambiar el cristal por el oscilador interno, en tus fuses hay otra diferencia.

En la configuración para cristal estás usando PLLDIV_DIV2 y en la de oscilador interno PLLDIV_NODIV. ¿Tendrá algo que ver?

¿Tienes osciloscopio o frecuencímetro para comprobar que el cristal oscila a 8MHz?

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Usar AN1212 usb host hid keyboard en pic24FxxGBxxx
« Respuesta #2 en: 03 de Junio de 2012, 10:56:05 »
Muy cierto Nocturno, y es que para que la usart funcione correctamente deben estar esos FUSES, teniendo en cuenta que en el hardwareProfile.h refiere el oscilador a 32Mhz y los baudios a 57600, creo que va bien por alli.

No cuento con osciloscopio ni frecuencimetro, no puedo hacer las mediciones que mencionas  :(, voy a comprar otro cristal a ver que pasa.

Seguiremos informando...

saludos
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Usar AN1212 usb host hid keyboard en pic24FxxGBxxx
« Respuesta #3 en: 04 de Junio de 2012, 01:14:57 »
Hice la consulta en el foro de microchip, me dieron la solución: heap size, la situación mencionan que el descriptor del keyboard sea largo, por lo que habia que habilitar mayor cantidad, estaba en 1000 le coloque 1250 y ya jala bonito.

asi que ya saben: quieren teclado USB en sus proyectos, usar el AN1212, desaparecer el manejo del lcd, abreviar los reportes de funcionamiento para bajar consumo de memoria, habilitar la optimizacion del codigo, utilizar usart2 para comunicacion y colocar un pic24fj32gb002 el USB HOST mas barato que hay, y listo!!!. Nos quedan alrededor de 1KB para hacer un protocolo o algo mas, como en mi caso aprovechar el usart1.

saludos y muchas gracias!!!
« Última modificación: 04 de Junio de 2012, 01:21:21 por KALLITOS »
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Usar AN1212 usb host hid keyboard en pic24FxxGBxxx
« Respuesta #4 en: 04 de Junio de 2012, 02:09:22 »
¡Estupendo!. Gracias por la info

Desconectado marcoj2560456*

  • PIC10
  • *
  • Mensajes: 20
Re: Usar AN1212 usb host hid keyboard en pic24FxxGBxxx
« Respuesta #5 en: 23 de Septiembre de 2015, 15:10:52 »
hola KALLITOS estoy tratando de usar mi pic 24fj64gb002 como usb host para controlar un lector de codigo de barras y estoy tratando de utilizar las librerias de MLA de microchip pero salen errores y no he podido probarlo anteriormentee estaba programando en ccs pero me cambie a mplabx con el compilador xc16 cualquier ayuda te agradeceria mucho disculpa la molestia
Romanos 10:9-10


 

anything