Vai al contenuto
PLC Forum


Pic 18F452 - Aiuto per esame ...


Antonionni

Messaggi consigliati

Ciao a tutti

devo fare un progettino per un esame, che consiste nel leggere un dato dalla seriale, elaborarlo e spedirlo su un altra seriale.

Ho fatto una schedina che fà uso del max232 che si interfaccia con la PIC 18F452.

Però durante il test delprogramma (che funzionicchia) succede qualcosa di strano: dopo qualche decina di secondi il tutto si pianta, ho notato che se tocco il filo collegato al pin 1 riprende a funzionare, ma non è mal saldato il filo, è come se ci fosse qualche interferenza.

Poi ho configurato l'RB4 come ingresso che attiva un interrupt quando portato a massa, però spesso il programma entra nella funzione di interrupt senza che io prema il relativo pulsante.

C'è qualche accorgimento per esempio per lo stack o altro?

Come mai ottengo quei comportamenti strani?? Ho usato un quarzo che avevo in laboratorio di 4,43MHz, forse devo usare un quarzo da 4MHz? O è meglio uno da 20??

Grazie infinite a chiunque mi darà una mano, perchè sono un pò disperato ...

Modificato: da Antonionni
Link al commento
Condividi su altri siti


Se hai usato un contenitore DIP il pin 1 corrisponde allo MCLR.

Da quello che scrivi sembra di capire che il pin è libero da collegamenti, cosa da non farsi assolutamente.

Questo pin deve essere collegato alla tensione positiva tramite una resistenza di circa 4k7.

Tutti i pins, se non collegati ad altri dispositivi, devono essere chiusi a 0 a +V tramite una resistenza di circa 4k7.

Se li lasci liberi acchiappano disturbi e, se sono pins che funzionano come interupts, possono mandarti il programma "a farfalle".

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

Grazie Livio

era proprio quello (il pin 1), ci ero arrivato dopo che avevo notato che "toccandolo" il uP dava i numeri. L'ho messo a +Vcc con una R10k ed ora è stabile. Anzi, come consigli tu domani metto a +Vcc (con la R) gli altri pin, in particolare quelli della RB.

Senti un altra cosa:

vorrei implementare il watchdog. Nel main del programmino non ho nulla perchè uso gli interrupt. Come lo implemento? Incremento una variabile nel main e quando raggiunge un certo valore resetto il watchdog o ci sono altri metodi?

Altra cosa ... il parametro WDTPS che significato ha e come si calcola/imposta??

Grazie ancora ...

Link al commento
Condividi su altri siti

Cito a memoria, dovrebbe riguardare il tempo di watch dog, leggi l'apposito capitolo sul manuale del micro.

Se non vuoi usare il dispositivo interno al micro, puoi fare un CCZ (computer crazy) molto sicuro che segnala anche un'eventuale loop perverso in una routine di interrupt.

Prendi un porta libera del micro. Con questa piloti un raddrizzatore a valore di picco. La tensione ricavata la metti in ingresso ad un trigger di scmih. Poi nel main program dai un impulso alto della durata di alcuni us. Se l'uscita non viene rinfrescata ogni tot ms (dipende dal valore di capacità usato) l'uscita del trigger va a zero indicando che c'è tropporitardo.

Link al commento
Condividi su altri siti

Non so se esiste documentazione in proposito. L'acronimo CCZ è un termine usato di chi fa assi e posizionatori.

COmunque la tecnica è quella che ti ho descritto. Potrei anche metterei in linea il circuitino Hw, non è niente di eccezionale.

Link al commento
Condividi su altri siti

Questo è il circuitino. Con un impulso largo 100us e periodo 25ms il circuito da funzionamento OK. Se allunghi il ritardo tra un impulso ed il successivo a 30ms l'uscita da non OK.

Come ulteriore niglioria puoi pensare ad una memoria dello stato non OK, magari con un flip flop "D", in modo che al primo loop troppo lungo del micro scatti l'allarme e permanga..

Variando i valori di RC cambia anche il tempo d'intervento.

Ovviamente il generatore d'impulsi è costuito dalla porta del micro.

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

  • 3 weeks later...

No deve andare ad un circuito esterno. Per esempio nelle applicazioni industriali taglia le uscite e da l'allarme. In alcuni casi fa partire l'emergenza.

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...