Autor Tema: Proyecto PicUSB  (Leído 510232 veces)

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

Desconectado PakoJones

  • PIC10
  • *
  • Mensajes: 3
Re: Proyecto PicUSB
« Respuesta #90 en: 29 de Agosto de 2006, 13:45:38 »
Ok gracias por responder tan rapido, mañana comprare el cristal de 12MHz a ver si chuta bien y ademas probare con otro 18F2550 que tengo por aki tb, a ver si va a ser que esta en mal estado. Mañana os comentare los resultados.

Un saludo y gracias!  :-)

PakoJones

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
Re: Proyecto PicUSB
« Respuesta #91 en: 29 de Agosto de 2006, 16:53:38 »
Jose Antonio y demás amigos:

Tanto el PicUSB.exe como el Driver de J1M funcionaron perfectamente, cuando le puse el Xtal de 12 Mhz, pero se interferían por algún motivo desconocido, con el Driver del GTP-USB+. Ambos solo funcionaban cuando el otro no estaba conectado, imagino que tenían un irrefrenable ataque de celos mutuos.

La solución que le dí fue descargar e instalar el driver original de Microchip, y cambiarle al Firmware del PIC el VID&PID para que fuese el mismo que este último driver. A partir de ahí todo perfecto.

Otra nota para PacoJones, puedes hacer funcionar tu USB a 48 Mhz con un cristal de 20 Mhz haciendo que el divisor PLL sea PLL5 en lugar del PLL3 que usa J1M para su PicUSB con el 12 Mhz. El asunto está en conseguir un divisor del cristal que uses para que te dé una frecuencia de 4 Mhz en función del Xtal que estás utilizando. Por eso 12 Mhz -> PLL3 ya que 12 / 3 = 4; y 20 Mhz -> PLL5 ya que 20 / 5 = 4.  :mrgreen:

(Acabo de descubrirlo al ver los ejemplos de USB del CCS C que pone que el cristal usado es de 20 Mhz y la unica diferencia estaba en los fuses del ejemplo que ponía PLL5 en lugar de PLL3)

Edito: Acabo de hacer lo que proponía: Le he puesto un Xtal de 20 Mhz y le he cambiado el PLL3 por PLL5 en los fuses y ha ido todo de maravilla.



« Última modificación: 29 de Agosto de 2006, 17:23:06 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
Re: Proyecto PicUSB
« Respuesta #92 en: 29 de Agosto de 2006, 17:26:19 »
Por cierto. Acaba de hechar a andar el ¡¡¡ USB Keyboard Emuleitor con la RRBOARD2 !!!  :mrgreen:  :mrgreen:  :mrgreen:

« Última modificación: 21 de Septiembre de 2006, 16:34:19 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

jonathanlopez

  • Visitante
Re: Proyecto PicUSB
« Respuesta #93 en: 29 de Agosto de 2006, 17:30:04 »
Muy bueno felicitaciones

Desconectado SimonMG

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 172
Re: Proyecto PicUSB
« Respuesta #94 en: 29 de Agosto de 2006, 22:42:47 »
perdonen las molestias pero me pudieran enseñar el programa que va en el PIC en asembler lo que pasa es que no C nada de C :mrgreen: :mrgreen: :mrgreen: :8} pero si no es molestia les agradeceria q me eseñaran el programa en asembler  :D gracias y saludos
"La politica es para ahora, una ecuacion es para siempre"
Albert Einstein

Desconectado PakoJones

  • PIC10
  • *
  • Mensajes: 3
Re: Proyecto PicUSB
« Respuesta #95 en: 30 de Agosto de 2006, 06:51:14 »
Muy buenas! RedPIC eres un genio!! ya me funciona, a la perfeccion!! He usado el cristal de 20MHz haciendo el divisor por 5 (PLL5) y me ha reconocido el PIC, se me han instalado sin problemas los drivers y el programa en VisualC# funciona a la perfeccion. Un exitazo. Lo que no acabo de entender eso del divisor, pq eso de conseguir que sean 4MHz segun el cristal que tengas, no entiendo pq han de ser 4MHz, hay alguna explicación lógica para esto, si lo saben me gustaria entenderlo.

Otra cosa, al principio tube un poko de problema, me lo reconocia pero me salia en vez de J1M USB, simbolos raros como esto: |||||][][]|| |||[][][][][||||||||||||| [][][][][][][][][][][] saben? no se si es que tenia todos los archivos tan liados que el windows no ha sabido por donde coger la cosa. Al final he hecho un poko de limpieza desinstalando los drivers y volviendo a grabar el archivo de PicUSB de nuevo, y he cambiado de puerto USB, si para el GTP-USB+ usaba el de arriba, para lo de J1M uso el de abajo. Lo he hecho pq al principio al conectar el PicUSB no salia nada, no se a ke debe ser. Bueno, no se si tendra que ver el hecho de que haya ido a panel de control-->Sistema-->Hardware-->Administrador de dispositivos y haya desinstalado el controlador que ponia Familia PIC 18F4550, cosa que me parece raro al usar el PIC18F2550. Bueno, total, a lo que queria llegar, si quiero hacer yo un experimento con el USB no hara falta que cambie el PID&VID??

Muchas gracias a todos por vuestra ayuda!!, estaba ya un poko desesperado

PakoJones

PD: Si no entendeis bien lo que digo , ya puede ser, pq no me explico demasiado bien, jeje.

Desconectado patolinec

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 206
Re: Proyecto PicUSB
« Respuesta #96 en: 01 de Septiembre de 2006, 16:52:29 »
Pues eso sale cuando tu modificas los strings del archivo PICUSB.h en la parte de J1M y PicUSB vuleve a como es normalmente y listo
Casi me maté pero ahora estoy de nuevo vivo

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
Re: Proyecto PicUSB
« Respuesta #97 en: 01 de Septiembre de 2006, 18:00:07 »
Pako:

Voy a intentar explicar un poco de dónde sale esto de los 4 Mhz para el USB 2.0.

Como nunca me canso de repetir: En los datasheet está T_O_D_O, absolutamente todo.  :mrgreen:

Aqui os pego un trozo de la imagen donde aparece la estructura de configuración de las opciones de los osciladores en los PIC's de la familia 18Fxx5x que son los que soportan el USB 2.0 (Documento 39632b.pdf de Microchip dedicado a los 18F2455-2550-4455-4550)



Es sistema es complejo debido a la inmensa versatilidad y posibilidades que ofrece.

Como podéis ver en OSC1 y OSC2 conectamos nuestro cristal: 4 Mhz, 8 Mhz, 12 Mhz, 16 Mhz, 20 Mhz, 24 Mhz, 40 Mhz  ó 48 Mhz, que son los cristales validos compatibles con lo que sigue a continuación.

Tened en cuenta que este cristal es el mismo para generar la frecuencia de 48 Mhz necesaria para el USB 2.0 y para el Clock del PIC, que pueden ser la misma o no, según la configuración que al final adoptemos, quiere esto decir que podemos tener el USB a 48 Mhz y nuestro programa en el PIC funcionando a 12 Mhz por ejemplo.

Fijaos en que justo tras el Smicht Trigger del Primary Oscillator salen tres lineas en paralelo que van a modulos distintos con distintas posibilidades.

La primera línea, la superior, va directamente al switch USBDIV que si está a cero indica que la frecuenci base original del cristal es directamente inyectada al USB, si pasa el switch FSEN que elige entre todo el sistema directo/PLL o el Primary Clock del CPU. Esta Opción de inyectar directamente la frecuencia del cristal es obviamente solo posible si usamos un Cristal de 48 Mhz que es lo que necesitamos para el USB.

Cualquier otro cristal debe ser tratado para conseguir los 48 Mhz necesarios.

El módulo USB Clock Source tiene a su entrada un PLL Prescaler, o sea un divisor de frecuencia. En cada una de sus salidas vamos a tener FOSC dividida por 1, 2, 3, 4, 5, 6, 10 ó 12. Y mediante PLLDIV que no es mas que un Multiplexor vamos a seleccionar la que deseamos usar.

Así si nuestro cristal es de 12 Mhz y en PLLDIV colocamos un 010 estaremos dividiendo por 3 el valor de FOSC con lo que tendremos 4 Mhz a la salida del MUX. Si por el contrario el cristal es de 20 Mhz y en PLLDIV colocamos un 100 entonces dividiremos por 5 FOSC con lo que tendremos también 4 Mhz a la salida del MUX.

Esta salida del MUX es lo que utilizamos para inyectársela al PLL de 96 Mhz. Si le metemos 4 Mhz él genera 96 Mhz. Es esta capacidad de pasar de 4 Mhz a 96 Mhz la que nos da la posibilidad de usar un montón de cristales distintos.

Pero 96 Mhz es el doble de lo que nos hace falta para el USB que son 48 Mhz. Asi que inmediatamente después tenemos que tener, y tenemos, un divisor por 2 que es el segundo camino por el que llegamos a USBDIV y en este caso le pondremos un 1 para usar la señal proviniente del PLL.

Fijaos que además de inyectar la señal oscilante en USBDIV tambien se conecta la señal del PLL a 96 Mhz en un Postscaler, otro divisor, en este caso por 2, 3, 4 ó 6 y cuyas señales van al CPUDIV. O sea que podemos generar una señal de reloj para nuestro PIC, no para el USB sino para la velocidad de ejecución de nuestro programa tomándola del PLL y que puede ser de 16 Mhz, 24 Mhz, 32 Mhz ó 48 Mhz.

Pero además la señal original llegaba en paralelo al Oscilator Postcaler, otro divisor más, que de forma directa, sin pasar por el módulo PLL nos divide la frecuencia original del cristal por 1, 2, 3 ó 4 y que también va a parar al CPUDIV pero desde otro origen. Con este módulo podemos obtener otra gama de frecuencias distinta para hacer correr el programa.

Cúal de ambos CPUDIV vamos a utilizar lo seleccionamos con el switch FOSC3:FOSC0 que es de donde sacaremos la definitiva frecuencia de ejecución de programas.

Por último tambien tenemos disponible una entrada proviniente del Primary Clock y que dividida por 4 llega también a FSEN y podemos utilizarla en lugar de la que le llega desde el canal directo/PLL

Como podeis ver es toda una maravilla cómo esta montado este tema de los osciladores, sobre todo por lo que respecta a las inmensas capacidades que tiene para hacer correr nuestro PIC a decenas de velocidades distintas siendo capaz, al mismo tiempo de tener disponibles los 48 Mhz imprescindibles para el USB 2.0.

Me descubro ante los ingenieros de Microchip y los aplaudo, se lo merecen.
 



 
« Última modificación: 01 de Septiembre de 2006, 18:09:51 por RedPic »
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado 5GTT

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 915
Re: Proyecto PicUSB
« Respuesta #98 en: 01 de Septiembre de 2006, 21:17:40 »
Muy bueno, redpic, te voy a contartar para que me cuentes asi los datasheets, asi me entero mejor.

Como añadido, decir que en la pagina 31 y siguientes del datasheet viene explicado que PLL debemos poner segun que cristal, asi nos ahorramos sacar la calculadora para dividir por 4 xD.

Saludos.

Tutoriales y proyectos de electrónica

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Proyecto PicUSB
« Respuesta #99 en: 02 de Septiembre de 2006, 00:11:27 »
red termina la carrera de iti y ponte a dar clases de inmediato :-P

Desconectado SimonMG

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 172
Re: Proyecto PicUSB
« Respuesta #100 en: 02 de Septiembre de 2006, 21:05:10 »
perdonen las molestias pero me pudieran enseñar el programa que va en el PIC en asembler lo que pasa es que no C nada de C Mr. Green Mr. Green Mr. Green llorica pero si no es molestia les agradeceria q me eseñaran el programa en asembler  lol gracias y saludos

disculpen las molestias :mrgreen: :mrgreen: :mrgreen:
"La politica es para ahora, una ecuacion es para siempre"
Albert Einstein

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Proyecto PicUSB
« Respuesta #101 en: 02 de Septiembre de 2006, 23:27:38 »
no hay nada en assembler simonmg... aqui normalmente todos programos en c estos cacharros... al menos en este hilo todo se hace con ccs visual c y delphi

Desconectado kalux

  • PIC10
  • *
  • Mensajes: 36
Re: Proyecto PicUSB
« Respuesta #102 en: 06 de Septiembre de 2006, 05:24:32 »
Hola,

Respecto al DDk.

Tengo instalado el Service pak 2. En este proyecto se ha utilizado el SP1:
Microsoft Windows Server 2003 Service Pack 1 (SP1) Driver Development Kit (DDK)

¿Tendria proplemas si lo instalo?
¿Alguien con el SP2 ha instalado el DDK SP1?

Gracias y un saludo

Desconectado kalux

  • PIC10
  • *
  • Mensajes: 36
Re: Proyecto PicUSB
« Respuesta #103 en: 06 de Septiembre de 2006, 07:21:51 »
Hola,

¿Alguien lo ha utilizado con el c++builder?

Voy perdido ...

Gracias y un saludo.

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5552
    • Picmania by Redraven
Re: Proyecto PicUSB
« Respuesta #104 en: 10 de Septiembre de 2006, 14:47:31 »
¡Dios santo! Me ha salido una verdadera novela ... pero creo que merece la pena.  :mrgreen:

El USB desencadenado : El Bulk USB

(Perdonad la repetición de posts pero no me he podido contener  :D)
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania


 

anything