Pagina 1 di 2

Problemi allo start up PIC18F452

MessaggioInviato: 26 dic 2011, 12:33
da cip
Ciao,

ho una demoboard autocostruita ed un programmatore PicKit 2 Microchip originale.
Ho sempre utilizzato entrambi senza problemi con PIC16F84, PIC16F876 e PIC16F877, sto passando al PIC18F452.

In pratica mi succede che il micro funziona solo se viene alimentato dal PICKIT2 (al termine della programmazione faccio Release from reset) mentre se scollego il PICKIT2 dal connettore ICSP il micro non funziona con l'alimentatore della demoboard.
Ho già provato a sostituire il micro ma il risultato è sempre lo stesso.

Allego il codice del programma (fa semplicemente lampeggiare un led) :

Codice: Seleziona tutto
#include <pic18.h>
#include "delay.h"
#include "clk_freq.h"



#if defined(_18F252) || defined(_18F452)
  #warning Compiled for PIC18F252 or PIC18F452
  #if PIC_CLK<8000000
   __CONFIG(1,XT & OSCSDIS);
  #else
   __CONFIG(1,HS & OSCSDIS);
  #endif
  __CONFIG(2,BORDIS & PWRTEN & WDTDIS);
  __CONFIG(4,LVPDIS);
#else
  #error Unknown microcontroller
#endif

void main (void)

{
TRISD=0x00;


while (1)
{

PORTD=0x00;
DelayBigMs(500);
PORTD=0x01;
DelayMs(50);
}
}


Dove sto sbagliando ?

Grazie per l'attenzione.

Re: Problemi allo start up PIC18F452

MessaggioInviato: 27 dic 2011, 14:50
da Paolino
Ciao Foto Utentecip.

Prova a mettere un ritardo uguale sia per lo stato ON quanto per quello OFF del LED:

Codice: Seleziona tutto
while (1)
{

PORTD=0x00;
DelayBigMs(250); // ritardo uguale a ON
PORTD=0x01;
DelayBigMs(250); // ritardo uguale a OFF e stessa funzione
}


Ho abbassato il valore del ritardo a 250, valore minore di 255: non sapendo con quale compilatore stai lavorando (non lo hai specificato), può darsi che la funzine di DelayBigMS non accetti valori oltre il 255.

Potresti specificare cosa significa che il PIC non funziona? Riesci a misurare FOSC in uscita al PIC?

Ciao.

Paolo.

Re: Problemi allo start up PIC18F452

MessaggioInviato: 27 dic 2011, 19:10
da cip
Intanto grazie per l'attenzione.
Utilizzo il compilatore PIC18 della HI-TECH versione 9.50.
In pratica il PIC non parte proprio, nel senso che il programma non gira.
Sui piedini OSC1 ed OSC2 è presente una sinusoide ma non ho misurato la frequenza, eventualmente la misuro e poi ti dico.
Ho provato a semplificare ulteriormente il programma con uno che fa semplicemente accendere un led, questo è il listato :

Codice: Seleziona tutto
#include <pic18.h>

#define PIC_CLK 20000000

#if defined(_18F252) || defined(_18F452)
  #warning Compiled for PIC18F252 or PIC18F452
  #if PIC_CLK<8000000
   __CONFIG(1,XT & OSCSDIS);
  #else
   __CONFIG(1,HS & OSCSDIS);
  #endif
  __CONFIG(2,BORDIS & PWRTEN & WDTDIS);
  __CONFIG(4,LVPDIS);
#else
  #error Unknown microcontroller
#endif

void main (void)

{
TRISD=0x00;


while (1)
{
PORTD=0x01;
}
}


Appena ho finito di programmare il micro con PIC KIT 2 faccio Release from reset ed il micro funziona (accende il led).

Se scollego il PIC KIT 2 e collego alla demoboard il suo alimentatatore il micro non funziona (il led rimane spento, se premo il tasto di reset il programma riparte regolarmente).
Succede la stessa cosa anche sulla demoboard prestatada un amico, quindi mi sembra strano che siano entrambe guaste.

L'unica cosa che ho notato è che ogni tanto il led si accende se sfilo e ri-infilo velocemente il connettore di alimentazione della demoboard, ma comportandosi allo stesso modo su 2 demoboard diverse faccio fatica a dare la colpa a loro.

Mi sembra quasi un problema di configurazione del PIC18F452, forse qualche fuses settato male o mancante.

Re: Problemi allo start up PIC18F452

MessaggioInviato: 27 dic 2011, 19:14
da cip
Scusate ho scritto male :

Se scollego il PIC KIT 2 e collego alla demoboard il suo alimentatatore il micro non funziona (il led rimane spento, se premo il tasto di reset il programma riparte regolarmente).


In pratica il micro funziona solo con il PIC KIT 2 collegato al connettore ICSP, se resetto tutto ok, il programma riparte riaccendendo il led.

Com l'alimentatore della demoboard non funziona, nemmeno resettando più volte il micro. Parte solo saltuariamente, come precedentemente spiegato, quando sfilo e ri-infilo velocemente il jack di alimentazione.

Re: Problemi allo start up PIC18F452

MessaggioInviato: 27 dic 2011, 20:19
da AjKDAP
Sei hai notato questa cosa collegando e scollegando il pickit, non direi che sia un problema di alimentazione, ma magari del circuito di reset.

Com'è collegato il pin 1 (MCLR/VPP) nella demoboard?

Re: Problemi allo start up PIC18F452

MessaggioInviato: 27 dic 2011, 23:46
da cip
E' collegato con una resistenza da 10k verso VDD, l'MCLR è collegato anche all'omonimo pin sul connettore ICSP.
Poi c'è un pulsante di reset che porta a massa l'MCLR quando lo si preme.

Re: Problemi allo start up PIC18F452

MessaggioInviato: 28 dic 2011, 0:44
da AjKDAP
Prova ad aggiungere anche un condensatore da 100nF tra il pin 1 e GND.

e poi vedi se hai ancora lo stesso problema.

Ciao

Re: Problemi allo start up PIC18F452

MessaggioInviato: 28 dic 2011, 1:19
da TardoFreak
Mah, il sistema migliore per togliersi ogni dubbio è quello di modulare un' uscita.
Inoltre, nei PIC18, non si usa il registro PORTx per le uscite ma il LATx che accede direttamente al latch, come indicato nel datasheet DS39564C-page 87.
Quindi potresti provare a modificare il ciclo infinito in:
Codice: Seleziona tutto
while (1)
{
  LATD = 0x00;
  LATD = 0xff;
}

In questo modo, mettendo la sonda dell' oscilloscopio su un bit qualsiasi della porta D vedi subito se funziona o no.

Re: Problemi allo start up PIC18F452

MessaggioInviato: 28 dic 2011, 10:12
da Paolino
AjKDAP ha scritto:Prova ad aggiungere anche un condensatore da 100nF tra il pin 1 e GND

Con ICD3 è una soluzione che Microchip sconsiglia di fare. Non ho PICKit2, quindi non mi sono preoccupato di analizzare questa cosa anche per quel programmatore, ma oggettivamente non metterei il condensatore.

PORTD può lavorare anche come Parallel Slave Port (PSP) per poter collegare un bus esterno a 8 bit. La modalità PSP è abilitata tramite il bit4 di TRISE. Al reset, PORTD viene inizializzata come I/O digitale (PSP disabilitata), ma per sicurezza potresti forzare il bit 4 di TRISE a 0.

Prova a scrivere lo stesso codice anche per PORTC e vediamo che cosa succede.

Ciao.

Paolo.

Re: Problemi allo start up PIC18F452

MessaggioInviato: 28 dic 2011, 19:57
da cip
Fatto, anche su PORTC ma fa esattamente lo stesso problema, su 2 demoboard diverse.
Ho messo LATC=0xff; e ho provato a vedere con un led se ad esempio RC2 accende il led.

Ho notato che il led tende a "sfarfallare" (qualche volta si spegne se acceso e viceversa) quando avvicino o tocco lievemente i piedini del PIC, in prossimità dei piedini che vanno dal 36 al 40 ma lo fa su entrambe le demoboard.