Forum: Mikrocontroller und Digitale Elektronik PIC18F97J60: Reset-Problem


von Philipp T. (phil_1979)


Angehängte Dateien:

Lesenswert?

Ich bin gerade dabei ein selbstentwickeltes Eval-Boar mit dem PIC 
18F97J60 (100 Pin) in Betrieb zu nehmen, bin jedoch auf ein bisher nicht 
lösbares Problem gestossen:

So wie's Aussieht, legt der Controller den MCLR-Pin (Pin 16) intern auf 
GND und ich hab bisher noch nichts gefunden, was mir wirklich 
weitergeholfen hätte (Reset-Beschaltung siehe Anhang)

Der MCLR Pin kann bei diesem PIC auch nicht als zusätzlicher Ausgang 
konfiguriert werden, sonst wäre vllt hier das Problem zu suchen.

Hoffe ihr könnt mir weiterhelfen

LG Phil

von Lehrmann M. (ubimbo)


Lesenswert?

Philipp Thiel schrieb:
> So wie's Aussieht, legt der Controller den MCLR-Pin (Pin 16) intern auf
> GND und ich hab bisher noch nichts gefunden, was mir wirklich
> weitergeholfen hätte (Reset-Beschaltung siehe Anhang)

Richtig ist immer so.

Bei aktiviertem MCLR ist der Pin zum Betrieb mit einem Pullup (meist 
10k) permanent nach Vcc zu ziehen.

Beim betätigtem Resettaster wird eine Verbindung zu GND hergestellt und 
damit der Pin wird auf GND gezogen. So erfolgt der Reset.

Philipp Thiel schrieb:
> Der MCLR Pin kann bei diesem PIC auch nicht als zusätzlicher Ausgang
> konfiguriert werden, sonst wäre vllt hier das Problem zu suchen.

Der MCLR Pin funktioniert (wenn MCLR deaktiviert) nur als Eingang, 
nicht als Ausgang. Siehe Datenblatt.

Philipp Thiel schrieb:
> Hoffe ihr könnt mir weiterhelfen

Du hast keine Frage gestellt und dein Problem hast du auch nicht 
geschildert.

von Philipp T. (phil_1979)


Lesenswert?

Sorry, dachte die Frage würde sich aus dem Problem ergeben, nämlich, 
wieso mein PIC die angelegte Spannung (an MCLR) auf GND zieht

Die Verbindungen auf der Platine sind, nach mehrmaligem nachmessen, alle 
ok. Wenn ich den Pin anhebe ist der H-Pegel vorhanden, wenn JP1 
überbrückt wird oder ich im MPLAB "Hold in Reset" anklicke, geht der 
entsprechende Anschluss auch auf Low.

Nur eben nicht, wenn Pin 16 des PIC's angeschlossen ist. den Widerstand 
hab ich inzwischen durch einen 4,7k ersetzt (soll lt. Datenblatt 1-10k).

Ach ja, wenn Pin 16 angelötet ist und mein ICD2 den Pic freigibt (Resume 
from Reset) liegen an Pin16 2,4V an, also scheint wohl die Schaltung im 
ICD2 mehr Strom zu liefern als mein Pullup, wobei eigentlich kein Strom 
am MCLR fliessen sollte.

von Frank K. (fchk)


Lesenswert?

Das habe ich noch nicht erlebt. MCLR sollte eigentlich nicht vom Chip 
aktiv runtergezogen werden. Da ist noch was anderes faul.

Du hast an JEDEM Vcc/Gnd-Paar einen 100n in unmittelbarer Nähe?

Wo kommt die Spannungsversorgung her? Bedenke, dass der PHY in diesem 
Baustein 200mA haben will. Die Stromversorgung über ein ICD2 könnte 
nicht ausreichen.

Ich habe bei mir an VCore immer einen 10u im 1206 hängen und damit gute 
Erfahrungen gemacht.

Wo hast Du die Reset-Beschaltung her?

Im ICD3-Manual steht ganz klar:
"
• Do not use pull-ups on PGC/PGD – they will disrupt the voltage levels, 
since these lines have 4.7 kΩ pull-down resistors in the debugger.
• Do not use capacitors on PGC/PGD – they will prevent fast transitions 
on data and clock lines during programming and debug communications.
• Do not use capacitors on MCLR – they will prevent fast transitions of 
VPP. A simple pull-up resistor is generally sufficient.
• Do not use diodes on PGC/PGD – they will prevent bidirectional 
communication between the debugger and the target device.
"
Das wird genauso auch im ICD2 Manual stehen.

Ein einfacher 10k Pullup an MCLR UND SONST GAR NIX reicht.

Die Diode am MCLR ist noch aus Zeiten, als High Voltage Programming 
aktuell war und der Programmiermodus durch 13V oder später (Vcc+3V) am 
MCLR eingeleitet wurde. Bei den PIC18 mit J oder K in der 
Typenbezeichnung sowie allen PIC24/PIC32/dsPIC funktioniert das anders. 
Dort wird nämlich eine spezielle Signatur über den ICSP hineingetaktet, 
und deswegen dürfen dort absolut keine Kondensatoren dranhängen, auch an 
MCLR nicht.

fchk

von Philipp T. (phil_1979)


Angehängte Dateien:

Lesenswert?

Hallo Frank,

danke schon mal für deine Hilfe, im Manual vom ICD2 steht das mit den 
Kondensatoren und Widerständen auch drin, ich muss zugeben, das Manual 
hab ich nicht gelesen und die Beschaltung ist eigentlich von einem 
AT89C51 Board abgeschaut (ich weiss, das geht schief;-(  )

Ich werd am Dienstag mal noch den Widerstand und den Kondensator 
entfernen und dann mal schauen.

Als Abblock-Kondensatoren am Controller hab ich "nur" 10nF verbaut, die 
tausch ich mal gegen 10µ. Die Versorgung der Schaltung erfolgt über ein 
getaktetes Netzteil (siehe Anhang).

Schönes Wochenende

Phil

von Frank K. (fchk)


Lesenswert?

Philipp Thiel schrieb:

> Als Abblock-Kondensatoren am Controller hab ich "nur" 10nF verbaut, die
> tausch ich mal gegen 10µ. Die Versorgung der Schaltung erfolgt über ein
> getaktetes Netzteil (siehe Anhang).

Nee. 10u nur an VReg/VDDcore, an den anderen Pins sind 100n Standard, 
und zwar an ALLEN. Steht ja auch alles im Datenblatt.

von Philipp T. (phil_1979)


Lesenswert?

Hoppla,
Hab gerade gesehen, dass ich den Pin "ENVREG" auf DGND gelegt habe, 
damit ist der interne Spannungsregler deaktiviert. Da an VDDcore 
allerdings keine Spannung (nur 2 C's) hängen, wird mein PIC garnicht 
versorgt.

Also mal ENVREG auf VCC legen und nochmal messen.

von Philipp T. (phil_1979)


Lesenswert?

Juhuu, es funktioniert, nach 2 Wochen vergeblicher Suche :-)

Danke Michael & Frank :-)

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.