Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

PIC difettosi o errori nei programmi?

Tipologie, strumenti di sviluppo, hardware e progetti

Moderatore: Foto UtentePaolino

0
voti

[11] Re: PIC difettosi o errori nei programmi?

Messaggioda Foto UtenteMatteo1991 » 4 lug 2013, 17:54

Ho fatto numerose prova ma sembra essere tutto morto.... eppure mplab dice che è tutto ok e che la programmazione è avvenuta. lo schema è il seguente:


mentre il codice è questo:
Codice: Seleziona tutto
#include <xc.h>
#pragma config FOSC = XT /*oscillatore esterno*/
#pragma config WDTE = OFF
#pragma config CP = OFF
#pragma config MCLRE = ON
#define _XTAL_FREQ 4000000

void main(void)
{
TRISBbits.TRISB7 = 1;
TRISBbits.TRISB6 = 1;
TRISBbits.TRISB5 = 0;
TRISBbits.TRISB4 = 0;
TRISBbits.TRISB3 = 0;
TRISBbits.TRISB2 = 0;
TRISBbits.TRISB1 = 0;
TRISBbits.TRISB2 = 0;
TRISBbits.TRISB0 = 0;



ANSELHbits.ANS8 = 0;
ANSELHbits.ANS9 = 0;
ANSELHbits.ANS10 = 0;
ANSELHbits.ANS11 = 0;
ANSELHbits.ANS12 = 0;
ANSELHbits.ANS13 = 0;

WPUBbits.WPUB0 = 1;
WPUBbits.WPUB1 = 1;
WPUBbits.WPUB2 = 1;
WPUBbits.WPUB3 = 1;
WPUBbits.WPUB4 = 1;
WPUBbits.WPUB5 = 1;
WPUBbits.WPUB6 = 1;
WPUBbits.WPUB7 = 1;
OPTION_REGbits.nRBPU=1;

while(1) {/*never ending cycle*/
PORTBbits.RB3 = 0;
__delay_ms(1000);
PORTBbits.RB3 = 1;
__delay_ms(1000);
}
}

Nel while ho provato con tutti gli "RB" (cioè ho provato a cambiare volta per volta da RB0 a RB5) ma niente, non funziona! ho provato anche con la porta C.... niente di niente...
"Scrivere la propria storia come si scrive la Storia: con la veemenza di un conquistatore di imperi."
Avatar utente
Foto UtenteMatteo1991
406 2 4 12
Frequentatore
Frequentatore
 
Messaggi: 280
Iscritto il: 28 giu 2012, 16:38

0
voti

[12] Re: PIC difettosi o errori nei programmi?

Messaggioda Foto UtenteTardoFreak » 4 lug 2013, 18:02

Il condensatore da 10n non ci va. Lascia solo la resistenza.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

-1
voti

[13] Re: PIC difettosi o errori nei programmi?

Messaggioda Foto UtenteMatteo1991 » 4 lug 2013, 22:50

In un mio progetto con un 12f675 senza capacità non funzionava la programmazione..... :roll:
"Scrivere la propria storia come si scrive la Storia: con la veemenza di un conquistatore di imperi."
Avatar utente
Foto UtenteMatteo1991
406 2 4 12
Frequentatore
Frequentatore
 
Messaggi: 280
Iscritto il: 28 giu 2012, 16:38

0
voti

[14] Re: PIC difettosi o errori nei programmi?

Messaggioda Foto UtenteShockwaver » 7 lug 2013, 1:46

Ehm.. Quella C sarebbe il condensatore di bypass/decoupling.. Io direi di non toglierlo e magari spingerlo fino a 100n e sicuramente metterlo quanto più incollato possibile a Vdd :D
Inoltre se non sei in programmazione o debug altri 100nF su MCLR stabilizzerebbero il master clear. In alternativa puoi usare, sempre se non stai debuggando, il fuse MCLRE = OFF.
Ripeto: HAI PROVATO CON I REGISTRI LAT??

Edit: solo in fase di programmazione e debug, io lascio sempre gestire il MCLR interamente al PK3: leverei quei 10k di pull-up.
Anyone who has never made a mistake has never tried anything new
Two things are infinite: universe and human stupidity, and I'm not sure about the former
You did not really understand something unless you can explain it to your grandmother
A. Einstein
Avatar utente
Foto UtenteShockwaver
770 1 5 11
Expert
Expert
 
Messaggi: 859
Iscritto il: 3 mar 2010, 18:56

0
voti

[15] Re: PIC difettosi o errori nei programmi?

Messaggioda Foto UtenteShockwaver » 7 lug 2013, 2:29

Ops.. Dimenticavo che quel PIC non prevede registri LAT :oops:
Anyone who has never made a mistake has never tried anything new
Two things are infinite: universe and human stupidity, and I'm not sure about the former
You did not really understand something unless you can explain it to your grandmother
A. Einstein
Avatar utente
Foto UtenteShockwaver
770 1 5 11
Expert
Expert
 
Messaggi: 859
Iscritto il: 3 mar 2010, 18:56

0
voti

[16] Re: PIC difettosi o errori nei programmi?

Messaggioda Foto UtenteShockwaver » 7 lug 2013, 17:32

Mah.. la programmazione è lineare (a parte i WPU che sono bypassati quando i relativi bit dei registri TRIS sono a 0 e il pin funziona come output... quindi puoi anche evitare di settare i bit WPUBx). Non so che dire.. sicuro che i led funzionano? :lol:
Scherzi a parte.. prova a fare uno Step-over durante il debug sull'istruzione che dovrebbe accendere il led...
Anyone who has never made a mistake has never tried anything new
Two things are infinite: universe and human stupidity, and I'm not sure about the former
You did not really understand something unless you can explain it to your grandmother
A. Einstein
Avatar utente
Foto UtenteShockwaver
770 1 5 11
Expert
Expert
 
Messaggi: 859
Iscritto il: 3 mar 2010, 18:56

1
voti

[17] Re: PIC difettosi o errori nei programmi?

Messaggioda Foto UtenteTardoFreak » 7 lug 2013, 23:15

La user guide del PicKit3 dice espressamente di non mettere nessun condensatore su MCLR.
Poi, per carità, può essere che la Microchip dica fesserie.
Io il condensatore l' ho messo (a long time ago) ed ho avuto problemi.
Poi, da buon manovale, ho deciso di fare esattamente quello che imponeva Microchip.
Probabilmente ho solo avuto fortuna (i manovali hanno un santo protettore) ma facendo come dice la Microchip tutto funziona.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[18] Re: PIC difettosi o errori nei programmi?

Messaggioda Foto UtenteMatteo1991 » 8 lug 2013, 22:48

Ho provato a far "lampeggiare" RC3 e ci sono riuscito! poi ho riprovato con RC4, ma il PIC è morto.... ho riprovato sempre su RC3 ma senza successo :evil: ! mi sono giocato l'occasione giornaliera!
sta cosa è davvero strana....la prima cosa che mi è venuta in mente è un falso contatto,ma, siccome il PIC viene programmato correttamente tutta la parte di circuito relativa alla programmazione ICSP è ok, ergo, se c'è qualche problema sta nella sezione dell'oscillatore (non mi viene in mente altro).
Se non erro, dovrebbero essere oscillatori di tipo Colpitts..... come faccio a verificare, che una volta alimentato l'oscillatore funge? (ho un'oscilloscopio)

una cosa del genere ha senso?
"Scrivere la propria storia come si scrive la Storia: con la veemenza di un conquistatore di imperi."
Avatar utente
Foto UtenteMatteo1991
406 2 4 12
Frequentatore
Frequentatore
 
Messaggi: 280
Iscritto il: 28 giu 2012, 16:38

0
voti

[19] Re: PIC difettosi o errori nei programmi?

Messaggioda Foto UtenteShockwaver » 9 lug 2013, 15:09

TardoFreak ha scritto:La user guide del PicKit3 dice espressamente di non mettere nessun condensatore su MCLR.
Poi, per carità, può essere che la Microchip dica fesserie.
Io il condensatore l' ho messo (a long time ago) ed ho avuto problemi.
Poi, da buon manovale, ho deciso di fare esattamente quello che imponeva Microchip.
Probabilmente ho solo avuto fortuna (i manovali hanno un santo protettore) ma facendo come dice la Microchip tutto funziona.


Giusto, lo stesso vale per me! :ok:
Ma quei 10nF sono sul pin 2 dell'ICSP ovvero Vdd. Tra quel condensatore e MCLR ci sono 10K (che a me non piacciono assolutamente in fase di programming/debug). Come dicevo eliminerei la resistenza e piazzerei il condensatore il più vicino possibile al pin Vdd del PIC.

@Foto UtenteMatteo1991
Ascolta non ho capito se col PK3 sei in debug o in run, perché se sei in debug non mi pronuncio fino a quando mantieni il resistore e il condensatore come da tuo schema: il PK3 non è fatto per funzionare in quelle condizioni. Se lo fa è un caso più o meno fortuito e più o meno ripetibile, come ha già detto Foto UtenteTardoFreak, per cui la programmazione può andare a buon fine ma l'esecuzione no (prova a scollegare MCLR mentre debuggi e vedi che succede ;-)).

Edit: C'è un modo molto semplice per sapere se l'oscillatore funge (ho ancora i bernoccoli di 2 anni fa sulla testa a riprova di questo metodo ||O): se compili e fai partire il debug, se l'oscillatore non gira MPLAB e MPLAB X bloccano l'esecuzione con messaggio rosso di errore "[...] Device not ready for debugging [...]".
Se e quando non spunta, l'oscillatore funge e i fuses ne tirano fuori una frequenza stabile e utilizzabile dal PIC.
Anyone who has never made a mistake has never tried anything new
Two things are infinite: universe and human stupidity, and I'm not sure about the former
You did not really understand something unless you can explain it to your grandmother
A. Einstein
Avatar utente
Foto UtenteShockwaver
770 1 5 11
Expert
Expert
 
Messaggi: 859
Iscritto il: 3 mar 2010, 18:56

0
voti

[20] Re: PIC difettosi o errori nei programmi?

Messaggioda Foto UtenteMatteo1991 » 10 lug 2013, 11:21

al momento non mi sono spinto fino al debbug. leggendo il datasheet mi sono ricordato che il pin mclr è anche un general porpouse i/o (RE3). configurando mclr= on si imposta appunto come mclr.... però non dovremmo configurarla anche come input?
"Scrivere la propria storia come si scrive la Storia: con la veemenza di un conquistatore di imperi."
Avatar utente
Foto UtenteMatteo1991
406 2 4 12
Frequentatore
Frequentatore
 
Messaggi: 280
Iscritto il: 28 giu 2012, 16:38

PrecedenteProssimo

Torna a Realizzazioni, interfacciamento e nozioni generali.

Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti