TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: JOELUIS en 15 de Junio de 2011, 12:47:34
-
Estoy tratando de enumerar el PIC18F85J50 en mi PC con Windows XP, con base en el software de palitroquez, pero no he podido. Ya guardé el mchpusb.inf en una carpeta, y desarrollé el firmware con los archivos PIC18_USB.h, USB.c y usb_desc_scope.h. Además utilicé las rutinas usb_init();usb_task(); y usb_wait_for_enumeration() en el firmware. Pero no es reconocido por mi PC. Pueden sugerime algo??
-
Deberías colocar el código que estas implementando y el esquema del hardware.
Saludos!
-
Adjunto archivos. Gracias
-
Un cristal de 48MHz? El máximo posible es 20MHz. De ahi configurar el PLL para llevarlo a 48MHz.
Saludos!
-
Pregunté a technical support en www.microchip.com y me informaron que se podía usar un XTAL de 48MHZ. Porqué piensas que 20 Mhz es el límite? Gracias
-
En el datasheet lo dice... :shock: Otra cosa es usar un oscilador externo :?
-
Bueno dejame tratar y te cuento. gracias
-
En el datasheet lo dice... :shock: Otra cosa es usar un oscilador externo :?
Eso dice el datasheet, máxima frecuencia en HS: 24Mhz (página 41)
perdonad mi ignorancia :?: que es un oscilador externo? un IC que genera una onda cuadrada de cierta frecuencia?
Asias.
1saludo!
-
En el datasheet lo dice... :shock: Otra cosa es usar un oscilador externo :?
Eso dice el datasheet, máxima frecuencia en HS: 24Mhz (página 41)
perdonad mi ignorancia :?: que es un oscilador externo? un IC que genera una onda cuadrada de cierta frecuencia?
Asias.
1saludo!
Exactamente. Un cristal solo no hace nada sin la re-alimentación que conforman el oscilador ;-)
Saludos!
-
Ya cambié el Xtal a 20Mhz , así como la configuración a HSPLL y PLL5. El sistema todavía no es reconocido por el PC. Alguna otra sugerencia??
-
El main es solo eso? Hay que crear un bucle donde la función task_usb() sea llamada frecuentemente, ect... Revisa los ejemplos varios posteados en el foro.
Saludos!
-
Por lo pronto solo quiero que sea reconocido por el PC. Llamar frecuentemente la función task_usb() me ayuda a este objetivo? Saludos. Gracias
-
Por lo pronto solo quiero que sea reconocido por el PC. Llamar frecuentemente la función task_usb() me ayuda a este objetivo? Saludos. Gracias
Claro... Conviene que tengas una idea de como trabaja USB, buscar información en el foro como para que tengas idea como es el proceso de enumeración y comunicación utilizando USB, ect...
Saludos!
-
Por lo pronto solo quiero que sea reconocido por el PC. Llamar frecuentemente la función task_usb() me ayuda a este objetivo? Saludos. Gracias
jejeje Yo tp había leido el código: tiene pinta de un reset infinito XD.
Tienes que hacer "polling" hasta que el Host te enumere...
1 saludo.
-
Tengo un ejemplo en modo CDC y otro en modo Bulk. En el modo CDC se cicla en la rutina usb_task() como recomiendas. Pero en el modo Bulk no, solamente revisa usb_enumerated para recibir datos y depues enviar. Cual modo de transferencia me sugieres para iniciar?
-
Tengo un ejemplo en modo CDC y otro en modo Bulk. En el modo CDC se cicla en la rutina usb_task() como recomiendas. Pero en el modo Bulk no, solamente revisa usb_enumerated para recibir datos y depues enviar. Cual modo de transferencia me sugieres para iniciar?
No programo en CCS por lo que no estoy seguro de que hace cada función. ¿que hace la última función :"usb_kbhit"? Devuelve el control al main??? Si es así micro se reseteará: ESO NO DEBERÍA PASAR.
En cuanto al modo (clase) USB: hay muchas clases especificadas por USB. En CCS no lo sé pero C18/C30/C32 soportan unas cuantas: CDC, HID, Isochronous, bulk, MSD, etc. el utilizar una u otra depende de la aplicación que quieras implementar: ¿cual es esta aplicación? ¿un raton? ¿un teclado? ¿una memoria? ¿un altavoz?, etc....
1saludo
-
Gracias Manwenwe por tus comentarios. Mi único interés en este momento es enviar y recibir bytes entre mi PC y el PIC18F85J50. No hay dispositivos externos. Saludos
-
Te agradecería Manwenwe si le hechas un vistazo al nuevo software para ver si está correctamente ciclado. Tiene comentarios en las instrucciones. Gracias .Saludos
-
hola,
primero pedir disculpas: he mezclado el concepto de clase con el de modo de transferencia. Isochronous y bulk son modos de transferencia. CDC, HID, MSD, etc. son clases.
En cuanto al código. Ya digo que no conozco la librería CCS pero en principio parece correcto. Has cambiado el oscilador a HS+PLL y parece que has deshabilitado HID por lo que supongo que trabajas en CDC...
¿No te funciona?. Si es así prueba en HID... a ver si tu PC al menos reconoce un puerto COM virtual...
1saludo