TODOPIC
Microcontroladores PIC => dsPIC => Mensaje iniciado por: astoroth_ en 16 de Enero de 2006, 03:37:00
-
Hola a todos, necesito sacar el máximo rendimiento a un dspic30F4011 y no me aclaro con los modos de reloj.
¿Alguien me podría explicar un poco qué diferencia hay entre cada modo de reloj y qué debo hacer para poder trabajar a la máxima velocidad (30 MIPS)?
Muchas gracias
-
Buenas.
Yo he trabajado con el 30F6012 pero supongo que en este tema los dsPIC son iguales.
Para conseguir 30MIPS deberás proporcionar 120MHz de reloj al PIC. Para conseguirlos, lo mejor es utilizar el PLL interno del PIC. Como verás, el PLL multiplica la frecuencia de entrada al PIC por un factor que puede ser 4X, 8X y 16X
Si utilizas la máxima (16X), la frecuencia de entrada deberá ser de 120/16=7.5MHz
Estos 7,5 MHZ, los puedes conseguir externamente y entonces configuras el PIC con "external clock mode PLL 16X" o bien los puedes poner con un cristal de cuarzo conectado como toda la vida en cuyo caso, lo configuras como "XT cristal oscilator mode PLL 16X"
Una cosa a tener en cuenta es que el PLL no se puede utilizar en modo HS, es decir con cristales mayores a 10MHz, es decir no puedes utilizar el modo HS PLL 8X con un cristal de 14MHZ
Bueno espero haberte aclarado algo
-
Muchas gracias, me has aclarado mucho las cosas. Es que la primera vez que lees en el datasheet "tantisimosmil" modos de configuración te vuelves un poco mico... Solo una cosa más:
¿Sabes si hay diferencia sustancial entre utilizar el modo XT o el HS como comentas...? Por lo que dices y mirando el datasheet creo entender, por ende, que en el modo HS no se puede alcanzar una velocidad tan elevada como en el XT. ¿Me equivoco?
Muchas gracias
Javio (Valencia)
-
Los modos XT y HS se diferencian únicamente en la frecuencia máxima del crital. Con el XT se pueden poner critales hasta los 10MHz como máximo. Con HS puedes poner cristales desde 10MHZ hasta los 40MHZ creo.
El problema es que con el HS no se puede activar el PLL, por lo que, aunque pongas un cristal de 40MHZ, sólo conseguirás 10 MIPS, mientras que con un simple cuarzo de 4MHZ con el PLL de 16X conseguirás 16MIPS.
-
Como bien dice Antonio, para llegar a 30MIPS habría que poner un cristal de 7,5MHz pero existe un pequeño problema: no los hay (al menos yo no los he encontrado). Por eso te diré que con un cristal de 8MHz el 30F4011 tira perfectamente a 32MIPS, se calienta un poco, pero ni siquiera requiere de disipador.
Otra opción, que no tienen todos los dsPIC, pero que sí que implementa el 30F4011 es usar el oscilador interno. Curiosamente dicho oscilador puede trabajar a 7,5MHz con lo cual tu problema queda resuelto. Tengo un ejemplo de 30F4011 trabajando con oscilador interno en la Librería para display Nokia 3310 con dsPIC, que aparece en la sección Proyectos de El Rebujito.
-
Como último apunte a lo que dice nocturno66: yo utilizo normalmente un cristal a 7.37MHz por 2 razones:
1- Es el mayor de los valores comerciales que no supera el máximo
2- Permite tener baud-rates con errores mínimos en las UARTs
Salu2
-
Muchas gracias a todos.
La verdad es que cuando te metes en una arquitectura nueva todo es rarísimo. Ya os contaré como va.
Un saludo
Javio
-
Acabo de descubrir lo que dijo nocturno del oscilador interno FRC.
Los primeros dsPIC que he utilizado son los 30F6012 y 30F1614 que tienen un oscilador interno de 8MHz.
Los nuevos que me han llegado son la versión A de los mismos y como novedad con respecto a los anteriores, tienen el oscilador curiosamente a 7.37MHz, con lo cual los 30MIPS estan conseguidos.
P.D. Espero que no varíe mucho con la temperatura 7.372MHZ +/- 2% @ 25ºC 5V
Parece aceptable no?
-
Hombre el 2% son nada más y nada menos que 20 000 ppm (partes por millón), frente a las 20 ppm de precisión que ofrece un cristal externo de 8 MHz, creo que todavía son bastante poco precisos. De todas formas es un adelanto. En mi caso concreoto, 20 000 ppm=20 o/oo (por mil)=2% es demasiada poca resolución y me está prohibido utilizarlo.
Un saludo
Javio
-
Bueno, comparado con un cristal de cuarzo tiene bastante desviación. Sin embargo, para mi aplicación, que no necesito medir tiempo con precisión ni tengo unos requisitos especiales, creo que me va a servir.
No obstante tengo que "ponerlo a prueba".
-
Pues creo que sólo debe haber inconvenientes en aplicaciones que requieran mucha precisión. Yo he probado a comunicar el dsPIC con el PC 38400 bps con oscilador interno e iba como la seda.
-
Que bien!
Poniendo unos pocos dsPICS a 30MIPS ya tenemos una estufa en casa! 
Por cierto atorne hace unos dias vi un post tuyo en el foro de Microchip.
Salu2!
-
Escrito originalmente por nocturno66
Pues creo que sólo debe haber inconvenientes en aplicaciones que requieran mucha precisión. Yo he probado a comunicar el dsPIC con el PC 38400 bps con oscilador interno e iba como la seda.
Exacto. A no ser que necesites precisión, el oscilador interno es la mejor opción.
-
Escrito originalmente por cHiPmAn
Por cierto atorne hace unos dias vi un post tuyo en el foro de Microchip.
Si... también estoy "haciendo ruido" por ahí