Ongewenste reset PIC18F4550?

Hallo,

Ik ben een CNC frees aan het maken. Samengevat komt het er op neer dat de coördinaten van de actuele positie bijgehouden worden in een PIC en dat de pc via HID USB 6 nieuwe coördinaten doorstuurt, de PIC rekent uit hoeveel stappen de motors moeten afleggen om de gevraagde coördinaten te bereiken. (Mikrobasic programma: zie bijlage)

Dit werkt goed, alleen als ze > 30 min bezig is worden de huidige coördinaten "gereset" naar 0, wat als zeer vervelend gevolg heeft dat de frees op onvoorspelbare momenten naar een hele afstand verderop gaat.

Het lijkt mij alsof de PIC op deze momenten het programma terug van vooraf aan begint uit te voeren, hij lijkt gereset te worden?
De stroomvoorziening heb ik al nagekeken, ook de + 5V via 10 kOhm naar MCLR.

Wat zou de oorzaak hiervan kunnen zijn? Wat zijn frequente oorzaken waardoor de PIC gereset zou kunnen worden?

Met dank bij voorbaat,
Tom

Kan je er achter komen wanneer dit gebeurt? Mogelijk is dat een hint over wat er aan de hand is. Iedere keer precies na 34 min? Of random, meestal tussen 30 en 60 minuten?

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Arco

Special Member

RCON register uitlezen bij opstart, dan kun je de reden van reset vaststellen.

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

Op 5 juli 2019 19:47:22 schreef rew:
Kan je er achter komen wanneer dit gebeurt? Mogelijk is dat een hint over wat er aan de hand is. Iedere keer precies na 34 min? Of random, meestal tussen 30 en 60 minuten?

Neen, is volledig at random, maar zelden sneller dan na 20 min.

Arco

Special Member

De 4550 is wel een oud beestje met beperkte info in het RCON register, maar je kunt wel zien of 't een POR, BOR, WD time-out, RESET of SLEEP instructie was.
Bij alles anders als POR, initialisatie overslaan en de aanwezige parameters blijven gebruiken.

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

Bedankt voor de tip, ga ik doen!
In bijlage hier nog de instellingen van de flags, leert dit jullie misschien iets over de mogelijke resets die kunnen gebeuren?

Arco

Special Member

Handig he, die losse instellingen... ;)
Ik ijver (met vele anderen) al jaren om die ook in de sourcecode instelbaar te maken, is bij distribueren van sourcecode veel handiger...
Het blijft helaas bij "goed idee, wordt aan gewerkt"...

Het kan door een BOR of storing op MCLR komen (RCON geeft uitsluitsel).
Eigenlijk is gebruik zonder watchdog ook een no-no...

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

Probleem gevonden:
Wanneer ik in een ander stopcontact een verlengkabel bij insteek (waar op het uitende niets insteekt), geeft de pc even het geluid van dat het usb apparaat uitgeplugd en terug ingeplugd werd. Dit een paar keer herhalen geeft steeds hetzelfde fenomeen opnieuw.

Nu is het wel zo dat de PIC gevoed wordt via de USB 5V en de pc zelf geeft geen enkele storing??? Voeding stappenmotoren enzo is volledig gescheiden via optocouplers met voeding van PIC.

Wanneer ik de sturing binnen laat werken is er overigens geen enkel probleem, wanneer ik het in mijn werkplaats laat werken met draaiende frees en stofzuiger komt het probleem steeds opnieuw.

Hoe los ik dit op?

Arco

Special Member

Zal wel storing zijn die binnenkomt (al dan niet via pc en usb)
Ik gebruik usb nooit, vindt het een onbetrouwbare interface. (vaak wegvallende verbindingen)
Een netwerk verbinding vind ik een stuk makkelijker (heeft ook iedereen) en die is tenminste fatsoenlijk galvanisch gescheiden.

Je kunt wel een isolator tussen de USB proberen, gebruik ik ook altijd als ik USB moet gebruiken als interface: https://en.muc89.com/isar520

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

Bij gekochte USB apparaten heb ik dit eigenlijk nog nooit aan de hand gehad, dan moet er toch een probleem zijn met mijn apparaat?
USB is toch eigenlijk ook tegenwoordig de meest gebruikte interface van commerciële apparaten? ;)

Arco

Special Member

Niet bij mij... ;) (heb diverse 'commerciele' apparaten gezien die bij een 'hik' in de USB nooit meer bijkwamen en moesten worden gereset...)
In ieder geval de USB power netjes door een filter laten gaan (bijv. rf beads en kleine c'tjes), en niet meer als 100mA gebruiken bij een standaardpoort.

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

Ok, bedankt!
RCON = 156, zowel na eerste keer inpluggen als tijdens deze vervelende momenten.

Dus RCON:
IPEN = 1
SBOREN = 0
RI = 1
TO = 1
PD = 1
POR = 0
BOR = 0
(laatste 5 zijn de inverse)

Wat is de conclusie hierover eigenlijk?

Arco

Special Member

.

[Bericht gewijzigd door Arco op zaterdag 6 juli 2019 22:03:49 (100%)

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

Special Member

Als POR=0 dan is de voedingsspanning weggeweest of te laag (dat BOR dan ook '0' is, is logisch)
Na het uitlezen moet je wel zelf de bits in RCON resetten, anders staan ze na de volgende reset nog steeds zo...

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

Dus dan zou het kunnen zijn dat de POR van de eerste aanzet actie is en dat er eigenlijk alleen een BOR heeft plaatsgevonden.... (aannemende dat het resetten van RCON door de TS vergeten is... Dat had mij ook overkomen.).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

De bits had ik inderdaad niet gereset.
Zou het uitschakelen van BOR bij de vlaggen beterschap kunnen bieden?

Arco

Special Member

Als BOR de oorzaak is wel, anders niet... ;)

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

Dit verbetert idd helemaal niets.

Het laten werken met een laptop op batterij verhelpt het probleem darentegen wel voor de volle 100%.
Zou ook wel mogen, want Pic gedeelte is volledig optisch gescheiden van de rest.

Nu was ik juist overgeschakeld van LPT en COM poort naar USB, maar begin er precies al spijt van te krijgen. Met deze jaren 80 methodes had ik deze problemen nooit gehad ;)

EricP

mét CE

Bij alles anders als POR, initialisatie overslaan en de aanwezige parameters blijven gebruiken.

Yuk!

Zou ook wel mogen, want Pic gedeelte is volledig optisch gescheiden van de rest.

Nou ja, de voeding dus niet...

Hoe hoog is de spanning die je op dat pic-ding over houdt? Op welke spanning grijpt de BOD in? Heb je nog ergens wat filtering zitten? Hoe lang kan het spul draaien zonder voeding? (in de zin van: als de USB voeding ff weg valt omdat -iets- in de laptop vindt dat die overbelast is, kun je dat overbruggen?)
USB als voeding is wat eh... dubieus. Zeker als het (blijkbaar) kritisch is. Daar moet je jezelf wel een beetje 'indekken'...

Met deze jaren 80 methodes had ik deze problemen nooit gehad ;)

Die waren ook niet slecht. Maar ja, als je dat pic-ding nu separaat voedt, ben je waarschijnlijk ook een groot deel van het geneuzel kwijt :+

Arco

Special Member

Ik gebruik met USB altijd een externe voeding indien mogelijk, veel betrouwbaarder...
(anders ben je ook afhankelijk van de instellingen van de PC qua powersavings e.d.)

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

Heb externe voeding geprobeerd, maar geeft zelfde fenomenen.

Ik heb er geen filter inzitten, alleen condensator dicht bij Pic bij voeding.

Wat doet zo'n isolator (https://en.muc89.com/isar520) juist? Kan je dat zelf namaken?

Arco

Special Member

Die isoleert de datalijnen en de 5v. Ik denk niet dat je zelf makkelijk iets maakt wat goedkoper is...
(je ziet op Ali soms wel goedkopere, maar daar heb ik geen ervaring mee)

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