pic 16f628 reset van zich zelf

hallo

trein modelbouw gerelateerd
ik heb een sturing gemaakt met een 16f628 en deze stuurt 8 relais aan
de schakeling is eenvoudig en bestaat uit een processor met voeding en een aan gekochte module met 8 relais op
de relais zijn via een opto gescheiden van de pic uitgangen dus er zou geen probleem mogen zijn

de pic schakelt de relais perfect zonder enig probleem
maar?????
als ik dc stroom over de relais laat gaan dan reset de pic zich zelf
gegeven
voeding pic via een accu of voeding
voeding relais via een andere accu of voeding
dc verbruiker (trein) via voeding
deze zijn dus allemaal gescheiden en hoe ik ze ook gebruik (accu of voeding) het probleem blijft hetzelfde

de scoop er aan gehangen en dan krijg ik deze spikes op de uitgangen van de processor waarna deze reset

ik heb reeds over de relais contacten 100nF condensatoren gezet
als ook rc combinaties met verschillende waarden van weerstanden en condensatoren maar niets helpt het probleem blijft bestaan

iemand een idee of zo graag

Gr Raf
Lambiek

Special Member

Heb je een schema? En hoe zit het met je MCLRE?, hoe zit die pin aangesloten? En hoe staat het in je programma?

Als je haar maar goed zit, GROETEN LAMBIEK.

code:

Device = 16F628

Config FOSC_INTOSCIO, WDTE_OFF, PWRTE_OFF, MCLRE_OFF, BOREN_OFF, LVP_OFF, CPD_OFF, CP_OFF

All_Digital TRUE                                            
Declare Xtal = 4
Declare PortB_Pullups On 


 
PORTA = %11111111
TRISA = %00100000
PORTB = %11111111
TRISB = %00000000
Dim poort1 As Word
Symbol ingang = PORTA.5
poort1 =%11111110


While 1 = 1
While ingang = 1 
DelayMS 20
Wend
PORTA =%11111101
DelayMS 200            'relais 1
While ingang = 1 
DelayMS 20
Wend
PORTA =%11111110        'relais 2
DelayMS 200
While ingang = 1 
DelayMS 20
Wend                    
PORTA =%01111111        'relais 3
DelayMS 200
While ingang = 1 
DelayMS 20
Wend
PORTA =%10111111         'relais 4
DelayMS 200
While ingang = 1 
DelayMS 20
Wend
PORTA =%11111111
PORTB =%01111111        'relais 5
DelayMS 200
While ingang = 1 
DelayMS 20
Wend
PORTB =%10111111         'relais 6
DelayMS 200
While ingang = 1 
DelayMS 20
Wend
 PORTB =%11011111        'relais 7
DelayMS 200
While ingang = 1 
DelayMS 20
Wend
PORTB =%11101111        'relais 8
DelayMS 200
While ingang = 1 
DelayMS 20
Wend
PORTB =%11111111
DelayMS 200
While ingang = 1 
DelayMS 20
Wend
While ingang = 1 
DelayMS 20
Wend
PORTA =%10111101         'relais 1-4
PORTB =%01111111        'relais 5
 DelayMS 200
 While ingang = 1 
DelayMS 20
Wend
PORTA =%11111111
PORTB =%11111111
DelayMS 200
Wend

hier de code die is eenvoudig elke keer door een druk op de knop schakelt er een ander relais of groepje relais aan ;
hier zit geen fout in zonder belastingen op de relais uitgangen werkt alles perfect wat schakelen aan gaat

een schema ??? om deze relais gaat het
alle relais schakelen met massa via een optocoupler en van deze module heb ik niet meer dan dit schema ;dit is per relais getekend dus dit 8 maal

ik de pic gebruik ik poort A 0,1,7,6, en poort B 4,5,6,7
poort 5 (MCLR)is de ingang met de schakelaar
10 K naar de positief en de schakelaar tussen het knoop punt (10Ken pen 5)naar massa

7805 met 2 keer 10nF en een dikke elko (2200µF) aan de 12 volt kant
100nF over de + en - direct onder de processor

hopelijk heb je er genoeg aan
gr raf

Gr Raf

Dat is een moeilijk geval, als je de MCRL en de µC Vcc goed hebt aangepakt rest u nog enkel het plaatsen van condensatoren.
De vonk stoort in de sporen van de print en de draden naar de controller(opto)

Hier enkele mogelijkheden, het kan een combinatie zijn .

100nF op Vcc van de relais.
100nF op de draden van de opto
100nF op de contacten van het relais

Het zal proberen worden, je bent niet de enige met dat probleem.

LDmicro user.
Arco

Special Member

Bij zeer zware stoorpulsen wil het wel eens voorkomen dat een 628 reset. De MCLR krijgt dan storing binnen, ook als MCLRE op OFF staat.
(bij MCLRE_OFF wordt de pin intern hoog getrokken, en da's soms niet genoeg om extreme stoorpulsen te overwinnen)

Is op te lossen door MCLRE op ON te zetten, en extern een 100nF naar Gnd en 4k7 (of 2k2) pull-up te gebruiken.

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

@Arco

code:


poort 5 (MCLR)is de ingang met de schakelaar
10 K naar de positief en de schakelaar tussen het knoop punt (10Ken pen 5)naar massa

die pen is in gebruik en zit aan de positief

Gr Raf
Arco

Special Member

Dan kun je geen externe pull-up toepassen dus. Enige is dan de boel zo goed mogelijk ontstoren...
Ik gebruik de MCLR pin nooit als i/o pin om de genoemde problemen te vermijden...

[Bericht gewijzigd door Arco op zaterdag 4 april 2020 19:22:46 (31%)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

@ arco
ik heb poortA pin 2 gebruikt en het zelfde probleem blijft bestaan
en poortA heeft geen inwendige pullups dus die kan ik niet aan zetten al zou ik willen

Gr Raf
Arco

Special Member

Om te testen of 't daar door komt moet je een pull-up + 100nF aan MCLR leggen (portA.5), niet aan A.2... (en MCLRE aanzetten)

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Lambiek

Special Member

Zelf gebruik ik de MCLRE ook nooit als ingang, dat is vragen om problemen.

Even wat anders, hoelang is de bedrading die aan je relais zitten?

Als je haar maar goed zit, GROETEN LAMBIEK.

# arco
ok opnieuw
ik heb poortA pin 2 gebruikt en het zelfde probleem blijft bestaan

dat wil dus zeggen
dat ik eerst poortA.5 heb gebruikt welke MCLRE is en dat deze dus problemen gaf

poortA.5 zit met een 10K weerstand aan de + 5 volt

#lambiek

de draden aan de relais zijn ongeveer een 80 cm want het geheel is maar 2 meter lang

de processor zit rechtstreeks met een heel klein printje op de relais module geklikt

omdat ik dacht van hé dat zou wel eens de oorzaak kunnen zijn heb ik op een tweede module een tussen verbinding gemaakt van 30 cm
dus daar zit de processor dus 30 cm van verwijderd

helaas beide geen oplossing van het probleem
foto van de betreffende modules
nummer 3 daar zit nog geen processor op want die doet toch het zelfde als de 2 andere

Gr Raf
Arco

Special Member

Aan MCLR moet dan ook wel een 100nF condensator, anders werkt 't niet...

Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com

ok probleem opgelost en ik kan zelfs de mclre poort gebruiken met die condensator en die weerstand
het enige wat ik dan heb is dat als de processor aan gaat hij de eerste poort meteen kiest
maar dat is een software kwestie om dit tegen te gaan

bedankt en hou jullie gezond

Gr Raf
Lambiek

Special Member

Mooi dat het is opgelost. Ik zou ook de bedrading twisten die aan de relais zitten.

Als je haar maar goed zit, GROETEN LAMBIEK.

dat word moeilijk daar het steeds maar een draad is die naar een stukje rails gaan ;
de relais zijn onderling door gelust (morgen een foto)met een rode stroom draad
de massa's worden afzonderlijk gestuurd daar dit baan deel nogal een moeilijk deel is
er is een stuk 2 rail en een stuk 3 rail met een overname railstuk

daar moet dus of twee rail of drie rail op rijden
voor de 2 rail moeten dus de twee rails anders geschakeld worden en mogen zeker geen contact maken met het 3 rail systeem
de 2 rail krijgt een DCC signaal van de booster en digitale sturing
en de 3 rail is een pwm signaal
het pwm signaal vernielt meteen de booster als deze aan elkaar geschakeld worden
daarom komen hier 3 beveiligingen op zodat dit niet verkeerd kan gaan
maar je murphy loert altijd achter een hoekje of kantje

gr raf

Gr Raf