Reset 18m2 in c.1

emilio0

New Member
Buongiorno a tutti,
il mio quesito che mi lascia perplesso e:
con il 18m2 usando interrupt es.: pin c.1 si resetta ogni volta che metto c.1 a massa sia con transistor che con pulsante meccanico.
il collegamento del pin e' ancorato al positivo con resistenza da 10kohm e un condensatore da 0.1uF a massa.
Lo strano e' che se replico la stessa configurazione del pin con lo stesso processore montato sul mio dispositivo su scheda breadboard funziona correttamente.
L'alimentazione e' la stesa per tutte due le prove.
Naturalmente ho creato un programma che e' caricato nel 18m2 in prova.
Dalla prova ho dedotto che non e' un problema hw, ma daltronde perche lo stesso sw sulla breadboard va e nella apparecchiatura in costruzione no, usando le stesse condizioni?
Perche lo stesso sw montato sullo stesso processore non va?
Spero che la spiegazione sia accurata Vi invio il programma di test.
Ringrazio chi eventualmente rispondera'.
[codice]
s_campanello:
;Symbol f_campanello_pinc.1=bit1 ;0 premuto 1=normale
;Symbol T_campanello_pinc.1=b12 ;tempo per ripristino suoni

if f_campanello_pinc.1=1 then ;chiamata da campanello (bit1)
if t_campanello_pinc.1=0 then ;toccata placca la prima volta (b12)
n_suono=4 ;tipo suono campanello
gosub s_Bip ;genera suono impostato da n_suono
f_campanello_pinc.1=0
T_campanello_pinc.1= 10
finisci se
finisci se
ritorno
-------------------------------------------------- --------

s_irq:
Impostazione o %00100000,%00100010,c
ritorno

-------------------------------------------------- -------
interrompere:
;Simbolo d_pin_int=pinsc
;Simbolo d_irq=b17 ;valore irq
;symbol leggi_bit=b18 ;valore singolo bit
;Symbol N_placca_c.1=b16 ;numero volte del comando

d_irq=pinsc ;legge chi chiama
do loop while pinc.1 = 0 or pinc.5=1 ;loop here until il pulsante e premuto
leggi_bit=d_irq & %00100010 ;pin c.5
se leggi_bit=%00100000 allora ;----------------------c.5 (reimposta)
inc N_placca_c.1
finisci se
leggi_bit=d_irq & %00000000 ;pin c.1
if leggi_bit=%00000000 then ;-----------------------c.1 (campanello)
f_Reset_0v_c.5=0
if t_campanello_pinc.1 =0 then ;impedisce riattivazione
f_campanello_pinc.1=1
finisci se
finisci se
Ritorno
[/codice]
 

papaof2

Senior Member
First, check the wiring and the soldering. Assume the device was built by your worst enemy and look for all possible faults.
 

emilio0

New Member
Innanzitutto, controlla il cablaggio e la saldatura. Supponiamo che il dispositivo sia stato costruito dal tuo peggior nemico e cerca tutti i possibili guasti.
[/CITAZIONE]
Oggi mi sono rifatto tutte le saldature e controllato se ci sono ponticelli indesiderati nel circuito stampato, ho cambiato il processore, ma non e' cambiato nulla. Mettendo a massa c.1 resetta il processore anche se sul pin c.1 non c'e' collegato nulla a parte una resistenza da 10kohm verso +4.6 e condensatore da 0..1uF verso massa.
Domani continuo i controlli...
 

emilio0

New Member
[/CITAZIONE]
Aggiornamento:
dopo aver rifatto tutte le saldature, rifatto il cablaggio dell'apparecchio, controllando la continuita' e isolamento delle piste sul circuito stampato mi si presentava lo stesso identico problema.
Ho risolto inserendo in serie a c.1 un resistor da 4.7 Kohm (sperimentalmente).
Di solito sugli ingressi usavo mettere il +5 o la massa, ma evidentemente non e' cosi!
Ora funziona egregiamente grazie comunque a papaof2 che mi ha stimolato a fare dei controlli che altrimenti non avrei fatto.
Domanda: quindi su tutti gli ingressi va messa una resistenza limitatrice, sia verso il positivo, che il negativo?

Felice, Vi auguro buona giornata.
 

Jack Burns

New Member
The following sections in your code (translated by Google) look like they may have been incorrectly coded...

read_bit=d_irq & %00100010 ;pin c.5 (WRONG? as bit1 is also tested)

I changed this so only bit5 gets tested (and not bits 1 & 5 as before)

read_bit=d_irq & %00100000 ;pin c.5
if read_bit=%00100000 then ;----------------------c.5 (reset)

......

read_bit=d_irq & %00000000 ;pin c.1 (WRONG? AS RESULT WILL ALWAYS BE 0)

I changed this so bit1 now gets tested:

read_bit=d_irq & %00000010 ;pin c.1
if read_bit=%00000000 then ;-----------------------c.1 (doorbell)

Hope this helps.
 

emilio0

New Member
The following sections in your code (translated by Google) look like they may have been incorrectly coded...

read_bit=d_irq & %00100010 ;pin c.5 (WRONG? as bit1 is also tested)

I changed this so only bit5 gets tested (and not bits 1 & 5 as before)

read_bit=d_irq & %00100000 ;pin c.5
if read_bit=%00100000 then ;----------------------c.5 (reset)

......

read_bit=d_irq & %00000000 ;pin c.1 (WRONG? AS RESULT WILL ALWAYS BE 0)

I changed this so bit1 now gets tested:

read_bit=d_irq & %00000010 ;pin c.1
if read_bit=%00000000 then ;-----------------------c.1 (doorbell)

Hope this helps.
Ciao Jack Burns,
non e' stato un errore di google. effetivamente devo vedere 2 segnali in interrupt, c.1 normalmente alto con resistenza a +5v (interruttore N.O.) e c.5 normalmente basso con resistenza a massa (pulsante N. In condizioni normali il c.1 ha 5v e il c.5 0v (circa).

Quindi se non interpreto male le istruzioni nell'uso degli interrupt, non va modificato. E adesso che ho risolto (bho?...) funziona correttamente con c.1 e c.5 senza modifiche al listato del programma. Ti allego le due porte del 18m2 interessate.
 

Attachments

AllyCat

Senior Member
Domanda: quindi su tutti gli ingressi va messa una resistenza limitatrice, sia verso il positivo, che il negativo?

Google Translate:
Update:
after redoing all the soldering, redoing the wiring of the device, checking the continuity and insulation of the tracks on the printed circuit, I had the exact same problem [the PICaxe Resetting].
I solved the problem by inserting a 4.7 Kohm resistor in series with c.1 (experimentally).
Usually I used to put +5 or ground on the inputs, but evidently this is not the case!
Now it works very well thanks to papaof2 who encouraged me to do some checks that I otherwise wouldn't have done.
Question: so must a limiting resistor be placed on all inputs, both towards the positive and negative?
No, not normally, but the 0.1uF capacitor on the interrupt pin and pushbutton could be the problem. When the button is pressed it could pull down the supply rail for enough time to reset the PICaxe.

Do you have a 0.1uF (or slightly larger, but NOT Electrolytic) capacitor between the supply rail (Vdd) and Ground (0v)? This is always recommended because modern digital ICs can respond very quickly to "spikes" on the supply rail.

Cheers, Alan.

Google Translate:
No, normalmente non, ma il problema potrebbe essere il condensatore da 0,1uF sul pin di interruzione e sul pulsante. Quando si preme il pulsante, la guida di alimentazione potrebbe abbassarsi per un tempo sufficiente a ripristinare il PICaxe.

Hai un condensatore da 0,1uF (o leggermente più grande, ma NON elettrolitico) tra il binario di alimentazione (Vdd) e terra (0v)? Questo è sempre consigliato perché i moderni circuiti integrati digitali possono rispondere molto rapidamente ai "picchi" sulla linea di alimentazione.

Saluti, Alan.
 

emilio0

New Member
No, not normally, but the 0.1uF capacitor on the interrupt pin and pushbutton could be the problem. When the button is pressed it could pull down the supply rail for enough time to reset the PICaxe.

Do you have a 0.1uF (or slightly larger, but NOT Electrolytic) capacitor between the supply rail (Vdd) and Ground (0v)? This is always recommended because modern digital ICs can respond very quickly to "spikes" on the supply rail.

Cheers, Alan.

Google Translate:
No, normalmente non, ma il problema potrebbe essere il condensatore da 0,1uF sul pin di interruzione e sul pulsante. Quando si preme il pulsante, la guida di alimentazione potrebbe abbassarsi per un tempo sufficiente a ripristinare il PICaxe.

Hai un condensatore da 0,1uF (o leggermente più grande, ma NON elettrolitico) tra il binario di alimentazione (Vdd) e terra (0v)? Questo è sempre consigliato perché i moderni circuiti integrati digitali possono rispondere molto rapidamente ai "picchi" sulla linea di alimentazione.

Saluti, Alan.
Ciao Alan,
E' la prima cosa che ho imparato (a mie spese!) sin dalla serie 74xx.
Mi e' costata di rifare completamente un circuito stampato!
Attualmente e' una regola imperativa mettere vicino su ogni C.I. un condensatore da 0.1uF e un unico condensatore da 1000uF se il circuito ha connessioni non saldate (connettori).
Attualmente ritornando l'apparecchio che non funzionava, ora va che e' una meraviglia.
Ringrazio tutti per l'interessamento, e se avete consigli di qualsiasi tipo, fatevi sentire, sono mooolto graditi.
Grazie e buona giornata.
 

Technoman

Senior Member
Ciao, Ci sono un certo numero di cose che non capisco nel tuo diagramma (3 ingressi su un 4011, 4,3 V?, ecc.). Puoi postare una foto ingrandita dello schema?
 

emilio0

New Member
Ciao, Ci sono un certo numero di cose che non capisco nel tuo diagramma (3 ingressi su un 4011, 4,3 V?, ecc.). Puoi postare una foto ingrandita dello schema?
Ciao Technoman,
i tre ingressi sul 4011 e' una liberta' grafica (Aggiornato come vedi!). quelli tratteggiati sono moduli esterni all'apparecchio.
Ci sono 3 tensioni che alimentano il tutto 12.0v, 5.0v 4.3v. il 12 e' per alimentare circuiti esterni, il 5v e' per elettronica dell'apparecchio, e 4.3 e' da LIPO per mantenere il 18m2 sempre attivo con periferiche che lo necessitano.
Allego schema in modo che eventualmente puoi dirmi altre cose su di esso.
Purtroppo e' in fase di sviluppo e quindi soggetto a eventuali modifiche.
Buona giornata.Screen Shot 08-03-24 at 11.00 AM.JPG
 

Technoman

Senior Member
Ciao Emilio0

B.6: per un livello 1 permanente è preferibile collegare l'ingresso a +5V via 10K

B.7: Qual è il ruolo del MOSFET n. 5?

C.1: (IRQ) quando si preme il pulsante, la tensione non può scendere sotto 1,3 V (4,3x4,7/(4,7+10)), che è sufficientemente alta per il livello 0. È possibile abbassare il valore di 4,7K , ad esempio a 1k, per ridurre la tensione.

C.3: per proteggere l'uscita, subito prima della presa, è auspicabile una resistenza di protezione contro il cortocircuito dopo la presa (1K?)

Buona giornata.
 

AllyCat

Senior Member
Hi,
4.3 e' da LIPO per mantenere il 18m2 sempre attivo con periferiche che lo necessitano.
Translated:
4.3 is from LIPO to keep the 18m2 always active with peripherals that require it.
I cannot see a 0.1uF capacitor on the PICaxe + pin (4.3v ?) to Ground ?

I don't understand why you are using so many 0.1uF capacitors directly on I/O pins, particularly C.0, C.5 and C.6 which might cause problems: The capacitors must normally be discharged to 0 volts because of the resistors connected across them. When you press the push-buttons you are effectively "short-circuiting" the supply rail to ground which will cause a large current spike that might pull the supply rail to (or towards) ground (which might cause the PICaxe to reset). Similarly, when the C.6 output switches ON, a large current spike might pull the PICaxe's internal supply rail downwards. :(

Note that electrolytic decoupling capacitors cannot normally prevent this problem because they have too much series inductance. The Red boxes (resistors, perhaps between 100 to 1k Ohms) that I have added to the diagram would reduce the current spikes.

Cheers, Alan.
---------------
Google translate:
Non riesco a vedere un condensatore da 0,1 uF sul PICaxe + pin (4,3 V?) a terra?

Non capisco perché stai utilizzando così tanti condensatori da 0,1 uF direttamente sui pin I/O, in particolare C.0, C.5 e C.6 che potrebbero causare problemi: i condensatori devono normalmente essere scaricati a 0 volt a causa del resistori collegati tra loro. Quando si premono i pulsanti si sta effettivamente "cortocircuitando" il binario di alimentazione a terra, il che causerà un grande picco di corrente che potrebbe tirare il binario di alimentazione a (o verso) terra (il che potrebbe causare il ripristino del PICaxe). Allo stesso modo, quando l'uscita C.6 si attiva, un forte picco di corrente potrebbe tirare verso il basso la guida di alimentazione interna del PICaxe. :(

Si noti che i condensatori di disaccoppiamento elettrolitici normalmente non possono prevenire questo problema perché hanno troppa induttanza in serie. Le scatole rosse (resistori, forse tra 100 e 1k Ohm) che ho aggiunto al diagramma ridurrebbero i picchi di corrente.

Saluti, Alan.

ResetSpike3.png
 

emilio0

New Member
Hi,

I cannot see a 0.1uF capacitor on the PICaxe + pin (4.3v ?) to Ground ?

I don't understand why you are using so many 0.1uF capacitors directly on I/O pins, particularly C.0, C.5 and C.6 which might cause problems: The capacitors must normally be discharged to 0 volts because of the resistors connected across them. When you press the push-buttons you are effectively "short-circuiting" the supply rail to ground which will cause a large current spike that might pull the supply rail to (or towards) ground (which might cause the PICaxe to reset). Similarly, when the C.6 output switches ON, a large current spike might pull the PICaxe's internal supply rail downwards. :(

Note that electrolytic decoupling capacitors cannot normally prevent this problem because they have too much series inductance. The Red boxes (resistors, perhaps between 100 to 1k Ohms) that I have added to the diagram would reduce the current spikes.

Cheers, Alan.
---------------
Google translate:
Non riesco a vedere un condensatore da 0,1 uF sul PICaxe + pin (4,3 V?) a terra?

Non capisco perché stai utilizzando così tanti condensatori da 0,1 uF direttamente sui pin I/O, in particolare C.0, C.5 e C.6 che potrebbero causare problemi: i condensatori devono normalmente essere scaricati a 0 volt a causa del resistori collegati tra loro. Quando si premono i pulsanti si sta effettivamente "cortocircuitando" il binario di alimentazione a terra, il che causerà un grande picco di corrente che potrebbe tirare il binario di alimentazione a (o verso) terra (il che potrebbe causare il ripristino del PICaxe). Allo stesso modo, quando l'uscita C.6 si attiva, un forte picco di corrente potrebbe tirare verso il basso la guida di alimentazione interna del PICaxe. :(

Si noti che i condensatori di disaccoppiamento elettrolitici normalmente non possono prevenire questo problema perché hanno troppa induttanza in serie. Le scatole rosse (resistori, forse tra 100 e 1k Ohm) che ho aggiunto al diagramma ridurrebbero i picchi di corrente.

Saluti, Alan.

View attachment 26150
Ciao a tutti,

X Technoman:
b.6 ok verso +5
b.7 il mosfet 5 per adesso comanda solo il led, ma in futuro verranno aggiunte delle funzioni.
c.1 finora 4.7Kohm non ha dato problemi, comunque tengo d'occhio.
c.3 non ci avevo pensato. ma 1Kohm dovrebbe andare benissimo.

X AllyCat:
sullo schema non e' riportato per problemi di spazio grafico ma Ti assicuro che e' montato vicino al 18m2 (corretto schema).
i condensatori da 0.1uF che sono sui pin I/O li monto per eventuali disturbi, dato la distanza (5/6 metri) dal processore. Comunque data l'esperienza suggeritami da Te, ne terro' conto (ancora grazie!).
Le scatole rosse da Te suggeritami per i pin di ingresso, li considero come per il c.1 che ora funzione egregiamente e che verranno installate.
Grazie e buona giornata a tutti Voi.
 

Technoman

Senior Member
Ciao emilio0.

Un articolo, in inglese, relativo alla protezione degli ingressi digitali, soprattutto se la lunghezza dei cavi è significativa:


Buona giornata.

Hi emilio0.
An article, in English, relating to the protection of digital inputs, especially if the length of the cables is significant:
 

emilio0

New Member
Ciao emilio0.

Un articolo, in inglese, relativo alla protezione degli ingressi digitali, soprattutto se la lunghezza dei cavi è significativa:


Buona giornata.

Hi emilio0.
An article, in English, relating to the protection of digital inputs, especially if the length of the cables is significant:
Ciao Technoman,

Intanto grazie per l'aiuto.
Scusa per ritardo della risposta, ma ho problemi con hd di backup.
Dunque ho letto il sito che hai suggerito, che mi ha letteralmente aperto un mondo che pensavo di aver risolto anni fa (40).
Sapevo dei problemi delle linee lunghe, delle masse comuni ecc., ma pensavo che un condensatore da 0.1uF sugli ingressi in questo caso risolvesse il problema.
Le linee delle periferiche sono piu o meno di 7mt, quindi il sito citato sembra che sia stato scritto per me!
Ora leggero' tutte le informazioni che trovo sull'argomento che sto applicando, e mi tocca rifare la basetta dell'interfaccia 18m2.
Spero di non averVi annoiato troppo, grazie ancora e buona giornata.
 

Technoman

Senior Member
Ciao emilio0,

Prego. Buona fortuna con le tue modifiche.

Buona giornata.

Hi emilio0,
Youre are welcome.
Good luck for your modifications.
 
Top