Autor Tema: Timer "corrupto" en micros con USB SOLUCIONADO  (Leído 5740 veces)

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

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Timer "corrupto" en micros con USB
« Respuesta #15 en: 21 de Agosto de 2009, 18:55:39 »
...
External Clock modes, up to 48 MHz

Clock Mode         Clock Frequency          4x PLL Enabled             CPUDIV<1:0>             System Clock Frequency (MHz)
EC High                      48 MHz                           No                          00                                           48
                                                                                                    01                                            24
                                                                                                   10                                             16
                                                                                                   11                                            12

Y otro punto que lo cita es en el 2.3.4 External clock que pone:
EC Low power 0 – 250 kHz
EC Medium power 250 kHz – 4 MHz
EC High power 4 – 48 MHz

...

ajá, exactamente. Observa que dice Clock Mode y no Crystal Mode. Clock mode significa que se puede conectar una fuente osciladora externa, es decir, el modulo oscilador interno cambiaría su circuito que usa con el cristal (el que forma el oscilador) y dejaría "una línea directa" para recibir el pulso de clock ya generado externamente.


por lo menos así lo entiendo yo, -espero no equivocarme jeje-

de todas formas usar un cristal de 40MHz yo lo veo como demasiado, si estas usando un timer que trabaja con el clock del CPU, entonces deberías usar el PLL. Es posible trabajar el pic a 48MHz y desactivar el modulo USB (aunque entiendo que quieres son 40Mhz y estaríamos volviendo al problema inicial) :(




 
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Timer "corrupto" en micros con USB
« Respuesta #16 en: 22 de Agosto de 2009, 02:03:53 »
Amigos, lo dice la datasheet, en su página 375: máximo cristal 20MHz, o sea, como en todos los PIC  :mrgreen:



Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Timer "corrupto" en micros con USB
« Respuesta #17 en: 22 de Agosto de 2009, 17:31:08 »
gracias Manolo (intenté y no pude hallar ese dato)  :)



La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Timer "corrupto" en micros con USB
« Respuesta #18 en: 24 de Agosto de 2009, 02:58:59 »
Hola compañeros:

La verdad es que no sabia que diferencia había entre EC (External Clock) y el Oscilator frequency.

Entonces si yo pongo un cristal de 12MHz y le pongo un PLL x 4, el pic irá internamente a 48MHz, esto es, ejecutará una instrucción cada 4 ciclos de reloj es decir cada 83 ns ( 48/4 = 12MHz => 1/12MHz = 0.083 us = 83 ns ) o ¿ el PLL sólo sirve para el usb ?

En este caso lo que más me interesa es que el micro haga las intrucciones lo más rápido posible, con lo que ahora mismo ya no sé cual es la mejor posibilidad.

Muchas gracias por la ayuda e interes que estais mostrando, como siempre sois un gran foro.

Un saludete.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Timer "corrupto" en micros con USB
« Respuesta #19 en: 25 de Agosto de 2009, 16:43:16 »
...Entonces si yo pongo un cristal de 12MHz y le pongo un PLL x 4, el pic irá internamente a 48MHz, esto es, ejecutará una instrucción cada 4 ciclos de reloj es decir cada 83 ns ( 48/4 = 12MHz => 1/12MHz = 0.083 us = 83 ns )
...

¡exactamente!, esa duda la tuve alguna vez:

http://www.todopic.com.ar/foros/index.php?topic=21033.msg162814#msg162814


la etapa del bloque oscilador se antepone al modulo USB y al CPU, el cpu es el PiC propiamente hablando.



La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Timer "corrupto" en micros con USB
« Respuesta #20 en: 26 de Agosto de 2009, 03:33:28 »
Entonces, si lo he entendido bien, con esta afirmación entiendo que la CPU de nuestro micro será el puesto en código del CCS como

Código: [Seleccionar]
#use delay(clock=48000000)
Aunque le pongamos un cristal físico de 12MHz

¿He entendido bien?

Un saludete y gracias.

Acabo de probar un programa con un cristal de 12MHz, poniendole un 4xPLL y la instrucción en el código de #use delay(clock=48000000) y el temporizador va a la perfección con los datos puestos como si estubiese funcionando a una frecuencia de 48MHz.
« Última modificación: 26 de Agosto de 2009, 04:12:56 por c4_esp_VR »

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Timer "corrupto" en micros con USB
« Respuesta #21 en: 27 de Agosto de 2009, 03:03:10 »
Tuve un problema parecido con un 18F2550 al querer hacerlo correr a 48mhz sin usar su PLL interno (porque consume mas). Puse cristal de cuarzo de dos patas (el tipico) al pic y no funciono, luego me di cuenta que en el datasheet decia que SI acepta externo de 48mhz PERO externo externo xD, ocea de esos que son de 4 pines y uno de ellos va al pic: oscilador externo, no cristal.

Bueno pues eso, exitos.
Salu2.

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Timer "corrupto" en micros con USB
« Respuesta #22 en: 27 de Agosto de 2009, 03:14:33 »
Citar
Tuve un problema parecido con un 18F2550 al querer hacerlo correr a 48mhz sin usar su PLL interno (porque consume mas). Puse cristal de cuarzo de dos patas (el tipico) al pic y no funciono, luego me di cuenta que en el datasheet decia que SI acepta externo de 48mhz PERO externo externo xD, ocea de esos que son de 4 pines y uno de ellos va al pic: oscilador externo, no cristal.

Yo pensaba que esos de los 4 pines son osciladores como los de 2 pero que tienen una alimentación que les hacen ser más precisos incluso a temperaturas más altas...¿estaba equivocado entonces...?

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Timer "corrupto" en micros con USB
« Respuesta #23 en: 27 de Agosto de 2009, 16:20:51 »
Entonces, si lo he entendido bien, con esta afirmación entiendo que la CPU de nuestro micro será el puesto en código del CCS como

Código: [Seleccionar]
#use delay(clock=48000000)
Aunque le pongamos un cristal físico de 12MHz

¿He entendido bien?
...

sip, has entendido bien  :)

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado c4_esp_VR

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 735
    • www.muchotrasto.com
Re: Timer "corrupto" en micros con USB
« Respuesta #24 en: 27 de Agosto de 2009, 18:37:46 »
Hola compañeros:

Ante todo muchas gracias por la ayuda. Ya me ha quedado mucho más claro el tema de los cristales de los micros y el porqué no me funcionaba el pic.

Como siempre estais aquí pa arrimar el hombro y compartir vuestras experiencias.

Un saludete foreros.  :-/ :-/ :-/


 

anything