Autor Tema: dspic 33ep256mu806 no engancha con PLL (SOLUCIONADO)  (Leído 24218 veces)

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

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #15 en: 25 de Noviembre de 2011, 18:49:29 »
Hola!

Efectivamente era el cristal. Lo he cambiado y comienza afuncionar.
Sin embargo pasa una cosa que me aprece extraña. Segun mis calculos no esta aguantando que lo lleve a mas de 37.5 MIPS (75 MHz).

El crista nuevo  es de 20 MHz *de momento es el unico que he tenido a la mano y el cogido nuevo es el siguiente.

Código: [Seleccionar]
#include <p33EP256MU806.h> 
#include "dsp.h"
#include "libq.h"

////////////////////////////////////////////////////////Fusibles de operacion/////////////////////////////////////////////////////////////
_FOSCSEL( FNOSC_FRC )//oscilador RC en incio
_FOSC( POSCMD_XT & FCKSM_CSECMD & OSCIOFNC_OFF & IOL1WAY_OFF )//cambio posterior a xtal con pll y multiples programaciones de pines IO
_FWDT( FWDTEN_OFF )//watchdog disabled
//
///////////////////////////////////////////////////////////MAIN///////////////////////////////////////////////////////////////////////
int main(void){
int a,b,c;
TRISE=0;
PORTE=0;
//Cambio de oscilador RC a xtal con PLL para operacion a 60 MIPS
// Configure PLL prescaler, PLL postscaler, PLL divisor
PLLFBD=28;// M = 30
CLKDIVbits.PLLPOST=0;// N2 = 2
CLKDIVbits.PLLPRE=2;// N1 = 4
// Initiate Clock Switch to Primary Oscillator with PLL (NOSC = 0b011)
__builtin_write_OSCCONH(0x03);
__builtin_write_OSCCONL(0x01);
// Wait for Clock switch to occur
while (OSCCONbits.COSC!= 0b011);
// Wait for PLL to lock
while(OSCCONbits.LOCK!=1) {};
///////////////////////////////////////////////  Aqui termina la conficuracion del dsPIC a 60 MIPS//////////////////////////////////////////
while(1){
a++;
c=a+b;
PORTE=c;
}
}

Cuando pongo valores mayores en el PLLFBD, es cuando el dsPIC deja de responder, pero ya es un avance.
saludos!
« Última modificación: 25 de Noviembre de 2011, 19:07:20 por fram_22 »

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #16 en: 25 de Noviembre de 2011, 19:50:13 »
si, es logico que te de 75mhz, haz tu mismo las cuentas

osc*((M+2)/((N1+2)*(N2+2)))

osea 20*(30/8)=75

a cuanto lo quieres llevar? 60MIPS? 40MIPS??

para 60 seria:
120=20*((M+2)/(2*4));
120*8/20=M+2;
M=48-2=46;

para 40:
80=20((M+2)/(2*4));
80*8/20=M+2;
M=32-2=30;

A todo esto tienes que mirar que la frecuencia no sea menor que, o mayor que lo que te especifica el datasheet en cada paso, miralo por encima y veras a que me refiero, yo los calculos los he hecho de cabeza, pero no me he parado a ver si el PLL acepta los resultados o hay que cambiar los N1 y N2, se que el N1 esta bien, porque llega 5Mhz y eso si lo acepta.
« Última modificación: 25 de Noviembre de 2011, 19:52:54 por MerLiNz »

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #17 en: 25 de Noviembre de 2011, 20:55:27 »
si, es logico que te de 75mhz, haz tu mismo las cuentas

osc*((M+2)/((N1+2)*(N2+2)))

osea 20*(30/8)=75

a cuanto lo quieres llevar? 60MIPS? 40MIPS??

para 60 seria:
120=20*((M+2)/(2*4));
120*8/20=M+2;
M=48-2=46;

para 40:
80=20((M+2)/(2*4));
80*8/20=M+2;
M=32-2=30;

A todo esto tienes que mirar que la frecuencia no sea menor que, o mayor que lo que te especifica el datasheet en cada paso, miralo por encima y veras a que me refiero, yo los calculos los he hecho de cabeza, pero no me he parado a ver si el PLL acepta los resultados o hay que cambiar los N1 y N2, se que el N1 esta bien, porque llega 5Mhz y eso si lo acepta.
Hola Merlinz, gracias por tu respuesta:

La intencion es llevarlo a 60 MIPS.
Checando la hoja de datos. los rangos de frecuencia aceptados por el dsPIC son:

0.8 MHz<Fref<8 MHz (La frecuencia de entrada al PLL)
120 MHz<Fvco<340 MHz (Frecuenciad e salida del PLL)
Fosc<120 MHz (Frecuecnia del dspic)

Entonces para 60 MIPS se requiere:

N1=4 para que Fref sea =a 5 MHZ (PLLPRE=2)
M=48 para que Fvco sea = a 240 MHZ (PLLdiv=46)
N2=2 para que Focs sea = 120 MHZ (PLLpost=0)

Sin embargo si pongo valoes de PLLDIV mayores a 36 como en el ejemplo el dspic no responde, se resetea cuando intenta hacer el cambio de reloj.
Es por eso que solamente he podido llegar a ls 75 MHz que comentas. Lo cual aun no lo entiendo ya que los valores de frecuencia estan dentro de los rangos especificados por el datasheet. Esto no me cuadra del todo, espero que alguien tenga alguna idea de que sea lo que estoy haciendo mal.


saludos

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #18 en: 25 de Noviembre de 2011, 21:00:27 »
Una cosa mas, he cambiado el codigo para arrancar inicialmente con el oscilador primario (_FOSC(FNOSC_PRI))
y he logrado subir un poco mas la freciuencia hasta 95 MHz, pero nuevamente cualquier intento de elevarlamas alla de este punto (PLLFBD>36) termina en fallo.
Checando la hoja de datos, aun tengo las frecuencias dentro de los rangos, asi que no se que esta ocurriendo.
Realmente estoy confundido con lo que esta pasando.
Anexo el nuev ocodigo.

saludos

Código: [Seleccionar]
#include <p33EP256MU806.h> 
#include "dsp.h"
#include "libq.h"

void Init_Timer1( void );
////////////////////////////////////////////////////////Fusibles de operacion/////////////////////////////////////////////////////////////
_FOSCSEL( FNOSC_PRI )//oscilador primario sin PLL en incio
_FOSC( POSCMD_HS & FCKSM_CSECMD & OSCIOFNC_OFF & IOL1WAY_OFF )//cambio posterior a xtal con pll y multiples programaciones de pines IO
_FWDT( FWDTEN_OFF )//watchdog disabled
//
///////////////////////////////////////////////////////////MAIN///////////////////////////////////////////////////////////////////////
int main(void){
TRISE=0;
PORTE=0;
//Cambio de oscilador RC a xtal con PLL para operacion a 60 MIPS
// Configure PLL prescaler, PLL postscaler, PLL divisor
PLLFBD=36;// M = 38
CLKDIVbits.PLLPOST=0;// N2 = 1
CLKDIVbits.PLLPRE=2;// N1 = 4
// Initiate Clock Switch to Primary Oscillator with PLL (NOSC = 0b011)
__builtin_write_OSCCONH(0x23);
__builtin_write_OSCCONL(0x01);
// Wait for Clock switch to occur
while (OSCCONbits.COSC!= 0b011);
// Wait for PLL to lock
while(OSCCONbits.LOCK!=1) {};
///////////////////////////////////////////////  Aqui termina la conficuracion del dsPIC a 60 MIPS//////////////////////////////////////////
Init_Timer1();
while(1){

}
}
/* ISR ROUTINE FOR THE TIMER1 INTERRUPT */

void __attribute__((interrupt,no_auto_psv)) _T1Interrupt( void )
{
LATEbits.LATE1 = !LATEbits.LATE1;    
IFS0bits.T1IF = 0;
/* reset Timer 1 interrupt flag */
 
}
/*-----------------------*/
void Init_Timer1( void )
{

    T1CON = 0;              // Timer reset
  IFS0bits.T1IF = 0;      // Reset Timer1 interrupt flag
IPC0bits.T1IP = 6;      // Timer1 Interrupt priority level=4
  IEC0bits.T1IE = 1;      // Enable Timer1 interrupt
  TMR1=  0x0000; 
PR1 = 6000;           // Timer1 period register = 0.1 mS a 60 MIPS
T1CONbits.TON = 1;      // Enable Timer1 and start the counter

}

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #19 en: 25 de Noviembre de 2011, 21:02:45 »
puedes poner un esquema electrico de como conectas el pic? para frecuencias bajas he visto que no dan problemas por no poner condensadores, pero para frecuencias tan altas puede que necesite un buen filtrado y alimentacion, como minimo deberias poner la alimentacion tal y como pone en el datasheet.

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #20 en: 25 de Noviembre de 2011, 21:22:46 »
puedes poner un esquema electrico de como conectas el pic? para frecuencias bajas he visto que no dan problemas por no poner condensadores, pero para frecuencias tan altas puede que necesite un buen filtrado y alimentacion, como minimo deberias poner la alimentacion tal y como pone en el datasheet.

Hola:

Anexo el esquema, tambien anexo una foto de la tarjeta donde tengo montado el dsPIC. La fuente es una fuente comercial de laboratorio (BK precision), asi que no sospecho mucho de ella, de todas formas la tarjeta cuenta con un capacitor extra de 1000 uf, asi no creo que sea el ruido o al menos no lo habia considerado, quizas sea el moneto de checar con mas detenimineto esto. Haber que opinas.


Saludos!

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #21 en: 25 de Noviembre de 2011, 21:28:25 »
no cabia la foto asi que la pongo en este otro post

saludos

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #22 en: 26 de Noviembre de 2011, 06:16:55 »
el problema es que para un filtrado correcto que pongas un capacitador grande no quiere decir que filtre mejor, para altas frecuencias se requieren condensadores con baja ESR (baja resistencia).

En el apartado 2.2 puedes ver lo minimo recomendado por microchip, como ves son 6 condensadores de 0.1uf (excepto el vcap que es mayor). Que tu pongas uno de 10uf no quiere decir que hagas lo mismo que 6 condensadores de 0.1uf, a altas frecuencias importa mas que la resistencia del capacitador sea la minima, antes que su capacidad, y poniendo 6 condensadores consigues que la resistencia de estos disminuya (como poniendo resistencias en paralelo). A 120Mhz creo que deberias respetar todo esto, incluso si tienes problemas de ruido recomiendan ponerle un segundo condensador en paralelo a los actuales de 0.01uf, ademas de que los condensadores deben estar lo mas cerca posible de los pines de alimentacion.

Prueba a ponerle unos cuantos condensadores mas, sobretodo el de VCAP, es el regulador interno del pic (por dentro el pic trabaja a 1.8V), y tambien ponerle a todos los pines de alimentacion su respectiva alimentacion, y su condensador.

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #23 en: 26 de Noviembre de 2011, 09:51:22 »
Aclarar nada más que es conveniente hablar de impedancia a cierta frecuencia y no de resistencia  ;-) fram_22, para más detalles, por ejemplo uno de los documentos que podes encontrar es el siguiente: http://www.freescale.com/files/microcontrollers/doc/app_note/AN2321.pdf


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #24 en: 26 de Noviembre de 2011, 12:03:44 »
Hola
El capacitor que es utilizado con el regulador interno de 1.8 V ya esta puesto en la tarjta, creo que no se nota desde el angulo en que lo puse. faltaraan de poner los capacitores de desacople de 0.1 uf. Espero que terminen de solucionar el problema.
En cuanto tenga novedad lesw avizo. Muchas gras por esa informacion se me estaba pasando por completo.
saludos!

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #25 en: 28 de Noviembre de 2011, 16:19:32 »
Hola!

Ya tengo novedades para reportar. He agregado los capacitores y tambien he cambiado la fuente.
Tenia una fuente conmutada comercial y la he cambiando por una fuente lineal BK precision. Pero no he tenido cambio alguno en el comportamiento del dsPIC.
 Por otro lado, los de microchip finalmente me han respondido a la peticion de soporte soporte tecnico. (Despues de haber estado fuera de servicio por su fin de semana largo). Anexo la respuesta que me han dado por lo pronto.

Citar
I'm just starting to look at the issue, so I can't yet say for sure that this is the problem,
 but it looks like you used the "MPLAB C30" directory libraries for your project.
 These won't support dsPIC33E devices.  You will need the libraries in the "mplabc30" directory.
 Also, you should be using C30 v3.30c and MPLAB IDE v8.80. 
I would suggest using the default library locations rather than specifying them.
 
Also, I see references to COFF and ELF libraries; you should be using ELF as we go forward.


He checado mis versiones de MPLAB y C30. Ambas son correctas (8.8 y 3.30c)
Lo que me saca un poco de onda es lo que mencionan del directorio "mplabc30" en lugar de "MPLAB C30".
He buscado por todos lados y no logro encontrar el dichoso directorio que me mencionan. Alguien me podria hacer el favor de señalarme a que se refieren?

Tambien les anexo mi proyecto en caso de que alguien quiera jugar con el.
Les agradesco su ayuda e interes.

saludos!

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #26 en: 01 de Diciembre de 2011, 13:26:08 »
Hola:

Bueno finalmente he logrado hacer que funcione el dspiC a 60 MIPS!.

Utilizé el ejemplo de cambio de reloj de microchip y lo modifique para funcionar a 60 MIPS.
El cristal que utilizo es de 8 MHz. Aparentemente estaba usando cristales de mala calidad o algo asi.

Quiero aprovechar para agradecer por la ayuda que me brindaron.
Espero a alguien le sirva el proyecto por si se animan a empezar con los dsPIC33E.

Saludos!
« Última modificación: 01 de Diciembre de 2011, 13:49:41 por fram_22 »

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #27 en: 01 de Diciembre de 2011, 13:51:44 »
parte dos del archivo.
Por cierto si algun moderador pudiera agregar la palabra resuelto al tema, se los agradeceria.

saludos!

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #28 en: 01 de Diciembre de 2011, 15:22:11 »
Entonces fue el cristal que estaba malo  :?.

Ya me llegan pic24E esperame  ;-).
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado fram_22

  • PIC18
  • ****
  • Mensajes: 316
Re: dspic 33ep256mu806 no engaarranca con PLL
« Respuesta #29 en: 01 de Diciembre de 2011, 16:29:29 »
Entonces fue el cristal que estaba malo  :?.

Ya me llegan pic24E esperame  ;-).

si como siemrpe resulto ser una tonteria. Pero bueno a la roxime tendre mas cuidado con el material reciclado.

cuando te lleguen los pic24e, si te puedo ayudar en algo no dudes en preguntar!


 

anything