Forum: Mikrocontroller und Digitale Elektronik unlösbare Probleme mit PIC18


von Johannes Strihle (Gast)


Lesenswert?

Hallo Leute,

seit 2 Tagen mach ich jetzt an dem Ding rum und es will einfach nicht 
funktionieren. Es geht um einen PIC18, ich bekomm ihn einfach nicht ans 
laufen.

Die Programmierung funktioniert nur sporadisch. Immer wieder Abbrüche 
beim lesen und schreiben. Und das Programm läuft einfach nicht los (auch 
wenn ichs im debugging mode versuch, reagiert er nicht immer auf die 
Breakpoints und selbst wenn kann ich dann nicht durch den Code steppen). 
Das skurrielste daran ist, dass der MCLR Pin bei 1,xxV rumhängt. Das ist 
doch zu wenig. Aber das einzige was dran hängt an dem MCLR Pin ist ein 
10k Pullup auf 3,3V. an dem Pullup fallen jedoch über 2V ab !
Hat evtl jemand eine Erklärung für den Sachverhalt ? Warum sollte der 
MCLR pin die Spannung runterziehen ?

Ich hab schon alles versucht...
-Spannungen gemessen an allen relevanten Pins
-zusätzlich Kondensatoren dran gelötet
-den internen Core-Voltage Regulator an und abgeschalten (über externer 
pin, dazu natürlich entsprechend nen Kondensator an für den Regulator 
dran)
-MLCR deaktiviert
-eine zweiten Platine aufgebaut (selbes Ergebnis)
-unterschiedliche Programmer (PICKIT3, ICD3)
-unterschiedliche Netzteile als Spannungsquelle

Ich bekomm den PIC ums verrecken nicht zum laufen. Mittlerweile hab ich 
auch das Gefühl der interne Takt läuft nicht richtig. Wobei das 
Programmieren ja auch nicht zuverlässig funktioniert (was ja auch ohne 
einen internen Oszillator laufen müsste). Ist leider n TQFP 0,5 Pith 
gehäuse als extern dranlöten is nicht ganz einfach.

Achja bei der gelegenheit: Wie bekomm ich den MLCR wieder aktiviert ? 
ich find für den PIC 18 keine High voltage programming mit der man das 
machen könntnte im MPLAB.

Langsam bin ich echt am verzweifeln. Hat jemand eine Idee? (Device: 
PIC18F87K90)


Viele Grüße
Jo

von Paul (Gast)


Lesenswert?

Hatte auch mal so ein Proplem da hat der Pick zu ziel Strom geschaltet 
mit ein leistungstreiber am Ausgang warren alle Propleme direckt weg. 
mfg 1969Paul

von Carsten M. (ccp1con)


Lesenswert?

Ich würde auf jeden Fall bei der Programmierung anfangen, wenn die noch 
richtig funzt kannst alles Andere vergessen.
Warum bricht PICkit3 denn ab? Was kommt denn für eine Fehlermeldung.

Ist der PIC noch ok?
Läuft dein Programm in anderen Chips?
Der PIC müsste doch ein clock out pin haben da kannst du dann den Takt 
messen.

von Frank K. (fchk)


Lesenswert?

Johannes Strihle schrieb:

> Achja bei der gelegenheit: Wie bekomm ich den MLCR wieder aktiviert ?
> ich find für den PIC 18 keine High voltage programming mit der man das
> machen könntnte im MPLAB.

Der Programmer kann !MCLR immer aktivieren - da wird eine spezielle 
Aktivierungssequenz reingetaktet, die den Chip in den Programmiermodus 
bringt. Normalerweise kann man sich bei einem PIC nicht aussperren.

> Langsam bin ich echt am verzweifeln. Hat jemand eine Idee? (Device:
> PIC18F87K90)

Hast Du Dich an die empfohlene Beschaltung aus dem Datenblatt Figure 2-1 
(Recommended Minimum Connection) gehalten? Hast Du wie in Figure 2-2 den 
Kondensator C1 während des Programmierens abgeklemmt? Ich lasse ihn 
meist ganz weg. Kondensatoren an !MCLR würden nämlich die 
Aktivierungssequenz stören.

Schau ins ICD3 User Guide...

http://www.microchip.com/Microchip.WWW.SecureSoftwareList/secsoftwaredownload.aspx?device=en537580&lang=en&ReturnURL=http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en537580#

... und achte auf Figure 2-4 und Figure 2-5. Auf !MCLR, PGC und PGD darf 
NICHTS weiter hängen.

Dann sollte zumindest das Programmieren und Debuggen funktionieren.

fchk

von Johannes Strihle (Gast)


Lesenswert?

erstmal vielen Dank an euch drei!
zumindest hab ich heut wieder ein wenig motivation :)

Also:
Das mit dem Ausgangstreiber versteh ich nicht so ganz. Ich hab auf dem 
einen board alle anderen ICS unter gelassen nur der PIC, die RESET 
beschaltung (pullup) und ein paar Kondensatoren+Spannungsversorgung.

Die Spannung hab ich eben gemessen, liegt stabiel bei 3,2V. Laut oszi 
sehr sauber.

Heute konnte ich noch überhaupt nicht auf den PIC zugreifen. PICKIT 
Programmer Software sagt immer Unknowen device detectet (das hatt ich im 
MLLAB auch oft. Dass er die ID FFE0h oder so findet statt der Richtigen. 
er hat aber auch schon im MPLAB sowie im PICKIT die richtige ID 
gefunden)

ich hatte erst gedacht das mit dem RESET ist ein Leiterplattenproblem 
und hab kurzerhand die Leiterbahnen unterborchen und separat ein 
Fädeldreht zum RESET gezogen. Danach jedoch das gleiche.

An die minimal Beschaltung hab ich mich nicht 100% gehalten. hab direkt 
an den Versorgungs-Pins die Kondensatoren vergessen (nur an einem 
GND-VCC Paar hab ich welche dran) mittlerweile hab ich dass noch 
provisorisch bei einem weiteren Paar gemacht. Aber sollte es daran 
liegen, wenn ich sonst nichts auf dem Board hab was Strom zieht und die 
Spannung sehr stabiel ist. kann ich desshlab das teil nicht 
Programmieren ? Hab mir shon überlegt wie ich die fehlenden zwei noch 
dran machen könnte aber das Teil ist einfach zu klein.

-PGC und PGD sind nur mir dem Programmer verbunden und der MCLR 
Kondensaor ist nicht vorhanden.

-bei dem zweiten board habe ich ja testweise MLCR deaktiviert im MPLAB 
Programm. Seit dem geht der Zugriff da überhaupt nicht mehr

Ich verstehe langsam die Welt nicht mehr.

von Frank K. (fchk)


Lesenswert?

Johannes Strihle schrieb:

> An die minimal Beschaltung hab ich mich nicht 100% gehalten. hab direkt
> an den Versorgungs-Pins die Kondensatoren vergessen (nur an einem
> GND-VCC Paar hab ich welche dran) mittlerweile hab ich dass noch
> provisorisch bei einem weiteren Paar gemacht. Aber sollte es daran
> liegen, wenn ich sonst nichts auf dem Board hab was Strom zieht und die
> Spannung sehr stabiel ist. kann ich desshlab das teil nicht
> Programmieren ? Hab mir shon überlegt wie ich die fehlenden zwei noch
> dran machen könnte aber das Teil ist einfach zu klein.

Microchip meint das mit den Kondensatoren wirklich ernst. Hast Du denn 
den 10u an VCAP dran? Der ist da auch nicht zum Spaß. Und ja, entweder 
Tantal oder besser noch keramisch X7R mit minimal 16V in 1206. Steht 
alles im Datenblatt. Dort steht auch: max 6mm Leiterbahnlänge zwischen 
Pins und Kondensatoren. Wer lesen kann, ist im Vorteil. ENVREG auf VCC 
setzen nicht vergessen!

fchk

von Mick M. (highlow)


Lesenswert?

Die "Recommended Minimum Connection" ist nicht nur zum Spaß angegeben. 
Ich hatte in der Tat schon PIC Platinen welche ohne korrekte 100nF 
VCC-GND Beschaltung nicht funktioniert haben. Ob dies deine 
Fehlerursache ist, möglicherweise.

von Johannes Strihle (Gast)


Lesenswert?

Okay. Ich habe nun noch einen 100nF dazwischen gemacht. Leider hat der 
zumindet keine Verbesserung gebracht.

Ja den 10µF Hab ich bei einer von den beiden Platinen dran. bei der 
anderen hab ich den PIN ENVREG auf GND gelegt und VCAP auf 3,3V. Dass 
sollte ja auch gehen.

Ich hab jetzt meinen LA mal drangehängt und mein (leider noch analoges) 
Oszi. Der Reset wird auf ca 9V hochgezogen von dem Programmer, der Takt 
vom Programmer liegt auch an. Nur der Datenstrom kommt nicht rein. Wenn 
ich die Physikalsche Verbindung unterbrecht kommen Daten vom Pickit 
sobald die Verbindung zu dem PGD pin besteht, bleibt der Pin konstatnt 
auf High und macht garnix.

- Komisch auch wenn ich den PGD-PIN direkt auf Ground ziehe mit nem 10kR 
bleibt er auf high. Eigentlich müsste der doch hochohmig sein. Wenn er 
nicht explizit auf "Ausgang" geschalten wurde.

von Kein Name (Gast)


Lesenswert?

Zwischendurch mal mit den früher üblichen 13Volt Vpp programmiert und 
den 9Volt Eingang zerstört?

von Johannes Strihle (Gast)


Lesenswert?

Kann natürlich schon sein dass das mal Passiert is mit den 13 V. Aber 
das gleich bei 2 Platinen, glaub ich nicht. Ich achte normal schon drauf 
dass ich immer den richtigen chip auswähle aber wenn das Pikkit beim 
Programmstart nach nem IC sucht und des falsche angeschlossen ist kann 
man sowas schlecht vermeiden (ob das Pickit das macht weiss ich nicht).

Das ganze wird immer skurrieler.
Ich hab nun 25x nacheinander ohne probleme das Teil auslesen können (Mit 
dem pickit zwischendurch an der platine rumgespielt, um zu sehen ob 
wirgendwo n Wacklelkontkt ist, hat alles problemlos funktioniert). Dann 
hab ich das ICD3 dran gemacht und hab durch den code steppen können. 
Danach mit Pickit nochmals 5x ausgelesen (ohne Probleme). Dann nochmals 
"Read" geklickt und kommt wieder ein fehler "No device detected". Hab 
die Platine zwischenzeitlich nicht berührt sonder nur auf Read geklickt. 
seit dem geht wieder nix....sowas hatt ich noch nie. Und ich hab die 
PICs schon öfter eingesetzt.

Hat noch jemand ne blöde Idee für mich (mittlerweile probier ich selbst 
die sinnlosesten Dinge) ?

von michael_ohl (Gast)


Lesenswert?

zwei der warscheinlichsten Ursachen sind nach meiner Meinung ein Fehler 
im Boadlayout oder Elktrostatische Entladung.
Letzteres hat mich diesen Winter durch Blödheit zwei PICs und ein 
PicKit3 gekostet.

mfG
Michael


P.S. Zeig doch mal Deine Beschaltung.

von Dirk F (Gast)


Lesenswert?

Hi, hast Du denn auch die LVP (Low voltage programming) in den Config 
Bits deaktiviert ?
Hatte die mal aus versehen dran, dann lief der Pic exterm unstabiel, er 
schaltete alt zeitweise von selbst in den Programmiermodus...
Mein Pic war der 18F4620.
Gruß Dirk

von Markus F. (affe55)


Lesenswert?

Hi,
normalerweise sollte das echt kein problem sein. Im Datenblatt an 
entsprechender Stelle die minimal Beschaltung raussuchen, genauso 
anschließen wie es da steht. Danach Config Helpfile im Microchip Ordner 
auf deiner Festplatte die entsprechende Config Datei raussuchen, im C 
File dann die Config Einstellungen vornehmen und leere main 
Programmieren (mit Endlosschleife). Nicht vergessen entsprechenden Pic 
Header einbinden, Compilieren, Brennen und laufen lassen. Für weiteres 
bräuchte man deine Beschaltung sowie dein C File zur genauen 
Fehlersuche, sofern ein Fehler vorliegt.

Gruß

von Axel F. (pfennig)


Lesenswert?

hmmm,

an blöde Ideen soll es nicht mangeln,,...

wenn das Auslesen des PIC's nicht funktioniert, also über den ICD3?!? 
wurde hier vieleicht ein zu langes Verbindungskabel zwischen ICD3 und 
PICkit eingesetzt ???? ... das sollte nicht zu lang sein ! hier kann es 
zu Leseproblemen kommen und es wird gerne übersehen

und ich behaupte mal

wenn es Probleme beim Auslesen gibt, dann gibt es auch Probleme beim 
Beschreiben...

LG

von Andreas B. (biosniper)


Lesenswert?

1. Kann sein, dass der MCLR-PIN bei Deinem PIC multiplexed mit RA3 ist. 
Kann man in der Configure... => Configuration Bits einstellen.

2. Bist Du sicher, dass der Programmer richtig rum aufgesteckt ist ? 
PIN1 ist da wo der Pfeil am PickKit3 ist.
Ist mir auch schon passiert, oder nicht das erste Loch erwischt.

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.