Autor Tema: Fuses del dsPIC30F4012  (Leído 3128 veces)

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

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Fuses del dsPIC30F4012
« en: 15 de Mayo de 2013, 09:16:53 »
¿Alguien sabe donde encontrar la documentación sobre cómo configurar los fuses del dsPIC30F4012 con el compilador C30?

quiero configurar _FOSC(), pero también me gustaría saber cómo manejar el resto de fuses.


Saludos.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: Fuses del dsPIC30F4012
« Respuesta #1 en: 15 de Mayo de 2013, 09:22:55 »
El único archivo que conozco del que se pueden "adivinar" los fuses es del archivo header:

p30F4012.h


Saludos

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re: Fuses del dsPIC30F4012
« Respuesta #2 en: 15 de Mayo de 2013, 16:09:40 »
Estoy probando varios programas y no funcionan los fuses en ninguno.

Estoy programando el dsPIC30F4012 con un PICKIT3 y el reloj siempre funciona a 7.37 Mhz

Intento cambiar la fuente de reloj al reloj externo de 4Mhz o al reloj interno de 512 kHz y no va ninguno.

El programa para 512khz es:

Código: [Seleccionar]
/*
   TEST
*/
#include "p30F4012.h"

_FOSC(CSW_FSCM_ON & LPRC);         // CONFIGURACIÓN DEL OSCILADOR A 512 khz
_FWDT(WDT_OFF);                    // WATCHDOG
_FGS(CODE_PROT_OFF & GWRP_OFF);   // PROTECCIÓN DEL CODIGO
_FICD(ICS_PGD)                     // DEBUG


/*
   Main program
*/
int main(void) {
   TRISBbits.TRISB0 = 0;
  
   while(1) {
      LATBbits.LATB0 = 0;
      LATBbits.LATB0 = 1;
   }
}

El programa para el oscilador externo es:

Código: [Seleccionar]
/*
   TEST
*/
#include "p30F4012.h"
_FOSC(CSW_FSCM_ON & XT_PLL8);      // CONFIGURACIÓN DEL OSCILADOR A 4x8=32Mhz
_FWDT(WDT_OFF);                    // WATCHDOG
_FGS(CODE_PROT_OFF & GWRP_OFF);   // PROTECCIÓN DEL CODIGO
_FICD(ICS_PGD)                     // DEBUG


/*
   Main program
*/
int main(void) {
   TRISBbits.TRISB0 = 0;
  
   while(1) {
      LATBbits.LATB0 = 0;
      LATBbits.LATB0 = 1;
   }
}


En todos los casos mido siempre 462hz en el pin RB0 (lo esperado para un reloj de 7.39Mhz)

La placa ha funcionado anteriormente a otras velocidades de reloj.
¿Alguna idea?

Saludos.
« Última modificación: 15 de Mayo de 2013, 16:11:56 por Picuino »


 

anything