Autor Tema: Módulo USB del 18Fx550  (Leído 22824 veces)

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

Desconectado atlasdelcarinakeel

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 277
RE: Módulo USB del 18Fx550
« Respuesta #45 en: 19 de Septiembre de 2005, 08:00:00 »
Bueno gracias, voy a seguir intentando enviar y recibir un dato, de todas maneras si alguien a trabajado con el easyhid generando en visual basic, le agradeceria la ayuda.

Rebotado
Si tienes un problema y tiene solucion, para que te preocupas? y si no tiene solucion, para que te preocupas?

Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: Módulo USB del 18Fx550
« Respuesta #46 en: 19 de Septiembre de 2005, 08:17:00 »
Sabes programar otra cosa que no sea Visual Basic? EasyHid permite tambien Delphi & Visual C++.  Si el problema que tienes es la programacion ve directamente a la seccion de Visual Basic xq por lo que veo ya sabes donde tienes que poner el código pero no sabes qué.

Un saludo.

Saludos desde Logroño (España)

Desconectado motorola1212

  • PIC10
  • *
  • Mensajes: 8
RE: Módulo USB del 18Fx550
« Respuesta #47 en: 24 de Septiembre de 2005, 01:52:00 »
hola amigos del foro, no se muchgo sobre el puerto usb y quisiera hacerle unas preguntas a ustedes que dominan mas el tema, mi consulta es cual es la tension del puerto usb, creo q son 5V no estoy seguro, y si es asi cual ez su capacidad de corriente y si esa tension esta disponible en todo instante, ademas cual es la districbucion de pines de dicho puerto, espero me puedan ayudar.saludos.

Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: Módulo USB del 18Fx550
« Respuesta #48 en: 24 de Septiembre de 2005, 10:25:00 »
Soy nuevo en esto pero te contesto hasta donde llego.
El puerto USB suminstra 5V y creo que un máximo de 500mA. En mi caso los 5V están presentes en el conetor USB con solo tener el PC enchufado a la red, sin necesidad de estar encendido.
Estos 5V los tienes entre los pines 1 y 4 (extremos), los otros 2 son los de datos (D+ y D-).   Para ver la disposicion de pines lo mejor es el manual de la placa base o algún   circuito de ejemplo, en la seccion de programadores tienes programadores USB, mirado el PCB lo tendrás claro.

Un saludo.

 
Saludos desde Logroño (España)

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Módulo USB del 18Fx550
« Respuesta #49 en: 24 de Septiembre de 2005, 10:33:00 »
Hola:

aqui tienes un ejemplo de coneccion a un 18F4550...


Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Módulo USB del 18Fx550
« Respuesta #50 en: 03 de Octubre de 2005, 23:51:00 »
Hola:

Una pregunta para josemyzm:

Como es el circuito que armaste....? es como el del esquema que esta en la ayuda del HID...? como el del post de arriba? El cristal que utilizas es de 48mhz como en la declaracion o es de 20 como en el circuito?

Gracias...!

Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: Módulo USB del 18Fx550
« Respuesta #51 en: 04 de Octubre de 2005, 04:52:00 »
Pues basicamente el esquema es el mismo. Creo que usé el PIC18F2455, el más pequeño de la gama (es que ahora lo tiene un amigo para probarlo y no lo se, era el más pequeño de la gama pero como en microchip hay otros 2 nuevos no estoy seguro de si es el modelo)

La unica diferencia es que usé cristal de 4 MHz y no puse la resistencia en paralelo al cristal. (Como acepta varios cristales de cuarzo pues trate de ahorrarme la compra de otro, total, el programa correrá a la misma velocidad)

¿que pregunta tienes exactamente?


Un saludo

Saludos desde Logroño (España)

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Módulo USB del 18Fx550
« Respuesta #52 en: 04 de Octubre de 2005, 09:26:00 »
Hola:

Es solamente una cosa que no me queda claro... es que utilizas el cristal de 4MHz y en el programa de PBP generado por el easy HID  define uno de 48MHz...

Solo queria tener claro esto para el momento de hacer algunas pruebas no llevarme alguna sopresa...

Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: Módulo USB del 18Fx550
« Respuesta #53 en: 04 de Octubre de 2005, 18:48:00 »
Te confirmo que usé el 18F2455.

Lo del cristal si que es curioso y estuve un tiempo dandole vueltas porque habia visto varios esquemas distintos (20 y 24MHz) pero en todos el programa PICBasic usaba DEFINE OSC 48. Era la primera vez que usaba un PIC con PLL.

Antes de nada indicar que por lo que he leido creo que PicBasic predefine el uso de un cristal de 20MHz y que a mí me parecio más simple adaptar los parámetros directamente en el WinPic800 a la hora de programar que modficarlos en el PicBasic (al menos por ahora)

Ejecutar el programa a 48 MHz es lo más rápido que se puede, pero hay más opciones, todo depende de como lo configuremos.

A partir de aqui puede que meta la pata en algún punto, pero basicamente es algo así ...
Primero tener el DataSheet delante, concretamente página 24 con esquema interno de la etapa de oscilador y páginas 29 & 30 con la tabla de configuracion de registros del oscilador.

El USB se puede hacer trabajar a dos velocidades (48 y 24 MHz), esta parte no la controlo pero bueno, siempre buscamos velocidad no???, je je   Muchas risas. pues eso 48 MHz (como de aqui sale tambien el reloj para la velocidad a la que irá el programa pues sigo).
Para obtener esos 48MHz tenemos dos opciones con las que jugar:
1) usar directamente un cristal de 48MHz
2) utilizar un PLL interno que se encarga de generarlos (basandonos en el cuarzo que coloquemos y unos toques de configuracion) Esto nos puede evitar comprar un cuarzo y usar uno que tengamos (si hay suerte) Muchas risas

si usamos el PLL interno vemos en la parte arriba-centro del esquema de la pag.24 algo que pone 96 MHz PLL. Este es el generador interno, 96 MHz, luego viene un divisor por 2 y de ahí salen los 48MHz para el rollo USB.  Justo antes de este divisor por 2 vemos que los 96MHz van tambien a un PLL Postcaler,  (HSPLL, ECPLL, XTPLL, ECPIO), de aqui sale la frecuencia de trabajo del PIC (la de siempre, vamos, la que hay que usar en el programa). En este PLL Postcaler entran 96 MHz y como se ve podemos dividirlos por 2,3,4,6;  con lo que podemos obtener frecuencias de 48, 32, 24 ó 16 MHz para el PIC.    Este PLL Postcaler es para sacar la frecuencia del PIC a patir de los 96 MHz generados internamente, pero tambien podemos obtener la frecuencia de reloj usando el valor que nos da el cuarzo y el bloque que vemos a la izquierda del PLL Postcaler,  el Oscillator Postcaler, que nos permite obtener otras frecuencias diferentes a las anteriores.


Ahora el cuarzo:

Volviendo al generador interno de 96MHz, vemos que sobre el pone (4 MHz input only). Esto indica que para generar los 96MHz debemos tener en la entrada 4MHz. Para eso tenemos justo antes otro divisor, PLL Prescaler, que divide la frecuencia del cuarzo que coloquemos por 12,10, 6, 5, 4, 3, 2 ó 1. Sabiendo que a la salida de estos divisores hay que tener 4MHz, pues multiplicamos y vemos que podemos usar cristales de 48, 40, 24, 20, 16, 12, 8 ó 4 MHz. Y con cualquiera de ellos podremos usar el generador interno a 96MHz que nos dará los 48MHz para el USB y el máximo de 48MHz para el reloj del programa.


Siguiendo las lineas en el esquema del oscilador vemos que registros hay que configurar para seguir un camino u otro; para eso nos vamos a la tabla de las páginas 29 y 30 (que nos indican que valores poner en los registros para obtener USB a 48MHz y la Frecuencia de reloj de la columna de la derecha a partir del cuarzo indicado en la columna 1)



Perdón por el rollo, pero cogiendo el esquema de circuiteria del reloj es facil de entender.

Un saludo.
Saludos desde Logroño (España)

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Módulo USB del 18Fx550
« Respuesta #54 en: 05 de Octubre de 2005, 00:11:00 »
Hola:

Interesante explicacion... pero lamentablemente por un error en el que meti mal los dedos acabo de eliminar el DS del PIC y no he podido mirar lo que comentas y ahora estoy intentando descargar pero mi conexion esta un poco inestable y tengo problemas con la descarga...!

Perdon por parecer comodo pero me podrias indicar lo siguiente...?

- Con el cristal de 4Mhz hiciste algun cambio en el winpic...? en que parte fue....?

espero no molestar... es solo que intento descargar el DS y no puedo se me cancela a cada momento la descarga... Llorica

Desconectado josemyzm

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 309
RE: Módulo USB del 18Fx550
« Respuesta #55 en: 05 de Octubre de 2005, 04:51:00 »
uff, pues ahora que lo vuelvo a mirar no me parece tan facil como antes.

Se supone que tienes DEFINE OSC 48  en el programa (PIC a 48 MHz)
En la configuracion para grabar el PIC:
OSCILLATOR
XT Oscillator, PLL Enabled, XT used by USB  (el problema es que ahora veo dos opciones iguales)

*** Si no seleccionaba XT el cristal no arrancaba.


CPU System Clock
96MHz PLL div 2

Oscillator Selection
No divide-direct (4Mhz input)


El unico problema es en la primera opcion (Oscillator), sea la que sea con "PLL enabled", las otras dos ya se ven facil.

Un saludo.
Saludos desde Logroño (España)

Desconectado J1M

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1960
RE: Módulo USB del 18Fx550
« Respuesta #56 en: 05 de Octubre de 2005, 08:16:00 »
Respecto al tema del oscilador del 18fxx5x ... la verdad esq tiene su cosa :p

Se supone que no deberia cambiarse nada en el programa de grabación, sino añadir los fuses necesarios para el oscilador.. por ejemplo (os lo pongo en C para CCS q no se como se declaran en Basic)

#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VREGEN
#use delay(clock=48000000)

en el delay debo poner a la frecuencia a la que va a ir mi sistema... no la frecuencia del cristal que esté usando. 48Mhz para obtener 12mips y los 1,5MB de transmision del protocolo USB 2.0

El siguiente paso es configurar los fuses para que apartir de un cristal X obtener la frecuencia del sistema Y (en este caso 48Mhz), para eso nos vamos al DataSheet del 18Fxx5x, y a la página 31 y 32.

Vemos un peaaazo tabla en la que tendremos q mirar primero la columna de la izquierda (Input Oscillator Frecuency), seleccionamos la casilla correspondiente al cristal q estemos usando, en mi caso es de 12Mhz, ahora nos vamos a la columna de la derecha(Microcontroller Clock Frecuency) y buscamos los 48Mhz que queremos conseguir.

Ahora tenemos que ver que parámetros nos da la tabla para poner como Fuses, para el que estamos calculando tenemos:

PLL Division: +3 (011)
Clock Mode: HSPLL, ECPLL, ECPIO (a elegir entre uno de los tres...)
MCU Clock Division: +2 (00)

Por ultimo seleccionamos los fuses adecuados a esos parametros, esto ya dependerá un poco del compilador y los nosmbres q le haya dado, aunque generalmente se respetan los del datasheet, para el caso del CCS se tiene:

PLL Division: PLL3
Clock Mode: HSPLL
MCU Clock Division: USBDIV (para indicarle q vamos a usar el divisor tb para el USB), CPUDIV1 (aunq arriba sea +2, es el 00, y es el primero, usea "1"Giño

Para vuestro caso que es de 4Mhz tendriais:
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL1,CPUDIV1,VREGEN
#use delay(clock=48000000)


Bueno espero que os haya quedado un poco mas claro... y q no os haya terminado de liar :P

Saludos! Giño

Desconectado Lord_Jedator

  • PIC10
  • *
  • Mensajes: 2
RE: Módulo USB del 18Fx550
« Respuesta #57 en: 07 de Octubre de 2005, 15:13:00 »
Estoy Realizando un proyecto de conectar dos Pc atraves de un PIC18F4455, el PIC servira de interfase entre las dos PC donde una estara conectada por RS232 y la otra por USB, necesito ayuda, ya que no s programar en C y todo lo que consiguo esta en C y en Ingles, Gracias

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: Módulo USB del 18Fx550
« Respuesta #58 en: 07 de Octubre de 2005, 16:18:00 »
Para no saber programar has apuntado un poco alto ... Helado
Si juegas contra el mejor, pierdes como los demás.

Desconectado PABCAT

  • PIC10
  • *
  • Mensajes: 7
RE: Módulo USB del 18Fx550
« Respuesta #59 en: 29 de Octubre de 2005, 17:16:00 »
Que tal, Alguien sabe cuales son las instrucciones para poder adquirir datos desde el uart del 18f4550; es para complementar el codigo del usb y mandarle datos desde RS232.     Gracias