Forum: Mikrocontroller und Digitale Elektronik PIC16F877 prüfen ( Möglichkeiten / Methoden )


von Nico (Gast)


Lesenswert?

Hallo an die Gemeinde.

Ich habe ein Problem mit meinem WIG-Schweißgerät,
es ist irgenwann mal einfach "stehengeblieben".

In der Schaltung gibt es einen PIC16F877, ein Ausgang von diesem 
Mikrocontroller ist mit dem "shutdown"-Eingang des PMW-ICs (MC34023)
des Hauptinverters verbunden.
Aufgrund eines derzeit vorhandenen Fehlers wird also der PWM-IC
vom Mikrocontroller nicht freigegeben.


Der PIC16F877 bekommt die Speisespannung jedoch kann ich am 
Quarzoszillator keinen Takt messen.

Zu dieser Situation habe ich zwei Fragen:

1. Wie kann ich am Besten überprüfen, ob der PIC16F877 funktionsfähig 
oder defekt sei ?

2. Kann der Quarzoszillator des Mikrocontroller durch einen externen 
Fehler
gestoppt oder gestört werden ?




Ich bin Elektroniker von Beruf, leider ohne Erfahrung mit 
Mikrocontrollern,
Labornetzteil, Oszilloskop, Multifunktionsmessgeräte stehen mir zur 
Verfügung.
Des Weiteren habe ich nach einer Recherche einen Programmer vom Typ: 
"PIC-Brenner5" nachgebaut und mit einem neuen PIC16F877 erfolgreich 
getestet. Doch der Versuch den original PIC16F877 mit dem Programmer 
auszulesen schlug aber fehl.
Leider ist der PIC16F877 auf der Platine nicht gesockelt und kann nur
im eingebauten Zustand untersucht werden.


Ich bin dankbar für jede Hilfe

Viele Grüsse.

Nico.

von Fachmann (Gast)


Lesenswert?

Vielleicht ist nur der Quarzoszillator des Mikrocontrollers defect.

von Chris B. (dekatz)


Lesenswert?

Nico schrieb:
> Hallo an die Gemeinde.
>
> Doch der Versuch den original PIC16F877 mit dem Programmer
> auszulesen schlug aber fehl.

Wenn an den PGC / PGD Pins Peripherie angeschlossen ist, wäre das nicht 
verwunderlich.
Davon abgesehen dürfte der PIC gegen Auslesen geschützt sein (man kann 
ihn zwar auslesen, das Ergebniss ist aber nur "Schrott").

von Nico (Gast)


Lesenswert?

Hallo udn vielen Dank für die Vorschläge.

@Fachmann

Es ist eigentlich kein Quarzoszillator sondern nur ein Quarz
(2-Pin-Ausführung), daher habe ich bis jetzt an der Stelle
keinen Fehler vermutet oder gehen diese Dinger manchmal auch kaputt ?



@Chris B

Das der PIC gegen Auslesen geschützt sein kann ist klar,
doch der Programmer kann noch nicht mal der Typ des PICs
auslesen. Die PGC / PGD Pins sind auf der Originalplatine
sind auf eine Steckverbindung herausgeführt, diese Tatsache und
die Tatsache, dass der Mikrocontroller fest verlötet ist
ließen mich vermuten, dass der PIC im eingebauten Zustand
programmiert werden kann...


Muss beim PIC16F877 nach dem Zuschalten der Speisespannung
der interne Quarzoszillator sofort anlaufen oder gibt es dabei
noch weitere Bedingungen die erfüllt sein müssen ?

Gruß.
Nico

von Fachmann (Gast)


Lesenswert?

Ich habe gelesen, das diese Quarze empfindlich sind. Sie können schon 
kaputt gehen wenn man sie auf den harten Boden fallen lässt.
Und ohne den Quarz oder ein anderes Taktgeber läuft der Pic nicht.

von Chris B. (dekatz)


Lesenswert?

Nico schrieb:
> Die PGC / PGD Pins sind auf der Originalplatine
> sind auf eine Steckverbindung herausgeführt, diese Tatsache und
> die Tatsache, dass der Mikrocontroller fest verlötet ist
> ließen mich vermuten, dass der PIC im eingebauten Zustand
> programmiert werden kann

Ja das ist anzunehmen und dann dürften die Programmierpins auch nicht 
durch Hardware beinflussbar sein - möglich wäre noch das auf der Platine 
2 Jumper oder DIP-Switch sind, welche eine an den Programmierpins 
vorhandene Hardware beim Programmieren abtrennen.!?

von Nico (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Chris,

in der Nähe des PICs gibt es eine Reihe mit DIP-Schalter (siehe Foto),
die Funktion ist mir aber noch nicht bekannt, dieses Thema
muss ich noch untersuchen...


Mal angenommen ich werde den Quarz austauschen, wenn der PIC
dann nicht anläuft kann ich dann sicher sein, dass er defekt ist... ?


Wie kann der PIC16F877 noch "gestoppt" werden, gib es
bei den PICs so was wie einen Reset-Pin ?

Gruß
Nico

von Adolf S. (juppe)


Lesenswert?

Oben schreibst du, du hast ein Scope. Warum mißt du nicht damit, ob der 
Quarz noch schwingt?

von Chris B. (dekatz)


Lesenswert?

Nico schrieb:
> Wie kann der PIC16F877 noch "gestoppt" werden, gib es
> bei den PICs so was wie einen Reset-Pin ?

Pin 1 (MCLR/VPP) liegt über 4k7....10k and +5V und ist LOW aktiv.

von Fachmann (Gast)


Lesenswert?

Und lade dir den datasheet von dem Pic. Dann weisst du mehr.

von Nico (Gast)


Lesenswert?

Ich danke euch.

Das Datenblatt vom PIC16F877 habe ich selbstverständlich vorher gelesen,
da ich mich aber mit Mikrocontrollern nicht auskenne kann ich
einzelne, für Mikrocontroller typische Funktionen nicht interpretieren.
So weiß ich z.B. nicht, ob das Setzen des Reset-Pins zwangsläufig
auch den internen Oszillator stoppt oder nicht.
Aus diesem Grund habe ich mich auch entschieden in diesem Forum zu 
fragen, ich habe auch worher eine Weile über die PICs recherchiert und 
sogar das Programmiergerät dafür gebaut... aber es ist für mich eben ein 
Wald voller bäume :-)

Deswegen versuche ich einfach systematisch die Möglichkeit 
auszuschließen,
dass der PIC noch nicht tot ist und der Fehler vielleicht mit dem
externen Einfluss zusammenhängt.

Nochmal vielen Dank, ich werde im nächsten Schritt den Zustand vom
Pin 1 (MCLR/VPP) überprüfen.

von Fachmann (Gast)


Lesenswert?

An dem Pin 1 (MCLR/VPP) muss +5 Volt sein.

von Gerd H. (anatec)


Lesenswert?

Ein Reset stopt den Oszillator nicht. Die beiden C neben dem Quarz 
gehören auch zum Oszillator. Am Quarz selbst kann man die Schwingung 
beim PIC gut mit einem Oszi anschauen, ohne das der PIC aussetzt. (1MOhm 
Tastkopf). Dieser PIC kann "schlafen", dh. er schaltet seinen Quarz ab 
und arbeitet mit einem internen, langsamen RC Oszillator weiter. Das 
muss ihm aber explizit vom Programm gesagt werden, wann und wodurch der 
Schlafmodus ausgelöst wird. Beim anlegen der Betriebspannung sollte der 
PIC zumindest kurzzeitig anlaufen. In der Regel wird dieser Modus in 
Industrieschaltungen kaum benutzt, weil es auf Stromsparen nicht ankommt 
und das Aufwachen auch Zeit beansprucht die eventuell an der Reaktion 
fehlt.

von Max H. (hartl192)


Lesenswert?

Gerd H. schrieb:
> Dieser PIC kann "schlafen", dh. er schaltet seinen Quarz ab
> und arbeitet mit einem internen, langsamen RC Oszillator weiter.
Der 16F877 hat keinen internen RC Oszillator bzw. einen der nur für den 
Watchdog und ADC verwendet werden kann und im Sleep wird die CPU mit 
garkeinem Takt versorgt. Also wenn man an Quarz keinen Takt messen kann, 
dann macht der PIC absolut rein Garnichts, höchstens auf ein Interrupt 
warten dass ihn aufweckt und das auch nur, wenn der Takt mal da war um 
Interrupts usw. zu konfigurieren...

: Bearbeitet durch User
von Gerd H. (anatec)


Lesenswert?

stimmt, ich war auf die Stromspartechnologie der nanowatt Typen aus, 
aber die schlafen ja nicht, sondern arbeiten nur langsamer. Allerdings 
können die auch ihren Quarz abschalten. Zu der Sorte zählt der 877 
allerdings nicht. Entschultigung für meine Unbedacht.

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

Wenn du über ein Oszilloskop verfügst würde ich mal der reihen nach an 
allen IO_Pins nach irgend welchen Flankenwechseln Suchen. Tut sich dort 
rein gar nicht  und es funktioniert auch keine Anzeige am Gerät obwohl 
die richtige Versorgunsspannung anliegt würde ich zunächst ohne Spannung 
an der platine mit einem multimeter die einen kurzschluss der 
oszillatiopins ausschließen und und den Quartztakt nachzuweisen 
versuchen ... den Quartz auch auf verdacht tauschen .... wieder messen 
flanken wechsel suchen

Und dann benötigst du langsam einen Plan sämtliche Schalter und Taster 
hast du sicher bereits geprüft?

von Erich (Gast)


Lesenswert?

Schon erstaunlich daß der TE (obwohl von uC nach eigener Aussage wenig 
Erfahrung) hier GENAU den Prozessor als Fehlerursache herausgefunden 
hat!
Gut, den Quarz bzw. die Oszillator-Schwingungen sollte er tatsächlich 
mal messen.
Jedoch gibt es viele andere mögliche Ursachen für den Ausfall seines 
Schweißgeräts, z.B. fehlende, zu niedrige oder gestörte Betriebsspannung 
(Kapazitätsverlust Kondensator nur als eine mögliche beliebte Ursache).
Oder jede Art von fehlendem Eingangssignal eines Schalters oder eines 
Sensors zum uC.
Ohne Schaltbild und Funktionsplan des (kompletten) Schweißgeräts wird es 
schwierig sein das zu finden. Ein funktionierendes identisches 
Zweitgerät zu Vergleichszwecken hat man leider auch selten.
Gruss

von Nico (Gast)


Lesenswert?

@alle

ich bedanke mich bei euch für die zahlreichen "brainstormings".

Was ich in diesem Beitrag bis jetzt nicht erwähnt habe,
dass an dem PIC in meinem Fall keine externe Bedienelemente
wie Schalter oder Regler angeschlossen sind.
Dieser Mikrocontroller bestimmt ausschließlich die Form vom 
Schweißstrom,
die Einstellung der Parameter übernimmt ein anderer Mikrocontroller
in dem Bedienpanel, die Regelung vom Schweißstrom übernimmt
der PWM-IC. Der PIC16F877 den ich untersuche "hängt" quasi dazwischen.

Nur die Tatsache, dass der PIC16F877 nach dem Einschalten keinen Takt 
erzeugt lenkt den Fokus meiner Suche auf diesen Baustein.



@Erich

vielen Dank für deine Meinung,

meine Untersuchungen werden maßgeblich von zwei Fakten geleitet:

1. der PWM-IC des Hauptinverters wird über "shudown"-Eingang
nach dem Einschalten vom Mikrocontroller nicht freigegeben.

2. der Mikrocontroller braucht zum Arbeiten den Takt,
den ich in meinem Fall nicht messen kann.



Punkt 2. brachte mich zum Entschluß zunächst den Mikrocontroller zu
untersuchen.

Ich erkenne in dieser Vorgehensweise bis jetzt keinen Logik-Fehler,
wie Du bereits geschrieben hast:

"Gut, den Quarz bzw. die Oszillator-Schwingungen sollte er tatsächlich
mal messen."

Bis dieser Punkt geklärt ist muss ich mir keine Gedanken machen,
was in einem Schweißgerät so alles kaputt gehen kann.
Deswegen poste ich in diesem Forum und nicht im Forum für
"wie repariere ein Schweißgerät".

(sorry, für etwas off-topic, 'wollte aber den Beitrag von Erich
allein schon aus Höflichkeit nicht unbeantwortet stehen lassen)

Gruß.
Nico

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.