Antidisturbo su ingressi PIC

Quindi hai dei disturbi sui pin relativi agli ingressi dei pulsanti, giusto?

Prova ad abbassare il valore della resistenza di pull-up fino ad 1K, se puoi, non hai problemi di consumi e se non hai qualcuno che si diverte a tenere premuto il pulsante di continuo puoi spingerti anche oltre ;-)

Inoltre se questo non bastasse devi rivedere la routine di antirimbalzo (l'hai messa vero ?) , allungando il tempo in cui il micro aspetta per essere sicuro che sia un tasto valido (ovviamente senza esagerare).

Così al 99 % dovresti risolvere.

Saluti Salvatore

Reply to
Salvatore
Loading thread data ...

Mi ritrovo con un problema che vorrei evitare di risolvere andando per infiniti tentativi, quindi mi rivolgo a voi che di sicuro vi ci siete già scontrati :-)

Ho una scheda con un PIC16F877 a bordo, e che, semplificando molto, controlla 8 utenze 220V (tramite 8 relè) ricevendo i comandi attraverso una CAN, oppure in "locale" tramite un quadretto con 8 pulsanti collegati direttamente alla scheda.

Il fatto è che le utenze che vengono comandate sono elettricamente "sporche" (tubi fluorescenti con starter classico), e gli ingressi del PIC, spesso e volentieri, all'accensione di una delle luci, leggono delle inesistenti pressioni degli altri pulsanti, accendendo o spegnendo altri canali che nulla centrano col pulsante premuto.

Ora, il problema è di sicuro sui segnali in ingresso (se disattivo i pulsanti locali tramite apposito jumper, posso accendere e spegnere a raffica tutti i canali via CAN e non succede niente di strano)

Lo stadio di ingresso è banale: resistenze di pull-up da 4.7K e pulsanti che chiudono verso massa.

Domanda: come posso intervenire sullo stadio di ingresso per limitare quanto più possibile questo fenomeno?

Grazie...

Reply to
Axeman

"Salvatore" wrote in news:49fc95cb$0$1119$ snipped-for-privacy@reader3.news.tin.it:

Oh yes...

No non ho problemi di consumo e dubito che qualcuno abbia così tanta voglia di tenere premuti i pulsanti oltremodo, dato che la scheda gestisce diversamente i "click" più lunghi di un secondo :-)

No, devo dire che inizialmente non l'avevo messa, anche perchè i pulsanti sono dotati di antirimbalzo meccanico (avevo verificato personalmente che dando il segnale in pasto ad un contatore, non avevo doppi conteggi neanche a cercare di farlo apposta)

Dopo aver visto questo problema con la scheda in produzione (**OVVIAMENTE** in test non ha fatto niente di strano, se no non c'era gusto :-) ) e dopo aver mandato il messaggio, siccome la scheda è in produzione e doveva funzionare per forza o erano guai :-) ho patchato il programma al volo (santissima connessione ICD) filtrando via software tutti gli impulsi più corti di un tot, e risolvendo del tutto (almeno finora) il problema.

Il discorso del software comunque lo vedo più come un workaround che non come una soluzione. Lo dico perchè mentre patchavo per l'antirimbalzo ho anche inserito un contatore degli eventi che vengono filtrati, che mi viene trasmesso periodicamente via CAN. Ad ogni accensione partono fino a

4 eventi spuri... attualmente il software li filtra tutti, però ci sono.

Mi domandavo, e domando tuttora agli esperti, se c'è un modo "pulito" per fare uno stadio di ingresso del genere, il più possibile immune a disturbi di questo tipo.

(Grazie per la risposta)

Reply to
Axeman

Ci sono sempre e l'antirimbalzo software ci va sempre, non è un semplice workaround.

Se vuoi qualche idea per una soluzione hardware, tira un occhio a questo documento:

formatting link

Figurati... E' che ora che sono "a spasso" ho molto più tempo per leggere il newsgroup :-)

Salvatore

Reply to
Salvatore

Il giorno Sat, 2 May 2009 23:21:48 +0200, "Salvatore" ha scritto:

Interessante articolo, grazie.

Reply to
Luigi C.

"Axeman" ha scritto nel messaggio:

Come e' possibile che durante i test non si avevano di questi problemi? forse c'e' qualcosa nello stampato definitivo che "amplifica" il fenomeno, oppure sono cambiati i test?

Reply to
diego

"Salvatore" wrote in news:49fcb970$0$830$ snipped-for-privacy@reader5.news.tin.it:

Beh si che lo è, almeno in questo caso. L'antirimbalzo per quel che ne so serve per eliminare un fenomeno ben preciso, e questo è tutt'altro: tieni conto che i disturbi in sè non sono causati da un rimbalzo e non centrano niente con i pulsanti, perchè si verificano in corrispondenza dell'attivazione dei canali di uscita, non di quelli di ingresso.

Voglio dire che se io stacco di brutto il connettore del quadro pulsanti, lasciando quindi solo uno spezzone di flat cable lungo si e no 10 cm collegato alla porta del micro, e attivo un canale via CAN, il PIC registra lo stesso queste attivazioni "fantasma".

Questo, a prescindere dal mio problema, è molto interessante...

Reply to
Axeman

Axeman wrote in news:Xns9C007073EC19Fteruietrunoiunwerogh@194.177.97.96:

Rettifico, in effetti anche qui si parla di uso della routine di debounce per "schermare" le interferenze...

(non so come mai ma lo stupido acrobat reader la prima volta mi ha interrotto il documento a pagina 16 e non avevo visto il resto, adesso l'ho riaperto per salvarlo ed era completo!)

Reply to
Axeman

"diego" wrote in news:49fd63be$0$6819$ snipped-for-privacy@news.tiscali.it:

Semplice... le utenze pilotate durante i test erano lampade più piccole e con alimentatore elettronico.

Non potevo riempirmi la stanza di plafoniere da 58W. In fondo ho messo i relè proprio per non dovermi preoccupare troppo del carico pilotato.

Reply to
Axeman

"Axeman" > ha scritto nel messaggio:

Capisco la problematica, puoi provare questo schema per vedere se ci sono miglioramenti?

[FIDOCAD ] RV 20 20 40 75 LI 40 35 70 35 LI 70 35 85 35 LI 145 30 140 30 LI 145 30 130 45 LI 130 45 135 45 LI 155 30 150 30 LI 155 30 140 45 LI 140 45 145 45 LI 150 35 195 35 LI 195 35 195 45 LI 195 45 200 45 MC 200 45 0 0 860 LI 200 60 200 65 LI 200 65 195 65 LI 195 65 195 70 LI 195 70 150 70 LI 150 60 145 60 LI 150 60 135 75 LI 135 75 140 75 LI 160 60 155 60 LI 160 60 145 75 LI 145 75 150 75 LI 125 35 140 35 LI 85 35 95 35 TY 25 35 5 3 0 0 0 * PIC TY 55 85 5 3 0 0 0 * diodi Schottky 1n5819 MC 55 35 3 0 200 MC 55 50 3 0 200 MC 55 20 3 0 010 MC 55 70 0 0 040 LI 55 50 55 70 SA 55 35 MC 70 20 3 0 010 LI 70 30 70 35 SA 70 35 MC 70 20 1 0 080 MC 70 45 1 0 080 LI 70 35 70 45 TY 75 20 5 3 0 0 0 * 1k TY 75 45 5 3 0 0 0 * 10k MC 70 70 0 0 040 LI 70 55 70 70 MC 105 70 0 0 040 LI 105 70 140 70 MC 90 55 1 0 170 LI 90 55 90 35 SA 90 35 MC 90 70 0 0 040 LI 90 65 90 70 MC 110 35 2 0 080 LI 95 35 100 35 LI 110 35 125 35 TY 100 25 5 3 0 0 0 * 10 TY 95 60 5 3 0 0 0 * 400V TY 95 55 5 3 0 0 0 * 1uF POLIESTERE
Reply to
diego

"diego" wrote in news:49fdcee8$0$713$ snipped-for-privacy@news.tiscali.it:

Uhm di quei diodi ne ho a chili in giro per casa. La prossima settimana, sul nuovo esemplare della scheda (servivano pochi esemplari, quindi non ho fatto un PCB) posso provare...

Reply to
Axeman

"diego" ha scritto nel messaggio news:49fdcee8$0$713$ snipped-for-privacy@news.tiscali.it...

ciao, non è che saresti così gentile da spiegarmi la logica di funzionamento? grazie 1000 anticipatamente

Reply to
GZ

diego ha scritto:

...cut...

Io lo conoscevo cosi (l'ho realizzato un paio di volte su percorsi di parecchie decine di metri):

[FIDOCAD] RV 20 20 40 75 LI 145 30 140 30 LI 145 30 130 45 LI 130 45 135 45 LI 155 30 150 30 LI 155 30 140 45 LI 140 45 145 45 LI 150 35 195 35 LI 195 35 195 45 LI 195 45 200 45 MC 200 45 0 0 860 LI 200 60 200 65 LI 200 65 195 65 LI 195 65 195 70 LI 195 70 150 70 LI 150 60 145 60 LI 150 60 135 75 LI 135 75 140 75 LI 160 60 155 60 LI 160 60 145 75 LI 145 75 150 75 LI 125 35 140 35 LI 85 35 95 35 TY 55 85 5 3 0 0 0 * diodi 1N4148 MC 55 35 3 0 200 MC 55 50 3 0 200 MC 55 20 3 0 010 MC 55 70 0 0 040 LI 55 50 55 70 SA 55 35 MC 70 20 3 0 010 LI 70 30 70 35 SA 70 35 MC 70 20 1 0 080 MC 105 70 0 0 040 LI 105 70 140 70 MC 67 35 2 0 080 LI 40 35 58 35 LI 66 35 85 35 TY 73 22 5 3 0 0 0 * 1k MC 70 55 1 0 170 LI 70 55 70 35 SA 70 35 MC 70 70 0 0 040 LI 70 65 70 70 LI 75 35 80 35 TY 75 60 5 3 0 0 0 * 400V TY 75 55 5 3 0 0 0 * 1uF POLIESTERE MC 105 35 2 0 080 LI 105 35 125 35 TY 97 27 5 3 0 0 0 * 10 TY 57 37 5 3 0 0 0 * 100k TY 25 33 5 3 0 0 0 * CMOS
Reply to
Claudio_F

GZ ha scritto:

il principio fondamentale e' abbassare l'impedenza della linea, e questo =

lo fa la R da 1k, filtrare eventuali rapide variazioni di tensione, e=20 questo lo fa il condensatore, i diodi proteggono poi l'ingresso=20 dell'integrato da tensioni positive e negative superiori=20 all'alimentazione (ma solo se la R da 10..100k e' in serie alla linea).

ciao Claudio_F

Reply to
Claudio_F

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.