Autor Tema: Configuración de un dspic33fj para una frecuencia de 80 MHz  (Leído 3425 veces)

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

Desconectado Quad_Transistor

  • PIC10
  • *
  • Mensajes: 3
Configuración de un dspic33fj para una frecuencia de 80 MHz
« en: 11 de Abril de 2014, 18:07:14 »
Buen día!

Aclaro que soy nuevo en el tema de los dspic (por si cometo alguna tontería). Deseo hacer funcionar un dspic33fj64gp802 a una frecuencia de 80Mhz para aprovechar todo su potencial, para ello tengo un cristal externo de 8 MHz con el cual he estado trabajando pero por más que configuro los registros para el PLL (CLKDIV,PLLFBD,PLLFBD)no logro configurar el dispositivo para que funcione a dicha frecuencia, estoy usando un compilador PCWHD version 5.015. Los registros los configuro como menciona la hoja de datos del fabricante. Alguien ha tenido el mismo problema con ese mismo compilador? Podrían ayudarme?

La forma en que verifico que no funciona a la frecuencia deseada es programar un timer para que haga una interrupción cada tantos milisegundos, pero nunca lo hace correctamente.

Saludos,

Muchas gracias por su respuesta.

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Configuración de un dspic33fj para una frecuencia de 80 MHz
« Respuesta #1 en: 11 de Abril de 2014, 20:53:55 »
sin codigo no te podremos ayudar

Desconectado Quad_Transistor

  • PIC10
  • *
  • Mensajes: 3
Re: Configuración de un dspic33fj para una frecuencia de 80 MHz
« Respuesta #2 en: 12 de Abril de 2014, 19:10:05 »
Disculpa mi omisión el código es el siguiente:

Código: [Seleccionar]
#include "C:\Archivos de programa\PICC\Devices\33FJ64GP802.h"
#device ADC=12

#FUSES ICSP1
#FUSES PR_PLL              // Primary Oscillator with PLL
#FUSES HS             // Crystal osc <= 4mhz for PCM/PCH , 3mhz to 10 mhz for PCD
#FUSES NOIESO           // Internal External Switch Over mode enabled
#FUSES CKSNOFSM       // Clock Switching is enabled, fail Safe clock monitor is disabled
#FUSES NOWDT          //  Watch Dog Timer
#FUSES NOCKSFSM         // Clock Switching is enabled, fail Safe clock monitor is enabled
#FUSES PUT2           // Power On Reset Timer value 2ms
#FUSES NOJTAG         // JTAG disabled
#FUSES NODEBUG        // No Debug mode for ICD
#FUSES NOPROTECT
#FUSES WINDIS

#use delay(clock=80M, xtal=20M)
#include "main.h"
#include <stdlib.h>
#include <math.h>

#BYTE OSCCON = 0x0742
#BYTE CLKDIV = 0x0744
#BYTE PLLFBD = 0x0746


int8 ban; //bandera del timer

#INT_TIMER1
void TIMER1_isr(void)

    ban=0;
    output_high(PIN_B5);
    set_timer1(60848); //Tiempo de muestreo de 30ms TMR=(Ts)*(fxtal)/(2*Tdir)
}

//------------Programa principal------------//

void main(void){
   CLKDIV = 0x0001;
   PLLFBD = 0x0016;
   setup_timer1(TMR_INTERNAL | TMR_DIV_BY_256);           //config timer
   set_timer1(60848);
   setup_wdt(WDT_OFF);
   enable_interrupts(INT_TIMER1); 
   enable_interrupts(GLOBAL);
   
   while(TRUE){
      output_low(PIN_B5);
      output_high(PIN_B6);
      ban=1;
      while(ban);
      output_low(PIN_B6); 
   }
}

Los fusibles que me graba el CCS son:

Configuration Fuses:
   Word  1L: 00CF   NOWRTB NOBSS NORBS
          H: FF00 
   Word  2L: 00CF   NOWRTSS NOSSS NORSS
          H: FF00 
   Word  3L: 0007   NOWRT NOPROTECT
          H: FF00 
   Word  4L: 0000   FRC NOIESO
          H: FF00 
   Word  5L: 0066   HS NOOSCIO IOL1WAY CKSNOFSM
          H: FF00 
   Word  6L: 005F   WPOSTS16 WPRES128 WINDIS NOWDT
          H: FF00 
   Word  7L: 0011   PUT2 NOALTI2C1
          H: FF00 
   Word  8L: 00C3   ICSP1 NOJTAG NODEBUG
          H: FF00 

No sé por que razón me activa el FRC y no me respeta el PLL o lo estoy interpretando mal?.

Muchas gracias por su tiempo,

Saludos

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Configuración de un dspic33fj para una frecuencia de 80 MHz
« Respuesta #3 en: 13 de Abril de 2014, 02:12:50 »
Te falta la parte de cambiar del primario al primario con pll, mirate los ejemplos que viene de microchip y veras a que me refiero, se trata de configurar el registro OSCCON. La idea es poner el oscilador primario y luego cambiar a pll mediante la modificacion de osccon y esperar a que se estabilice.

Desconectado Quad_Transistor

  • PIC10
  • *
  • Mensajes: 3
Re: Configuración de un dspic33fj para una frecuencia de 80 MHz
« Respuesta #4 en: 14 de Abril de 2014, 12:47:24 »
Perfecto, así lo haré, esta tarde lo probaré y te cuento como me fue. Muchas gracias.

Desconectado Mando31

  • PIC10
  • *
  • Mensajes: 32
Re: Configuración de un dspic33fj para una frecuencia de 80 MHz
« Respuesta #5 en: 17 de Abril de 2014, 02:16:22 »
Otra cosa que noto es que indicas que trabajas con un xtal de 8MHz fisico pero en el codigo indicas que tome un xtal de 20MHz y con ello CCS esta tomandolo para las configuraciones y en base a 20MHz llegar a los 80MHz y tu al colocarle uno de 8MHz la configuracion ya no concuerda, prueba a indicarle a CCS que trabajas a 8MHz.

Código: [Seleccionar]
De: #use delay(clock=80M, xtal=20M)
A: #use delay(clock=80M, xtal=8M)

Saludos.